
Một loạt bản vá lỗi lớn từ Red Hat hiện được xếp hàng vào nhánh Git phát triển hệ thống tệp XFS, là một phần của tài liệu mới cho Linux 5.14 chu kỳ.
Tập hợp lớn các bản vá đã được xếp hàng trong tuần này vào mã xfs-5.14 for-next tập trung vào CIL (Danh sách mặt hàng đã cam kết) và các cải tiến về khả năng mở rộng nhật ký.
Có những con số hiệu suất tốt được nhìn thấy từ hoạt động khả năng mở rộng này cho hệ thống tệp XFS. Những con số lớn đang chứng kiến tốc độ giao dịch tăng từ khoảng 700 nghìn lên 1,7 triệu cam kết mỗi giây và giảm 2 ~ x đơn đặt hàng có cường độ nhỏ hơn đối với khối lượng công việc nặng về siêu dữ liệu không thực thi fsync.
Thông báo trên hợp nhất giải thích thêm về mã đã được làm lại trong trình điều khiển XFS để có khả năng mở rộng tốt hơn xung quanh CIl và nhật ký:
Tối ưu hóa FUA/FLUSH ghi nhật ký làm giảm số lần lưu bộ đệm cần thiết để chuyển CIL vào nhật ký. Nó mở rộng ngữ nghĩa thứ tự ghi nhật ký bị trì hoãn cũ được yêu cầu bằng cách ghi các giao dịch riêng lẻ vào iclogs để bao gồm các giao dịch điểm kiểm tra CIL sau đó thay vì ghi riêng lẻ vào iclogs. Khi làm như vậy, chúng tôi giảm yêu cầu xóa bộ nhớ cache xuống một lần cho mỗi điểm kiểm tra CIL thay vì một lần cho mỗi lần ghi iclog.
Các lần đẩy CIL không đồng bộ khắc phục một hạn chế của đường ống chỉ cho phép một lần đẩy CIL duy nhất được xử lý tại một thời điểm. Điều này khiến việc ghi điểm kiểm tra CIL trở thành bị ràng buộc CPU vì chỉ có thể đẩy một điểm kiểm tra CIL duy nhất tại một thời điểm. Đường ống điểm kiểm soát được thiết kế để cho phép nhiều lần đẩy cùng lúc và sử dụng thứ tự cẩn thận của các bản ghi cam kết để đảm bảo thứ tự khôi phục chính xác, nhưng việc triển khai hàng công việc không cho phép chạy các công việc đồng thời. Các hoạt động đồng thời hiện mở rộng ra 4 điểm kiểm tra CIL chạy cùng một lúc, do đó loại bỏ các mối quan hệ sử dụng CPU mà không đưa ra các vấn đề tranh chấp khóa mới.
Việc làm lại xlog_write () đã quá hạn lâu. Mã phức tạp, khó hiểu, đầy rẫy những trường hợp phức tạp, phức tạp và nói chung là thực sự khó sửa đổi. Bộ vá lỗi này làm lại API xlog_write () để giảm chi phí xử lý khi viết ra chuỗi vectơ bản ghi dài và biến mã xlog_write () thành một đường dẫn nhanh đơn giản, nhỏ gọn cùng với đường dẫn chậm rõ ràng hơn để xử lý các trường hợp phức tạp.
Bộ vá khả năng mở rộng cam kết CIL loại bỏ các spinlock khỏi đường dẫn nhanh cam kết giao dịch. Các spinlock này là nút thắt cổ chai giới hạn hiệu suất trong đường dẫn cam kết giao dịch, vì vậy chúng tôi áp dụng nhiều kỹ thuật khác nhau để thực hiện một trong hai nguyên tử. cập nhật không khóa hoặc trên mỗi cpu của cấu trúc theo dõi CIL trong quá trình cam kết. Điều này làm tăng đáng kể thông lượng của công cụ cam kết giao dịch, chuyển điểm tranh chấp sang các thuật toán theo dõi không gian nhật ký sau
tăng gấp đôi thông lượng trên khối lượng công việc 32 chiều.
Loạt bản vá này được dẫn dắt bởi Dave Chinner của Red Hat.