OpenTenBase / OpenTenBase/TXSQL
Perf : try lock优化purge binlog与rotate binlog时锁LOCK_index的冲突
Đang mở
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 337
- Fork
- 234
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
用try lock优化purge binlog与rotate binlog时锁LOCK_index的冲突
1.如果puger加上锁, rotate 进行try lock失败,就不加锁了,让binlog增长
2.如果rotate加上锁了, purge进行try lock失败,就多尝试几次等锁
作用:
- 减少purge流程对gtid分配影响,当index中文件数量很多的时候,purge会长时间持有gtid的排他锁,导致正常提交的事务不能分配gtid。purge卡点:从index文件中获取所有文件名称,用于后续更新lost gtids。实际上对于我们的场景,不需要获取所有的binlog文件名称,只需要获取第一个binlog文件即可,提供参数控制获取binlog文件数量,设置成1,降低purge对正常事务的影响。
- 减少rotate影响rotate会先锁住LOCK_log,采用try lock的方式,拿不到LOCK_log的锁就放弃rotate
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.
Hướng nghiên cứu
Không có tệp hoặc test nào được nêu tên. Hãy bắt đầu bằng cách xác định các đường dẫn purge và rotate binlog cùng cách chúng xử lý LOCK_index và LOCK_log, sau đó kiểm tra các test hiện có liên quan đến lock nếu có. Hoàn thành khi các test bao phủ hành vi try-lock, retry và giảm contention được yêu cầu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- databases, performance
- Loại issue
- Tái cấu trúc
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100