Dragonfly, projek yang mendakwa sebagai pengganti yang lebih pantas untuk Redis dan Memcached

Berita itu dikeluarkan versi pertama sudah tersedia sistem caching data dalam ingatan Dragonfly, yang menyediakan sokongan untuk protokol Memcached dan Redis, tetapi ia membenarkan pertanyaan dijalankan dengan prestasi yang jauh lebih tinggi dan penggunaan memori yang lebih sedikit.

Sistem ini mengendalikan data dalam format kunci/nilai dan boleh digunakan sebagai penyelesaian ringan untuk mempercepatkan tapak yang banyak dimuatkan, cache pertanyaan perlahan dalam DBMS dan cache data perantaraan dalam RAM.

BSL telah dicadangkan oleh pengasas bersama MySQL sebagai alternatif kepada model Teras Terbuka. Intipati BSL ialah kod fungsi lanjutan pada mulanya tersedia untuk pengubahsuaian, tetapi untuk beberapa waktu ia boleh digunakan secara percuma hanya tertakluk kepada syarat tambahan, yang memerlukan pembelian lesen komersial untuk memintas.

Syarat lesen tambahan projek Dragonfly memerlukan kod ditukar kepada lesen Apache 2.0 hanya pada 1 Jun 2027. Sehingga masa itu, lesen membenarkan penggunaan kod itu hanya untuk memastikan operasi perkhidmatan dan produknya, tetapi melarang penggunaan untuk mencipta perkhidmatan awan berbayar yang bertindak sebagai tambahan kepada Dragonfly.

Dragonfly mendakwa sebagai sistem storan memori terpantas di dunia, mengikut pemaju dan penanda aras. Berbanding dengan Redis, Dragonfly mencapai peningkatan prestasi 25x dan pengurangan 3x dalam penggunaan memori di bawah beban kerja biasa. Pelayan Dragonfly tunggal boleh memproses berjuta-juta permintaan sesaat, contohnya, dalam persekitaran Amazon EC2 c6gn.16xlarge, daya pemprosesan sebanyak 3,8 juta permintaan sesaat telah dicapai.

Dalam ujian storan 5GB, Dragonfly memerlukan 30% kurang memori daripada Redis. Semasa penciptaan syot kilat menggunakan arahan "bgsave", penggunaan memori meningkat, tetapi pada waktu puncak ia dikekalkan hampir tiga kali ganda kurang daripada di Redis, dan operasi tulis syot kilat itu sendiri adalah lebih pantas (dalam ujian, tulis syot kilat dalam Dragonfly dalam 30 saat, dan Redis - dalam 42 saat).

Prestasi tinggi dicapai berkat seni bina berbilang benang tiada sumber dikongsi ( shared-nothing ), yang membayangkan bahawa pengawal yang berasingan dan bebas dengan sekeping datanya sendiri dilampirkan pada setiap utas, berfungsi tanpa mutex atau spin-lock. Kunci VLL ringan digunakan untuk memastikan atomicity apabila berurusan dengan berbilang kunci. Untuk menyimpan maklumat dengan cekap dalam ingatan, struktur jadual pemuka digunakan, yang melaksanakan sejenis jadual cincang terbahagi.

Daripada fungsi yang terdapat dalam versi pertama menyerlahkan sokongan untuk protokol RESP2 dan 130 arahan Redis, yang secara kasarnya sepadan dengan fungsi keluaran Redis 2.8.

Selain itu, Dragonfly menyokong semua arahan Memcached kecuali CAS (sahkan dan tetapkan), menyediakan sokongan untuk operasi tak segerak untuk mencipta syot kilat, menyediakan penggunaan memori yang boleh diramal, menyediakan penterjemah Lua 5.4 terbina dalam dan menyokong jenis data yang kompleks seperti cincang, set dan senarai (ZSET, HSET, LIST, SETS , dan STRING).

Secara berasingan, mod caching tersedia, di mana data lama digantikan secara automatik dengan data baharu setelah memori kosong habis. Ia adalah mungkin untuk memautkan kepada data seumur hidup di mana data itu dianggap relevan.

Keadaan storan boleh disiram ke cakera di latar belakang untuk pemulihan kemudian selepas but semula. Untuk mengurus sistem, konsol HTTP (berikat pada port TCP 6379) dan API untuk mengembalikan metrik yang mematuhi Prometheus disediakan. Dalam keluaran akan datang, kami merancang untuk mengembangkan sokongan untuk arahan Redis dan melaksanakan keupayaan untuk meniru storan untuk failover dan pengimbangan beban.

Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda harus tahu bahawa kod Dragonfly ditulis dalam C/C++ dan diedarkan di bawah lesen BSL (Lesen Sumber Perniagaan).

Anda boleh berunding tentang projek itu Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.