Sui đã giới thiệu Tidehunter, một engine lưu trữ blockchain được thiết kế đặc biệt để thay thế RocksDB bằng cách giảm thiểu sự gia tăng ghi và cung cấp thông lượng cao hơn, ổn định hơn cùng độ trễ thấp hơn cho các tác vụ validator và full-node.
Sui, một mạng lưới blockchain Layer 1, đã giới thiệu Tidehunter, một engine lưu trữ mới được thiết kế để phù hợp với các yêu cầu về hiệu suất, đặc điểm truy cập dữ liệu và hạn chế vận hành phổ biến trong các hạ tầng blockchain hiện đại.
Hệ thống này được định vị như một người kế nhiệm tiềm năng cho lớp cơ sở dữ liệu hiện tại được sử dụng bởi cả validator và full node, phản ánh nỗ lực mở rộng để hiện đại hóa hạ tầng cốt lõi nhằm đáp ứng quy mô và hồ sơ công việc ngày càng phát triển của các môi trường blockchain sản xuất.
Ban đầu, Sui dựa vào RocksDB như lớp lưu trữ chính cho khóa-giá trị, một giải pháp phổ biến và trưởng thành giúp phát triển giao thức nhanh chóng. Khi nền tảng mở rộng và yêu cầu vận hành tăng lên, những hạn chế cơ bản của các cơ sở dữ liệu LSM-tree đa dụng trở nên rõ ràng hơn trong các môi trường giống như sản xuất.
Việc tinh chỉnh rộng rãi và kiến thức chuyên sâu nội bộ không thể hoàn toàn giải quyết các bất cập về cấu trúc gây mâu thuẫn với các mẫu truy cập điển hình của hệ thống blockchain. Điều này đã dẫn đến một sự chuyển hướng chiến lược nhằm thiết kế một engine lưu trữ tối ưu hóa riêng cho các tác vụ blockchain, dẫn đến sự phát triển của Tidehunter.
Một yếu tố trung tâm đằng sau quyết định này là sự gia tăng ghi liên tục. Các phép đo trong các tác vụ thực tế của Sui cho thấy mức độ gia tăng khoảng mười đến mười hai lần, nghĩa là dữ liệu ứng dụng nhỏ tạo ra lượng lớn lưu lượng đĩa không tương xứng. Trong khi hành vi này phổ biến trong các hệ thống dựa trên LSM, nó làm giảm băng thông lưu trữ hiệu quả và làm tăng cạnh tranh giữa quá trình nén dữ liệu nền và các hoạt động đọc. Trong các môi trường ghi nhiều hoặc cân bằng giữa đọc và ghi, chi phí này càng trở nên hạn chế khi thông lượng tăng lên.
Kiểm tra tải trên các cụm hiệu suất cao đã xác nhận tác động này, với mức sử dụng đĩa gần như đạt tới giới hạn mặc dù tốc độ ghi ứng dụng vừa phải, làm nổi bật sự không phù hợp ngày càng tăng giữa các kiến trúc lưu trữ truyền thống và yêu cầu hiệu suất của blockchain hiện đại.
Kiến trúc Tidehunter: Một engine lưu trữ tối ưu cho các mẫu truy cập blockchain và các tác vụ có thông lượng cao liên tục
Hành vi lưu trữ trong Sui và các nền tảng blockchain tương tự bị chi phối bởi một số mẫu truy cập dữ liệu lặp đi lặp lại, và Tidehunter được thiết kế đặc biệt dựa trên các đặc điểm này. Phần lớn trạng thái được truy cập bằng các khóa băm mã hóa mật khẩu phân phối đều và thường ánh xạ tới các bản ghi khá lớn, loại bỏ tính địa phương nhưng đơn giản hóa tính nhất quán và chính xác.
Đồng thời, các blockchain dựa nhiều vào các cấu trúc hướng về phần đuôi, như nhật ký đồng thuận và điểm kiểm tra, nơi dữ liệu được ghi theo thứ tự và sau đó truy xuất bằng các định danh tăng dần. Các môi trường này cũng vốn dĩ nặng về ghi, trong khi vẫn yêu cầu truy cập nhanh trên các đường dẫn đọc độ trễ thấp, khiến sự gia tăng ghi quá mức trở thành mối đe dọa trực tiếp đến cả thông lượng và khả năng phản hồi.
Ở trung tâm của Tidehunter là một pipeline ghi đồng thời cao được xây dựng để khai thác khả năng song song của bộ nhớ lưu trữ thể rắn hiện đại. Các ghi mới được đưa qua một nhật ký ghi trước không khóa có khả năng duy trì tốc độ hoạt động cực cao, với cạnh tranh bị giới hạn ở bước phân bổ tối thiểu.
Việc sao chép dữ liệu diễn ra song song, và hệ thống tránh các cuộc gọi hệ thống theo từng thao tác bằng cách sử dụng các tệp ánh xạ bộ nhớ có thể ghi, trong khi độ bền được xử lý bất đồng bộ bởi các dịch vụ nền. Thiết kế này tạo ra một đường dẫn ghi dự đoán được và cực kỳ song song, có thể bão hòa băng thông đĩa mà không bị giới hạn bởi quá tải CPU.
Giảm thiểu sự gia tăng ghi được xem như một mục tiêu kiến trúc chính thay vì một bước tối ưu hóa. Thay vì sử dụng nhật ký như một khu vực tạm thời, Tidehunter lưu trữ dữ liệu vĩnh viễn trong các phân đoạn nhật ký và xây dựng các chỉ mục tham chiếu trực tiếp tới các offset, loại bỏ việc ghi lại giá trị nhiều lần.
Các chỉ mục này được phân mảnh mạnh mẽ để giữ mức độ gia tăng ghi thấp và tăng khả năng song song, loại bỏ nhu cầu về các cấu trúc LSM-tree truyền thống. Đối với các bộ dữ liệu chủ yếu dựa vào phần đuôi, như điểm kiểm tra và bản ghi đồng thuận, các chiến lược phân mảnh chuyên biệt giữ dữ liệu mới nhất gắn chặt để chi phí ghi vẫn ổn định ngay cả khi dữ liệu lịch sử tăng lên.
Đối với các bảng được truy cập bằng các khóa băm phân phối đều, Tidehunter giới thiệu một chỉ mục tra cứu đồng nhất tối ưu cho truy cập dự đoán, độ trễ thấp. Thay vì thực hiện nhiều lượt đọc nhỏ và ngẫu nhiên, chỉ mục đọc một vùng liên tục lớn hơn một chút chứa phần tử mong muốn, cho phép hầu hết các lượt tra cứu hoàn tất trong một vòng quay đĩa.
Cách tiếp cận này cố ý đánh đổi một phần thông lượng đọc để có độ trễ thấp và ổn định hơn, một sự đánh đổi trở nên khả thi vì giảm thiểu gia tăng ghi giải phóng băng thông đĩa đáng kể cho lưu lượng đọc. Kết quả là hiệu suất nhất quán hơn trong các hoạt động nhạy cảm với độ trễ như thực thi giao dịch và xác thực trạng thái.
Để kiểm soát thêm độ trễ đuôi ở quy mô lớn, Tidehunter kết hợp I/O trực tiếp với bộ nhớ đệm do ứng dụng quản lý. Các lượt đọc lịch sử lớn bỏ qua bộ nhớ đệm của hệ điều hành để tránh ô nhiễm cache, trong khi dữ liệu mới nhất và thường xuyên truy cập được giữ trong bộ nhớ đệm người dùng dựa trên các mẫu truy cập cấp ứng dụng. Kết hợp với bố cục chỉ mục của nó, điều này giảm các lượt quay đĩa không cần thiết và cải thiện khả năng dự đoán dưới tải liên tục.
Quản lý vòng đời dữ liệu cũng được đơn giản hóa. Vì các bản ghi được lưu trực tiếp trong các phân đoạn nhật ký, việc loại bỏ dữ liệu lịch sử không còn cần thiết có thể thực hiện bằng cách xóa toàn bộ các tệp nhật ký khi chúng vượt ra ngoài phạm vi giữ lại. Điều này tránh các cơ chế nén dữ liệu phức tạp và tốn I/O như trong các cơ sở dữ liệu dựa trên LSM, đồng thời cho phép loại bỏ dữ liệu nhanh hơn, dự đoán chính xác hơn ngay cả khi bộ dữ liệu mở rộng.
Trong các tác vụ phản ánh cách sử dụng thực tế của Sui, Tidehunter thể hiện thông lượng cao hơn và độ trễ thấp hơn RocksDB trong khi tiêu thụ ít băng thông ghi đĩa hơn đáng kể. Cải tiến rõ ràng nhất đến từ việc gần như loại bỏ sự gia tăng ghi, cho phép hoạt động đĩa phù hợp hơn với các ghi ứng dụng và giữ nguyên khả năng I/O cho các hoạt động đọc. Những tác động này được quan sát cả trong các bài kiểm tra kiểm soát và trong các triển khai validator đầy đủ, cho thấy các lợi ích vượt ra ngoài các thử nghiệm tổng hợp.
Đánh giá được thực hiện bằng khung kiểm thử không phụ thuộc cơ sở dữ liệu mô phỏng các pha trộn thực tế của các hoạt động chèn, xóa, tra cứu điểm và lặp lại. Các bài kiểm tra được tham số hóa để phản ánh phân phối khóa kiểu Sui, kích thước giá trị và tỷ lệ đọc-ghi, và được thực hiện trên phần cứng phù hợp với các yêu cầu đề xuất cho validator. Trong các điều kiện này, Tidehunter liên tục duy trì hiệu suất cao hơn và độ trễ thấp hơn RocksDB, với lợi thế lớn nhất xuất hiện trong các kịch bản ghi nhiều và cân bằng.
Các bài kiểm tra ở cấp validator còn xác nhận kết quả. Khi tích hợp trực tiếp vào Sui và chịu tải giao dịch liên tục, các hệ thống sử dụng Tidehunter duy trì hiệu suất ổn định và độ trễ thấp hơn tại các điểm vận hành mà các triển khai dựa trên RocksDB bắt đầu gặp phải tình trạng tăng sử dụng đĩa và giảm hiệu suất. Các phép đo cho thấy giảm áp lực đĩa, CPU ổn định hơn và độ trễ cuối cùng cải thiện, làm nổi bật sự khác biệt rõ rệt trong hành vi dưới tải tương đương.
Tidehunter là phản ứng thực tế đối với các yêu cầu vận hành của các hệ thống blockchain có thông lượng cao và hoạt động lâu dài. Khi blockchain chuyển sang các tác vụ duy trì chứ không phải bùng nổ, hiệu quả lưu trữ trở thành một yêu cầu nền tảng cho hiệu suất giao thức. Thiết kế của Tidehunter phản ánh sự chuyển đổi sang hạ tầng được xây dựng rõ ràng cho giai đoạn mở rộng tiếp theo, với các chi tiết kỹ thuật và kế hoạch triển khai sẽ được công bố trong thời gian tới.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Tidehunter: Cơ sở dữ liệu thế hệ tiếp theo của Sui tối ưu hóa cho độ trễ thấp và giảm thiểu khuếch đại ghi
Tóm tắt
Sui đã giới thiệu Tidehunter, một engine lưu trữ blockchain được thiết kế đặc biệt để thay thế RocksDB bằng cách giảm thiểu sự gia tăng ghi và cung cấp thông lượng cao hơn, ổn định hơn cùng độ trễ thấp hơn cho các tác vụ validator và full-node.
Sui, một mạng lưới blockchain Layer 1, đã giới thiệu Tidehunter, một engine lưu trữ mới được thiết kế để phù hợp với các yêu cầu về hiệu suất, đặc điểm truy cập dữ liệu và hạn chế vận hành phổ biến trong các hạ tầng blockchain hiện đại.
Hệ thống này được định vị như một người kế nhiệm tiềm năng cho lớp cơ sở dữ liệu hiện tại được sử dụng bởi cả validator và full node, phản ánh nỗ lực mở rộng để hiện đại hóa hạ tầng cốt lõi nhằm đáp ứng quy mô và hồ sơ công việc ngày càng phát triển của các môi trường blockchain sản xuất.
Ban đầu, Sui dựa vào RocksDB như lớp lưu trữ chính cho khóa-giá trị, một giải pháp phổ biến và trưởng thành giúp phát triển giao thức nhanh chóng. Khi nền tảng mở rộng và yêu cầu vận hành tăng lên, những hạn chế cơ bản của các cơ sở dữ liệu LSM-tree đa dụng trở nên rõ ràng hơn trong các môi trường giống như sản xuất.
Việc tinh chỉnh rộng rãi và kiến thức chuyên sâu nội bộ không thể hoàn toàn giải quyết các bất cập về cấu trúc gây mâu thuẫn với các mẫu truy cập điển hình của hệ thống blockchain. Điều này đã dẫn đến một sự chuyển hướng chiến lược nhằm thiết kế một engine lưu trữ tối ưu hóa riêng cho các tác vụ blockchain, dẫn đến sự phát triển của Tidehunter.
Một yếu tố trung tâm đằng sau quyết định này là sự gia tăng ghi liên tục. Các phép đo trong các tác vụ thực tế của Sui cho thấy mức độ gia tăng khoảng mười đến mười hai lần, nghĩa là dữ liệu ứng dụng nhỏ tạo ra lượng lớn lưu lượng đĩa không tương xứng. Trong khi hành vi này phổ biến trong các hệ thống dựa trên LSM, nó làm giảm băng thông lưu trữ hiệu quả và làm tăng cạnh tranh giữa quá trình nén dữ liệu nền và các hoạt động đọc. Trong các môi trường ghi nhiều hoặc cân bằng giữa đọc và ghi, chi phí này càng trở nên hạn chế khi thông lượng tăng lên.
Kiến trúc Tidehunter: Một engine lưu trữ tối ưu cho các mẫu truy cập blockchain và các tác vụ có thông lượng cao liên tục
Hành vi lưu trữ trong Sui và các nền tảng blockchain tương tự bị chi phối bởi một số mẫu truy cập dữ liệu lặp đi lặp lại, và Tidehunter được thiết kế đặc biệt dựa trên các đặc điểm này. Phần lớn trạng thái được truy cập bằng các khóa băm mã hóa mật khẩu phân phối đều và thường ánh xạ tới các bản ghi khá lớn, loại bỏ tính địa phương nhưng đơn giản hóa tính nhất quán và chính xác.
Đồng thời, các blockchain dựa nhiều vào các cấu trúc hướng về phần đuôi, như nhật ký đồng thuận và điểm kiểm tra, nơi dữ liệu được ghi theo thứ tự và sau đó truy xuất bằng các định danh tăng dần. Các môi trường này cũng vốn dĩ nặng về ghi, trong khi vẫn yêu cầu truy cập nhanh trên các đường dẫn đọc độ trễ thấp, khiến sự gia tăng ghi quá mức trở thành mối đe dọa trực tiếp đến cả thông lượng và khả năng phản hồi.
Ở trung tâm của Tidehunter là một pipeline ghi đồng thời cao được xây dựng để khai thác khả năng song song của bộ nhớ lưu trữ thể rắn hiện đại. Các ghi mới được đưa qua một nhật ký ghi trước không khóa có khả năng duy trì tốc độ hoạt động cực cao, với cạnh tranh bị giới hạn ở bước phân bổ tối thiểu.
Việc sao chép dữ liệu diễn ra song song, và hệ thống tránh các cuộc gọi hệ thống theo từng thao tác bằng cách sử dụng các tệp ánh xạ bộ nhớ có thể ghi, trong khi độ bền được xử lý bất đồng bộ bởi các dịch vụ nền. Thiết kế này tạo ra một đường dẫn ghi dự đoán được và cực kỳ song song, có thể bão hòa băng thông đĩa mà không bị giới hạn bởi quá tải CPU.
Giảm thiểu sự gia tăng ghi được xem như một mục tiêu kiến trúc chính thay vì một bước tối ưu hóa. Thay vì sử dụng nhật ký như một khu vực tạm thời, Tidehunter lưu trữ dữ liệu vĩnh viễn trong các phân đoạn nhật ký và xây dựng các chỉ mục tham chiếu trực tiếp tới các offset, loại bỏ việc ghi lại giá trị nhiều lần.
Các chỉ mục này được phân mảnh mạnh mẽ để giữ mức độ gia tăng ghi thấp và tăng khả năng song song, loại bỏ nhu cầu về các cấu trúc LSM-tree truyền thống. Đối với các bộ dữ liệu chủ yếu dựa vào phần đuôi, như điểm kiểm tra và bản ghi đồng thuận, các chiến lược phân mảnh chuyên biệt giữ dữ liệu mới nhất gắn chặt để chi phí ghi vẫn ổn định ngay cả khi dữ liệu lịch sử tăng lên.
Đối với các bảng được truy cập bằng các khóa băm phân phối đều, Tidehunter giới thiệu một chỉ mục tra cứu đồng nhất tối ưu cho truy cập dự đoán, độ trễ thấp. Thay vì thực hiện nhiều lượt đọc nhỏ và ngẫu nhiên, chỉ mục đọc một vùng liên tục lớn hơn một chút chứa phần tử mong muốn, cho phép hầu hết các lượt tra cứu hoàn tất trong một vòng quay đĩa.
Cách tiếp cận này cố ý đánh đổi một phần thông lượng đọc để có độ trễ thấp và ổn định hơn, một sự đánh đổi trở nên khả thi vì giảm thiểu gia tăng ghi giải phóng băng thông đĩa đáng kể cho lưu lượng đọc. Kết quả là hiệu suất nhất quán hơn trong các hoạt động nhạy cảm với độ trễ như thực thi giao dịch và xác thực trạng thái.
Để kiểm soát thêm độ trễ đuôi ở quy mô lớn, Tidehunter kết hợp I/O trực tiếp với bộ nhớ đệm do ứng dụng quản lý. Các lượt đọc lịch sử lớn bỏ qua bộ nhớ đệm của hệ điều hành để tránh ô nhiễm cache, trong khi dữ liệu mới nhất và thường xuyên truy cập được giữ trong bộ nhớ đệm người dùng dựa trên các mẫu truy cập cấp ứng dụng. Kết hợp với bố cục chỉ mục của nó, điều này giảm các lượt quay đĩa không cần thiết và cải thiện khả năng dự đoán dưới tải liên tục.
Quản lý vòng đời dữ liệu cũng được đơn giản hóa. Vì các bản ghi được lưu trực tiếp trong các phân đoạn nhật ký, việc loại bỏ dữ liệu lịch sử không còn cần thiết có thể thực hiện bằng cách xóa toàn bộ các tệp nhật ký khi chúng vượt ra ngoài phạm vi giữ lại. Điều này tránh các cơ chế nén dữ liệu phức tạp và tốn I/O như trong các cơ sở dữ liệu dựa trên LSM, đồng thời cho phép loại bỏ dữ liệu nhanh hơn, dự đoán chính xác hơn ngay cả khi bộ dữ liệu mở rộng.
Trong các tác vụ phản ánh cách sử dụng thực tế của Sui, Tidehunter thể hiện thông lượng cao hơn và độ trễ thấp hơn RocksDB trong khi tiêu thụ ít băng thông ghi đĩa hơn đáng kể. Cải tiến rõ ràng nhất đến từ việc gần như loại bỏ sự gia tăng ghi, cho phép hoạt động đĩa phù hợp hơn với các ghi ứng dụng và giữ nguyên khả năng I/O cho các hoạt động đọc. Những tác động này được quan sát cả trong các bài kiểm tra kiểm soát và trong các triển khai validator đầy đủ, cho thấy các lợi ích vượt ra ngoài các thử nghiệm tổng hợp.
Đánh giá được thực hiện bằng khung kiểm thử không phụ thuộc cơ sở dữ liệu mô phỏng các pha trộn thực tế của các hoạt động chèn, xóa, tra cứu điểm và lặp lại. Các bài kiểm tra được tham số hóa để phản ánh phân phối khóa kiểu Sui, kích thước giá trị và tỷ lệ đọc-ghi, và được thực hiện trên phần cứng phù hợp với các yêu cầu đề xuất cho validator. Trong các điều kiện này, Tidehunter liên tục duy trì hiệu suất cao hơn và độ trễ thấp hơn RocksDB, với lợi thế lớn nhất xuất hiện trong các kịch bản ghi nhiều và cân bằng.
Các bài kiểm tra ở cấp validator còn xác nhận kết quả. Khi tích hợp trực tiếp vào Sui và chịu tải giao dịch liên tục, các hệ thống sử dụng Tidehunter duy trì hiệu suất ổn định và độ trễ thấp hơn tại các điểm vận hành mà các triển khai dựa trên RocksDB bắt đầu gặp phải tình trạng tăng sử dụng đĩa và giảm hiệu suất. Các phép đo cho thấy giảm áp lực đĩa, CPU ổn định hơn và độ trễ cuối cùng cải thiện, làm nổi bật sự khác biệt rõ rệt trong hành vi dưới tải tương đương.
Tidehunter là phản ứng thực tế đối với các yêu cầu vận hành của các hệ thống blockchain có thông lượng cao và hoạt động lâu dài. Khi blockchain chuyển sang các tác vụ duy trì chứ không phải bùng nổ, hiệu quả lưu trữ trở thành một yêu cầu nền tảng cho hiệu suất giao thức. Thiết kế của Tidehunter phản ánh sự chuyển đổi sang hạ tầng được xây dựng rõ ràng cho giai đoạn mở rộng tiếp theo, với các chi tiết kỹ thuật và kế hoạch triển khai sẽ được công bố trong thời gian tới.