TurboKV: Kho dữ liệu key-value tốc độ cực cao viết bằng Rust
TurboKV là một kho dữ liệu key-value nhúng, không đồng bộ, được viết bằng Rust, nổi bật với hiệu suất vượt trội nhờ các tác vụ batch nguyên tử, quét dải có thứ tự, khả năng tùy chỉnh độ bền dữ liệu và nén dữ liệu hiệu quả. Dự án mã nguồn mở này hứa hẹn mang đến tốc độ xử lý lên tới hơn 2,3 triệu thao tác mỗi giây trong các bài kiểm tra, nhanh hơn đáng kể so với các đối thủ như fjall và redb.

TurboKV: Kho dữ liệu key-value tốc độ cực cao viết bằng Rust
TurboKV là một kho dữ liệu key-value nhúng, không đồng bộ (async), được viết bằng ngôn ngữ Rust, thu hút sự chú ý của cộng đồng công nghệ nhờ hiệu năng ấn tượng. Dự án cung cấp các tính năng như ghi batch nguyên tử, quét dải dữ liệu có thứ tự, tùy chỉnh độ bền và nén dữ liệu, cùng với cơ chế dọn dẹp nền tự động. Điểm đặc biệt của TurboKV là tốc độ xử lý có thể vượt trội gấp nhiều lần so với các giải pháp phổ biến khác, mở ra hướng đi mới cho các ứng dụng cần hiệu suất cao.
Giới thiệu về TurboKV
TurboKV được thiết kế như một thư viện nhúng (embedded), cho phép nhà phát triển tích hợp trực tiếp vào ứng dụng Rust của mình mà không cần chạy một máy chủ cơ sở dữ liệu riêng biệt. Điều này giúp đơn giản hóa việc triển khai và giảm độ trễ trong các hệ thống quan trọng. Thư viện sử dụng bộ lọc Bloom với mã hóa AES phần cứng để tối ưu hiệu suất truy vấn trên các kiến trúc x86/x86_64 và ARM/AArch64.
Cài đặt TurboKV rất đơn giản, chỉ cần thêm vào tệp Cargo.toml của dự án:
[dependencies]
turbokv = "0.6"
tokio = { version = "1", features = ["full"] }
Tính năng nổi bật
TurboKV cung cấp một loạt API mạnh mẽ và linh hoạt, được chia thành các nhóm chức năng chính:
- Ghi dữ liệu: Hỗ trợ
insert,insert_manycho nhiều cặp key-value, vàwrite_batchđể thực hiện các thao tác một cách nguyên tử.- Đọc dữ liệu: Các API
get,contains_keygiúp truy vấn điểm chính xác, trong khirange,scan_prefixcho phép quét dải dữ liệu theo thứ tự từ điển.- Điều khiển độ bền: Cung cấp ba mức độ bền dữ liệu (durability) là
fast(),durable()(mặc định) vàparanoid(), phù hợp với từng yêu cầu về an toàn dữ liệu.- Bảo trì: Các hàm
flush()vàcompact()được thiết kế để quản lý bộ nhớ và tối ưu hóa hiệu suất lâu dài.
Hiệu suất ấn tượng trong các bài kiểm tra
Theo báo cáo benchmark của nhà phát triển, TurboKV vượt trội hoàn toàn so với các đối thủ như fjall và redb. Trong chế độ Durable (đảm bảo phục hồi sau sự cố), TurboKV đạt được tốc độ ghi lên tới 2,3 triệu thao tác mỗi giây khi sử dụng batch 1.000 key, nhanh hơn gấp 4 lần so với fjall. Ngay cả với các thao tác ghi một key mỗi lần, TurboKV vẫn duy trì tốc độ ấn tượng khoảng 1,4 triệu ops/s, gấp gần 3 lần fjall.
Một điểm cần lưu ý là test được thực hiện trên máy tính Apple M4, với kích thước dữ liệu lên tới 84 MB. Kết quả này cho thấy tiềm năng rất lớn của TurboKV trong các ứng dụng cần sự bền bỉ và tốc độ cao như hệ thống nhúng, dịch vụ lưu trữ, hoặc các thành phần quản lý cấu hình.
Ứng dụng thực tế và kết luận
TurboKV là một lựa chọn đầy hứa hẹn cho các nhà phát triển Việt Nam đang xây dựng các ứng dụng đòi hỏi hiệu năng cao, đặc biệt là các hệ thống xử lý dữ liệu thời gian thực hoặc các ứng dụng cần lưu trữ cục bộ với tốc độ nhanh. Với việc mã nguồn được phát hành dưới giấy phép Apache 2.0, cộng đồng có thể dễ dàng sử dụng, đóng góp và tùy chỉnh theo nhu cầu riêng.
Badge GitHub
Badge License
Badge Rust
Dù dự án còn khá mới, nhưng với hiệu suất được chứng minh và thiết kế API sạch sẽ, TurboKV xứng đáng để các kỹ sư phần mềm quan tâm và thử nghiệm. Bạn có thể tìm thấy mã nguồn và tài liệu chi tiết trên GitHub.


