ืคืจื•ื™ืงื˜ Dragonfly ืžืคืชื— ืชื—ืœื™ืฃ ืžื”ื™ืจ ื™ื•ืชืจ ืขื‘ื•ืจ Redis ื•-Memcached

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

ืจื™ืฉื™ื•ืŸ BSL ื”ื•ืฆืข ืขืœ ื™ื“ื™ ืžื™ื™ืกื“ื™ MySQL ื›ื—ืœื•ืคื” ืœืžื•ื“ืœ Open Core. ื”ืžื”ื•ืช ืฉืœ BSL ื”ื™ื ืฉื”ืงื•ื“ ืฉืœ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืžืชืงื“ืžืช ื–ืžื™ืŸ ื‘ืชื—ื™ืœื” ืœืฉื™ื ื•ื™, ืืš ื‘ืžืฉืš ื–ืžืŸ ืžื” ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืœืœื ืชืฉืœื•ื ืจืง ืื ืžืชืงื™ื™ืžื™ื ืชื ืื™ื ื ื•ืกืคื™ื, ื”ืžื—ื™ื™ื‘ื™ื ืจื›ื™ืฉืช ืจื™ืฉื™ื•ืŸ ืžืกื—ืจื™ ื›ื“ื™ ืœืขืงื•ืฃ. ืชื ืื™ ืจื™ืฉื™ื•ืŸ ื ื•ืกืคื™ื ืฉืœ ืคืจื•ื™ืงื˜ Dragonfly ืžื—ื™ื™ื‘ื™ื ืืช ื”ืขื‘ืจืช ื”ืงื•ื“ ืœืจื™ืฉื™ื•ืŸ Apache 2.0 ืจืง ื‘-1 ื‘ื™ื•ื ื™ 2027. ืขื“ ืœืžื•ืขื“ ื–ื”, ื”ืจื™ืฉื™ื•ืŸ ืžืืคืฉืจ ืฉื™ืžื•ืฉ ื‘ืงื•ื“ ืจืง ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืืช ืคืขื•ืœืช ืฉื™ืจื•ืชื™ื• ื•ืžื•ืฆืจื™ื•, ืืš ืื•ืกืจ ืขืœ ืฉื™ืžื•ืฉ ืœื™ืฆื™ืจืช ืฉื™ืจื•ืชื™ ืขื ืŸ ื‘ืชืฉืœื•ื ื”ืžืฉืžืฉื™ื ื›ืชื•ืกืคืช ืœ- Dragonfly.

ืขืœ ืคื™ ื”ืžืคืชื—ื™ื ื•ื”ื‘ื“ื™ืงื•ืช ื”ืžื“ื’ื™ืžื•ืช, Dragonfly ื˜ื•ืขื ืช ืฉื”ื™ื ืžืขืจื›ืช ืื—ืกื•ืŸ ื”ื–ื™ื›ืจื•ืŸ ื”ืžื”ื™ืจื” ื‘ื™ื•ืชืจ. ื‘ื”ืฉื•ื•ืื” ืœืจื“ื™ืก, Dragonfly ื”ืฉื™ื’ื” ืขืœื™ื™ื” ืฉืœ ืคื™ 25 ื‘ื‘ื™ืฆื•ืขื™ื ื•ื”ืคื—ืชื” ืคื™ ืฉืœื•ืฉื” ื‘ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื‘ืขื•ืžืกื™ ืขื‘ื•ื“ื” ื˜ื™ืคื•ืกื™ื™ื. ืฉืจืช Dragonfly ืื—ื“ ื™ื›ื•ืœ ืœืขื‘ื“ ืžื™ืœื™ื•ื ื™ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื”, ืœืžืฉืœ, ื‘ืกื‘ื™ื‘ืช Amazon EC2 c6gn.16xlarge ื ื™ืชืŸ ื”ื™ื” ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ืฉืœ 3.8 ืžื™ืœื™ื•ืŸ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื”.

ืคืจื•ื™ืงื˜ Dragonfly ืžืคืชื— ืชื—ืœื™ืฃ ืžื”ื™ืจ ื™ื•ืชืจ ืขื‘ื•ืจ Redis ื•-Memcached

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

ืคืจื•ื™ืงื˜ Dragonfly ืžืคืชื— ืชื—ืœื™ืฃ ืžื”ื™ืจ ื™ื•ืชืจ ืขื‘ื•ืจ Redis ื•-Memcached

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

ื‘ื™ืŸ ื”ืชื›ื•ื ื•ืช ื”ื–ืžื™ื ื•ืช ื‘ืžื”ื“ื•ืจื” ื”ืจืืฉื•ื ื”, ืžืฆื•ื™ื ืช ืชืžื™ื›ื” ื‘ืคืจื•ื˜ื•ืงื•ืœ RESP2 ื•-130 ืคืงื•ื“ื•ืช Redis, ืืฉืจ ืชื•ืืžืช ื‘ืขืจืš ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ืžื”ื“ื•ืจืช Redis 2.8. ื‘ื ื•ืกืฃ, Dragonfly ืชื•ืžืš ื‘ื›ืœ ืคืงื•ื“ื•ืช ื”-memcached ืžืœื‘ื“ CAS (check-and-set), ืžืกืคืง ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช ืืกื™ื ื›ืจื•ื ื™ื•ืช ืœื™ืฆื™ืจืช ืฆื™ืœื•ืžื™ ืžืฆื‘, ืžืกืคืง ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืฆืคื•ื™ื”, ืžืกืคืง ืžืชื•ืจื’ืžืŸ ืžื•ื‘ื ื” Lua 5.4, ื•ืชื•ืžืš ื‘ืกื•ื’ื™ ื ืชื•ื ื™ื ืžื•ืจื›ื‘ื™ื ื›ื’ื•ืŸ hashes, ืขืจื›ื•ืช ื•ืจืฉื™ืžื•ืช (ZSET, HSET, LIST, SETS ื•-STRING).

ืžืฆื‘ ืžื˜ืžื•ืŸ ื–ืžื™ืŸ ื‘ื ืคืจื“, ืืฉืจ ืžื—ืœื™ืฃ ืื•ื˜ื•ืžื˜ื™ืช ื ืชื•ื ื™ื ื™ืฉื ื™ื ื‘ื ืชื•ื ื™ื ื—ื“ืฉื™ื ืœืื—ืจ ืžื™ืฆื•ื™ ื”ื–ื™ื›ืจื•ืŸ ื”ืคื ื•ื™. ื ื™ืชืŸ ืœืฆืจืฃ ืœื ืชื•ื ื™ื ื—ื™ื™ื ืฉืœืžื™ื ืฉื‘ืžื”ืœื›ื ื”ื ืชื•ื ื™ื ื ื—ืฉื‘ื™ื ืจืœื•ื•ื ื˜ื™ื™ื. ื ื™ืชืŸ ืœืฉื˜ื•ืฃ ืืช ืžืฆื‘ ื”ืื—ืกื•ืŸ ืœื“ื™ืกืง ื‘ืจืงืข ืœืฉื—ื–ื•ืจ ืžืื•ื—ืจ ื™ื•ืชืจ ืœืื—ืจ ื”ืคืขืœื” ืžื—ื“ืฉ. ืœื ื™ื”ื•ืœ ื”ืžืขืจื›ืช ืžืกื•ืคืงืช ืงื•ื ืกื•ืœืช HTTP (ื ืงืฉืจืช ืœื™ืฆื™ืืช TCP 6379) ื•ืžืžืฉืง API ืœื”ื—ื–ืจืช ืžื“ื“ื™ื, ื”ืชื•ืื ืœ-Prometheus. ื‘ื’ืจืกืื•ืช ืขืชื™ื“ื™ื•ืช, ืื ื• ืžืชื›ื ื ื™ื ืœื”ืจื—ื™ื‘ ืืช ื”ืชืžื™ื›ื” ื‘ืคืงื•ื“ื•ืช Redis ื•ืœื™ื™ืฉื ืืช ื”ื™ื›ื•ืœืช ืœืฉื›ืคืœ ืื—ืกื•ืŸ ื›ื“ื™ ืœืกืคืง ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ื•ืื™ื–ื•ืŸ ืขื•ืžืกื™ื.

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

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