Dragonfly, một dự án tuyên bố là sự thay thế nhanh hơn cho Redis và Memcached

Tin tức đã được phát hành rằng phiên bản đầu tiên đã có sẵn hệ thống lưu trữ dữ liệu trong bộ nhớ Dragonfly, cung cấp hỗ trợ cho các giao thức Memcached và Redis, nhưng nó cho phép các truy vấn chạy với hiệu suất cao hơn nhiều và tiêu thụ ít bộ nhớ hơn.

Hệ thống xử lý dữ liệu ở định dạng khóa / giá trị và có thể được sử dụng như một giải pháp nhẹ để tăng tốc các trang web được tải nhiều, lưu vào bộ nhớ cache các truy vấn chậm trong DBMS và lưu vào bộ nhớ cache dữ liệu trung gian trong RAM.

BSL được đề xuất bởi những người đồng sáng lập MySQL như một giải pháp thay thế cho mô hình Open Core. Bản chất của BSL là mã chức năng mở rộng ban đầu có sẵn để sửa đổi, nhưng trong một thời gian, nó có thể được sử dụng miễn phí chỉ với các điều kiện bổ sung, yêu cầu mua giấy phép thương mại để bỏ qua.

Điều khoản cấp phép bổ sung của dự án Dragonfly yêu cầu mã phải được chuyển đổi sang giấy phép Apache 2.0 chỉ vào ngày 1 tháng 2027 năm XNUMX. Cho đến thời điểm đó, giấy phép chỉ cho phép sử dụng mã để đảm bảo hoạt động của các dịch vụ và sản phẩm của nó, nhưng cấm sử dụng để tạo các dịch vụ đám mây trả phí hoạt động như một tiện ích bổ sung cho Dragonfly.

con chuồn chuồn tuyên bố là hệ thống lưu trữ bộ nhớ nhanh nhất thế giới, theo nhà phát triển và điểm chuẩn. So với Redis, Dragonfly đã tăng hiệu suất gấp 25 lần và giảm 3 lần mức tiêu thụ bộ nhớ trong các khối lượng công việc thông thường. Một máy chủ Dragonfly duy nhất có thể xử lý hàng triệu yêu cầu mỗi giây, chẳng hạn như trong môi trường Amazon EC2 c6gn.16xlarge, đã đạt được thông lượng 3,8 triệu yêu cầu mỗi giây.

Trong các bài kiểm tra dung lượng lưu trữ 5GB, Dragonfly yêu cầu bộ nhớ ít hơn 30% so với Redis. Trong quá trình tạo ảnh chụp nhanh bằng lệnh "bgsave", mức tiêu thụ bộ nhớ tăng lên, nhưng ở thời điểm cao điểm, nó được duy trì ít hơn gần ba lần so với trong Redis và bản thân thao tác ghi ảnh chụp nhanh cũng nhanh hơn nhiều (trong thử nghiệm, đã viết ảnh chụp nhanh trong Dragonfly trong 30 giây và Redis - trong 42 giây).

Hiệu suất cao đạt được nhờ kiến ​​trúc đa luồng không có tài nguyên được chia sẻ (shared-nothing), có nghĩa là một bộ điều khiển riêng biệt và độc lập với phần dữ liệu riêng của nó được gắn vào mỗi luồng, hoạt động mà không cần mutexes hoặc spin-lock. Các ổ khóa VLL nhẹ được sử dụng để đảm bảo tính nguyên tử khi xử lý nhiều khóa. Để lưu trữ thông tin một cách hiệu quả trong bộ nhớ, cấu trúc bảng tổng hợp được sử dụng, cấu trúc này thực hiện một loại bảng băm được phân vùng.

Trong số các chức năng có sẵn trong phiên bản đầu tiên nêu bật hỗ trợ cho giao thức RESP2 và 130 lệnh Redis, tương ứng với chức năng của phiên bản Redis 2.8.

Bên cạnh đó, Dragonfly hỗ trợ tất cả các lệnh Memcached ngoại trừ CAS (xác minh và thiết lập), cung cấp hỗ trợ cho các hoạt động không đồng bộ để tạo ảnh chụp nhanh, cung cấp mức tiêu thụ bộ nhớ có thể dự đoán được, cung cấp trình thông dịch Lua 5.4 tích hợp và hỗ trợ các kiểu dữ liệu phức tạp như băm, tập hợp và danh sách (ZSET, HSET, LIST, SETS và STRING).

Riêng biệt, một chế độ lưu vào bộ nhớ đệm có sẵn, trong đó dữ liệu cũ tự động được thay thế bằng dữ liệu mới khi bộ nhớ trống cạn kiệt. Có thể liên kết với dữ liệu suốt đời mà dữ liệu được coi là có liên quan.

Trạng thái lưu trữ có thể được chuyển vào đĩa ở chế độ nền để phục hồi sau khi khởi động lại. Để quản lý hệ thống, một bảng điều khiển HTTP (liên kết với cổng TCP 6379) và một API để trả về các chỉ số tuân thủ Prometheus được cung cấp. Trong các bản phát hành trong tương lai, chúng tôi có kế hoạch mở rộng hỗ trợ cho các lệnh Redis và triển khai khả năng tái tạo bộ nhớ để chuyển đổi dự phòng và cân bằng tải.

Cuối cùng, nếu bạn muốn tìm hiểu thêm về nó, bạn nên biết rằng mã Dragonfly được viết bằng C / C ++ và được phân phối theo giấy phép BSL (Giấy phép Nguồn Kinh doanh).

Bạn có thể tham khảo về dự án Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.