[Tarantool-patches] [PATCH 4/4] feedback_daemon: generate report right before sending
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Mon Apr 5 19:23:09 MSK 2021
Thanks for the patch!
The patch is mostly fine, but I don't see why would we need it, as well
as why do we need to know when a first space is created. I don't argue,
only making a note. Unless it would affect the perf or normal code base
complexity anyhow.
See 2 comments below.
> diff --git a/src/box/lua/feedback_daemon.lua b/src/box/lua/feedback_daemon.lua
> index 0aab189b6..ca93b7574 100644
> --- a/src/box/lua/feedback_daemon.lua
> +++ b/src/box/lua/feedback_daemon.lua
> @@ -358,12 +363,26 @@ local function guard_loop(self)
> self.shutdown:put("stopped")
> end
>
> +local function save_event(self, event)
> + if type(event) ~= 'string' then
> + error("Usage: box.internal.feedback_daemon.save_event(string)")
> + end
> + local cnt = self.cached_events[event] or 0
1. cnt is unused. Did it pass luacheck? I suppose you wanted something like
this:
====================
@@ -367,9 +367,9 @@ local function save_event(self, event)
if type(event) ~= 'string' then
error("Usage: box.internal.feedback_daemon.save_event(string)")
end
- local cnt = self.cached_events[event] or 0
- self.cached_events[event] = (self.cached_events[event] or 0) + 1
- if self.cached_events[event] == 1 then
+ local cnt = (self.cached_events[event] + 1) or 1
+ self.cached_events[event] = cnt
+ if cnt == 1 then
-- The first occurred event of this type triggers report dispatch
-- immediately.
self.send()
====================
> diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua
> index 96503a50e..cf1b070af 100644
> --- a/src/box/lua/schema.lua
> +++ b/src/box/lua/schema.lua
> @@ -462,6 +462,10 @@ box.schema.space.create = function(name, options)
> })
> _space:insert{id, uid, name, options.engine, options.field_count,
> space_options, format}
> +
> + if internal.feedback_daemon ~= nil then
> + internal.feedback_daemon.save_event("create_space")
2. To make it less ugly you could save feedback_daemon into a local
variable in this file, and access it as an upvalue in all the
usages. Or wrap the entire 'save_event' thing here into a function
which checks that the daemon is not nil, and then call its
save_event function.
More information about the Tarantool-patches
mailing list