Full scan in `queue.statistics()`
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Bắt đầu từ queue.statistics() và phần triển khai cục bộ build_stats(space) được nêu trong issue; lập hồ sơ cho các lệnh gọi index:count() lặp lại với các hàng đợi lớn để xác nhận tác động đến CPU. Xác định và xác minh một thay đổi bảo toàn số lượng tổng, số lượng theo trạng thái và số lượng tác vụ đã hoàn tất, đồng thời xử lý mức sử dụng quá mức được báo cáo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Lua
- Star
- 244
- Fork
- 56
- Merge trung bình
- 6 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 1
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của tarantool/queue
-
tube:grant() is not documented Đang mởdocumentation good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
*ttl drivers: TTL branch dereferences delete() result without a nil check, killing the fiber Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 76/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
-
1sp bug teamE
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
Tất cả issue của tarantool/queue
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
LandSandBoat/server#11579 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ArchiveTeam/sinavideo-grab#7 · 3 reaction ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
mailcow/mailcow-dockerized#7480 ·