- Là DB key-value hiệu năng cao được phát triển bằng Go, hỗ trợ giao diện C và phản ánh các nguyên tắc thiết kế DB hiện đại như cây LSM, MVCC, kiến trúc lock-free
- Bảo đảm tính nhất quán tức thời và độ bền dựa trên WAL (Write Ahead Logging), đồng thời cung cấp hiệu năng ghi/đọc cao nhờ flush/compaction nền và xử lý song song lock-free
- Hướng tới việc lưu trữ dữ liệu nhẹ và nhanh với cấu trúc nhúng single-node, không cần mạng hay phân tán
Các đặc điểm chính của Wildcat
- Dựa trên cây LSM, tối ưu cho workload thiên về ghi
- MVCC (điều khiển tương tranh đa phiên bản) và cấu trúc dữ liệu lock-free, xử lý không khóa trên các đường dẫn chính
- Ghi log WAL: ghi lại toàn bộ trạng thái giao dịch và hỗ trợ khôi phục
- Skip list nhận biết phiên bản để tăng tốc MVCC trong bộ nhớ
- Ghi thread-safe/lock-free và quản lý cache/bộ nhớ theo cơ chế atomic
- SSTable là cấu trúc BTree bất biến (immutable), hỗ trợ tách key-value và tối ưu Bloom filter
- Bảo đảm giao dịch ACID và có thể chọn mức độ bền (Full/Partial/None)
- Crash recovery để khôi phục cả giao dịch đã commit lẫn chưa hoàn tất
- Batch/iterator: hỗ trợ lặp theo phạm vi, tiền tố và hai chiều
- Thiết kế hiện đại như Bloom Filter, tách key-value (
.klog, .vlog), compaction nhận biết tombstone/phiên bản
- Thống kê/logging/monitoring: cung cấp nhiều giao diện chẩn đoán và thống kê như Stats(), LogChannel
- Build thư viện C và API: có thể build thành thư viện chia sẻ Go để dùng trực tiếp từ nhiều ngôn ngữ
- Hỗ trợ Go 1.24+ và Linux/macOS/Windows (64-bit)
Vì sao điều này quan trọng? (điểm khác biệt so với các KV nhúng khác)
- Có cấu trúc LSM+MVCC tương tự RocksDB, Badger, nhưng được tối ưu cho môi trường Go với thiết kế native Go lock-free, đa luồng
- Chuyên cho DB nhúng: triển khai tính nhất quán tức thời/độ bền/hiệu năng cao mà không có overhead của mạng hay replication
- Khả năng khôi phục giao dịch, duy trì trạng thái chưa hoàn tất giúp tăng độ tin cậy và tính minh bạch
- Có thể tinh chỉnh theo từng workload thông qua nhiều tham số compaction/buffer/cache
2 bình luận
Ngôn ngữ này có số lượng cơ sở dữ liệu được tạo ra nhiều đến mức đáng ngờ.
Ngôn ngữ này sản sinh ra nhiều cơ sở dữ liệu một cách đáng ngờ.