ืฉื—ืจื•ืจ ืฉืœ Dragonfly 1.0, ืžืขืจื›ืช ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ืŸ ื‘-RAM

ืฉื•ื—ืจืจื” ืžืขืจื›ืช ื”ืื—ืกื•ืŸ ื•ื”ืื—ืกื•ืŸ ื‘ื–ื™ื›ืจื•ืŸ Dragonfly, ืืฉืจ ืžื‘ืฆืขืช ืžื ื™ืคื•ืœืฆื™ื•ืช ื‘ื ืชื•ื ื™ื ื‘ืคื•ืจืžื˜ ืžืคืชื—/ืขืจืš ื•ื™ื›ื•ืœื” ืœืฉืžืฉ ื›ืคืชืจื•ืŸ ืงืœ ืžืฉืงืœ ืœื”ืืฆืช ื”ืขื‘ื•ื“ื” ืฉืœ ืืชืจื™ื ื˜ืขื•ื ื™ื ืžืื•ื“, ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ืฉืื™ืœืชื•ืช ืื™ื˜ื™ื•ืช ืœ-DBMS ื•ื ืชื•ื ื™ ื‘ื™ื ื™ื™ื ื‘-RAM. Dragonfly ืชื•ืžืš ื‘ืคืจื•ื˜ื•ืงื•ืœื™ Memcached ื•-Redis, ืžื” ืฉืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื•ืช ืœืงื•ื— ืงื™ื™ืžื•ืช ื•ืœื”ืขื‘ื™ืจ ืคืจื•ื™ืงื˜ื™ื ื‘ืืžืฆืขื•ืช Memcached ื•-Redis ืœ-Dragonfly ืžื‘ืœื™ ืœืขื‘ื“ ืžื—ื“ืฉ ืืช ื”ืงื•ื“.

ื‘ื”ืฉื•ื•ืื” ืœ-Redis, Dragonfly ื”ืฉื™ื’ื” ืขืœื™ื™ื” ืฉืœ ืคื™ 2 ื‘ื‘ื™ืฆื•ืขื™ื (6 ืžื™ืœื™ื•ืŸ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื”) ืขื‘ื•ืจ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ื˜ื™ืคื•ืกื™ื™ื ื‘ืกื‘ื™ื‘ืช Amazon EC16 c25gn.3.8xlarge. ื‘ื”ืฉื•ื•ืื” ืœ-Memcached ื‘ืกื‘ื™ื‘ืช AWS c6gn.16xlarge, Dragonfly ื”ืฆืœื™ื— ืœื‘ืฆืข ืคื™ 4.7 ื‘ืงืฉื•ืช ื›ืชื™ื‘ื” ื‘ืฉื ื™ื™ื” (3.8 ืžื™ืœื™ื•ืŸ ืœืขื•ืžืช 806 ืืœืฃ) ื•ืคื™ 1.77 ื™ื•ืชืจ ื‘ืงืฉื•ืช ืงืจื™ืื” ื‘ืฉื ื™ื™ื” (3.7 ืžื™ืœื™ื•ืŸ ืœืขื•ืžืช 2.1 ืžื™ืœื™ื•ืŸ).

ืฉื—ืจื•ืจ ืฉืœ Dragonfly 1.0, ืžืขืจื›ืช ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ืŸ ื‘-RAM

ื‘ื‘ื“ื™ืงื•ืช ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ืฉืœ 5 ื’'ื™ื’ื”-ื‘ื™ื™ื˜, Dragonfly ื“ืจืฉ 30% ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ ืžืืฉืจ Redis. ื‘ืขืช ื™ืฆื™ืจืช ืฆื™ืœื•ืžื™ ืžืฆื‘ ืขื ื”ืคืงื•ื“ื” "bgsave", ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืขื•ืœื”, ืืš ื‘ืจื’ืขื™ ื”ืฉื™ื ื”ื™ื ื ื•ืชืจื” ื›ืžืขื˜ ืคื™ ืฉืœื•ืฉื” ืคื—ื•ืช ืžืืฉืจ ื‘ืจื“ื™ืก, ื•ืคืขื•ืœืช ื”ืงืœื˜ืช ืชืžื•ื ืช ื”ืžืฆื‘ ืขืฆืžื” ืžื”ื™ืจื” ื‘ื”ืจื‘ื” (ื‘ื‘ื“ื™ืงื” ื ื›ืชื‘ื” ืชืžื•ื ืช ืžืฆื‘ ื‘- Dragonfly ื‘-30 ืฉื ื™ื•ืช, ื‘ืขื•ื“ Redis - ืชื•ืš 42 ืฉื ื™ื•ืช).

ืฉื—ืจื•ืจ ืฉืœ Dragonfly 1.0, ืžืขืจื›ืช ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ืŸ ื‘-RAM

ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืžื•ืฉื’ื™ื ื”ื•ื“ื•ืช ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ืจื™ื‘ื•ื™ ื”ืœื™ื›ื™ ื—ื™ื‘ื•ืจ ืœืœื ืฉื™ืชื•ืฃ ืžืฉืื‘ื™ื (shared-nothing), ืžื” ืฉืื•ืžืจ ืฉืœื›ืœ ืฉืจืฉื•ืจ ืžื•ืงืฆื” ืžืขื‘ื“ ื ืคืจื“ ื ืคืจื“ ืขื ืžื ืช ื ืชื•ื ื™ื ืžืฉืœื•, ืฉืขื•ื‘ื“ ืœืœื ืžื•ื˜ืงืกื™ื ื•ืžื ืขื•ืœื™ ืกืคื™ืŸ. ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืื˜ื•ืžื™ื•ืช ื‘ืขืช ืขื‘ื•ื“ื” ืขื ืžืคืชื—ื•ืช ืžืจื•ื‘ื™ื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื ืขื•ืœื™ VLL ืงืœื™ื. ื›ื“ื™ ืœืื—ืกืŸ ืžื™ื“ืข ื‘ื™ืขื™ืœื•ืช ื‘ื–ื™ื›ืจื•ืŸ, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื‘ื ื” ื˜ื‘ืœืช ื”-dashtable, ื”ืžื™ื™ืฉืžืช ืกื•ื’ ืฉืœ ื˜ื‘ืœืช hash ืžื—ื•ืœืงืช.

ื›ืžื” ืชื›ื•ื ื•ืช ืฉืœ Dragonfly:

  • ืžืฆื‘ ืžื˜ืžื•ืŸ, ื”ืžื—ืœื™ืฃ ืื•ื˜ื•ืžื˜ื™ืช ื ืชื•ื ื™ื ื™ืฉื ื™ื ื‘ื ืชื•ื ื™ื ื—ื“ืฉื™ื ืœืื—ืจ ืžื™ืฆื•ื™ ื”ื–ื™ื›ืจื•ืŸ ื”ืคื ื•ื™.
  • ืชืžื™ื›ื” ื‘ื”ืฆืžื“ื” ืœื ืชื•ื ื™ื ืœื›ืœ ื”ื—ื™ื™ื ืฉื‘ืžื”ืœื›ื• ื”ื ืชื•ื ื™ื ื ื—ืฉื‘ื™ื ืจืœื•ื•ื ื˜ื™ื™ื.
  • ืชืžื™ื›ื” ื‘ืฉื˜ื™ืคื” ืฉืœ ืžืฆื‘ ืื—ืกื•ืŸ ืœื“ื™ืกืง ื‘ืจืงืข ืœืฉื—ื–ื•ืจ ืžืื•ื—ืจ ื™ื•ืชืจ ืœืื—ืจ ื”ืคืขืœื” ืžื—ื“ืฉ.
  • ื ื•ื›ื—ื•ืช ืฉืœ ืงื•ื ืกื•ืœืช HTTP (ื ืงืฉืจืช ืœื™ืฆื™ืืช TCP 6379) ืœื ื™ื”ื•ืœ ืžืขืจื›ืช ื•ืžืžืฉืง API ืœื”ื—ื–ืจืช ืžื“ื“ื™ื, ืชื•ืื ืœ-Prometheus.
  • ืชืžื™ื›ื” ื‘-185 ืคืงื•ื“ื•ืช Redis, ื”ืžืงื‘ื™ืœื” ื‘ืขืจืš ืœืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ืžื”ื“ื•ืจืช Redis 5.
  • ืชื•ืžืš ื‘ื›ืœ ืคืงื•ื“ื•ืช Memcached ืœืžืขื˜ CAS (ื‘ื“ื•ืง-ื•-ื”ื’ื“ืจ).
  • ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช ืืกื™ื ื›ืจื•ื ื™ื•ืช ืœื™ืฆื™ืจืช ืฆื™ืœื•ืžื™ ืžืฆื‘.
  • ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืฆืคื•ื™ื”.
  • ืžืชื•ืจื’ืžืŸ ืžื•ื‘ื ื” Lua 5.4.
  • ืชื•ืžืš ื‘ืกื•ื’ื™ ื ืชื•ื ื™ื ืžื•ืจื›ื‘ื™ื ื›ื’ื•ืŸ hashes, ืกื˜ื™ื, ืจืฉื™ืžื•ืช (ZSET, HSET, LIST, SETS ื•-STRING) ื•ื ืชื•ื ื™ JSON.
  • ืชื•ืžืš ื‘ืฉื›ืคื•ืœ ืื—ืกื•ืŸ ืœืกื‘ื™ืœื•ืช ืชืงืœื•ืช ื•ืื™ื–ื•ืŸ ืขื•ืžืกื™ื.

ืงื•ื“ Dragonfly ื›ืชื•ื‘ ื‘-C/C++ ื•ืžื•ืคืฅ ืชื—ืช BSL (ืจื™ืฉื™ื•ืŸ ืžืงื•ืจ ืขืกืงื™). ืจื™ืฉื™ื•ืŸ BSL ื”ื•ืฆืข ืขืœ ื™ื“ื™ ืžื™ื™ืกื“ื™ MySQL ื›ื—ืœื•ืคื” ืœืžื•ื“ืœ Open Core. ื”ืžื”ื•ืช ืฉืœ BSL ื”ื™ื ืฉื”ืงื•ื“ ืฉืœ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืžืชืงื“ืžืช ื–ืžื™ืŸ ื‘ืชื—ื™ืœื” ืœืฉื™ื ื•ื™, ืืš ืœืžืฉืš ื–ืžืŸ ืžื” ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืœืœื ืชืฉืœื•ื ืจืง ืื ืžืชืงื™ื™ืžื™ื ืชื ืื™ื ื ื•ืกืคื™ื, ื”ืžื—ื™ื™ื‘ื™ื ืจื›ื™ืฉืช ืจื™ืฉื™ื•ืŸ ืžืกื—ืจื™ ื›ื“ื™ ืœืขืงื•ืฃ. ืชื ืื™ ืจื™ืฉื™ื•ืŸ ื ื•ืกืคื™ื ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ Dragonfly ืžื—ื™ื™ื‘ื™ื ืืช ื”ืขื‘ืจืช ื”ืงื•ื“ ืœืจื™ืฉื™ื•ืŸ Apache 2.0 ื‘-15 ื‘ืžืจืฅ 2028. ืขื“ ืœืžื•ืขื“ ื–ื”, ื”ืจื™ืฉื™ื•ืŸ ืžืืคืฉืจ ืฉื™ืžื•ืฉ ื‘ืงื•ื“ ืจืง ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืืช ืคืขื•ืœืช ืฉื™ืจื•ืชื™ื• ื•ืžื•ืฆืจื™ื•, ืืš ืื•ืกืจ ืขืœ ืฉื™ืžื•ืฉ ืœืฆื•ืจืš ื™ืฆื™ืจืช ืฉื™ืจื•ืชื™ ืขื ืŸ ื‘ืชืฉืœื•ื ื”ืžืฉืžืฉื™ื ื›ืชื•ืกืคืช ืœ- Dragonfly.

ื’ืจืกื” Dragonfly 1.0 ื‘ื•ืœื˜ืช ื‘ืžื™ืžื•ืฉื” ืฉืœ ืชืžื™ื›ื” ื‘ืฉื›ืคื•ืœ ื ืชื•ื ื™ื ืžื”ืฉืจืช ื”ืจืืฉื™ ืœืฉืจืช ื”ืžืฉื ื™. ืขื ื–ืืช, ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืืช Dragonfly ื›ืš ืฉื™ืฉืžืฉ ื›ืื—ืกื•ืŸ ืžืฉื ื™ ื”ืžืงื‘ืœ ื ืชื•ื ื™ื ืžืฉืจืช ืจืืฉื™ ืขืœ ื‘ืกื™ืก Dragonfly ืื• ืขืœ ื‘ืกื™ืก Redis. ื”-API ืœื ื™ื”ื•ืœ ืฉื›ืคื•ืœ ืชื•ืื Redis ื•ืžื‘ื•ืกืก ืขืœ ืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื•ืช ROLE ื•-REPLICAOF (SLAVEOF).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”