Full scan in `queue.statistics()`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza en queue.statistics() y en su implementación local build_stats(space) mostrada en el issue; crea un perfil de las llamadas repetidas a index:count() con colas grandes para confirmar el impacto en la CPU. Define y verifica un cambio que conserve los recuentos total, por estado y de tareas terminadas, y que aborde el uso agresivo informado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
1 local function build_stats(space)
2 local stats = {tasks = {}, calls = {
3 ack = 0, bury = 0, delete = 0,
4 kick = 0, put = 0, release = 0,
5 take = 0, touch = 0,
6 -- for *ttl queues only
7 ttl = 0, ttr = 0, delay = 0,
8 }}
9
10 local st = rawget(queue.stat, space) or {}
11 local idx_tube = 1
12
13 -- add api calls stats
14 for name, value in pairs(st) do
15 if type(value) ~= 'function' and name ~= 'done' then
16 stats['calls'][name] = value
17 end
18 end
19
20 -- add total tasks count
21 stats['tasks']['total'] = box.space[space].index[idx_tube]:count()
22
23 -- add tasks by state count
24 for i, s in pairs(state) do
25 stats['tasks'][i:lower()] = box.space[space].index[idx_tube]:count(s)
26 end
27 stats['tasks']['done'] = st.done or 0
28
29 return stats
30 end
This function calls count() 6 times on each queue.statistics(). This could be a reason of very aggressive CPU usage if there are very many tasks in the queue.
- Lenguaje dominante
- Lua
- Estrellas
- 244
- Forks
- 56
- Merge medio
- 6 d 8 h
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tarantool/queue
-
tube:grant() is not documented Abiertodocumentation good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
*ttl drivers: TTL branch dereferences delete() result without a nil check, killing the fiber Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
1sp bug teamE
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
Todos los issues de tarantool/queue
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LandSandBoat/server#11579 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ArchiveTeam/sinavideo-grab#7 · 3 reacciones ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
mailcow/mailcow-dockerized#7480 ·
-
Mapper: a failed area image export crashes Mudlet if the profile closed while it was running Abiertomapper bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
documentation feature-request mini.completion
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100