ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Microsoft ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° NoSQL ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Garnet, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Redis. Garnet ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C# Ρ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° C++, ΠΎΡΠ²ΠΎΡΠ΅Π½ Π΅ ΠΏΠΎΠ΄ MIT Π»ΠΈΡΠ΅Π½Π· ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ Π² .NET (ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΡΠ° Π·Π°ΡΠ²Π΅Π½ΠΈ Linux ΠΈ Windows).
ΠΠ° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΡΡ Tsavorite (ΡΠΎΡΠΊ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Microsoft FASTER), ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠΈΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ (checkpointing), Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΡΠ»Π΅Π΄ ΡΡΠΈΠ²ΠΎΠ²Π΅, Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΏΠΈΡ ΠΈ Π²ΠΎΠ΄Π΅Π½Π΅ Π½Π° Π»ΠΎΠ³ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅. ΠΡΠ΅ΠΆΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² Garnet Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΎΡ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ ShadowFax. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° TLS ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠ΅ΡΠ° Π½Π° CPU ΠΏΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Garnet ΡΠ°Π·Π΄Π΅Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΏΠ°ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. ΠΠ°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π²Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π² ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠΎΡΠΌΠ°Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Tsavorite. ΠΡΡΠ²ΠΎΡΠΎ "ΠΎΡΠ½ΠΎΠ²Π½ΠΎ" Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π·Π° Π±ΡΡΠ·ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅, Π° Π²ΡΠΎΡΠΎΡΠΎ "ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ" Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π·Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Ρ Π΅ΡΠΎΠ²Π΅ ΠΈ ΡΠΏΠΈΡΡΡΠΈ. Π’ΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²ΡΠΎΡΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° .NET Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΊΡΠΏΡΠΈΠ½Π° (C# heap), ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΈ Π² ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π²ΠΈΠ΄ Π½Π° Π΄ΠΈΡΠΊΠ°.

Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Garnet:
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, SSD Π΄ΠΈΡΠΊΠΎΠ²Π΅ ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π² ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Ρ Π² Π±Π°Π²Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ΅ΡΠΎΠ²Π΅, ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ.
- Π Π°Π·ΡΠΈΡΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΠΎΠ΅Π²Π΅ Π·Π° SDD, ΡΠ²ΡΡΠ΄ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅ ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Azure Storage.
- ΠΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°.
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΠΈ Π»ΠΈΠΌΠΈΡΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, Π»ΠΎΠ³ ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ.
- ΠΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ RESP, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Garnet Ρ Π½Π΅ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Redis.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΡΡΡΠΈΠ½Π³ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΠΏΠΈΡΡΡΠΈ, Ρ Π΅ΡΠΎΠ²Π΅, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΡΠΏΠΈΡΡΡΠΈ ΠΈ Π³Π΅ΠΎΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΊΠ»ΡΡΠ°.
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° API Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ (HLL/Hyperloglog, Bitmap), ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (MULTI/EXEC) ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅/Π°Π±ΠΎΠ½ΠΈΡΠ°Π½Π΅.
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΡΡΠ΅Π· ACL.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π² ΡΠΎΡΠΌΠ°Ρ JSON ΠΈΠ»ΠΈ redis.conf.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° TLS (Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° SslStream).
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° C#, ΠΊΠΎΠΈΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ, ΠΎΠ±Ρ Π²Π°ΡΠ°ΡΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΠ°.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΎΡ ΠΏΡΠ΅Π΄ΠΈ Π·Π°ΠΏΠ°Π·Π΅Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ (checkpoint-recovery). ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ (AOF, append-only file), ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡΡΠ°Π²Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΈ Π½Π΅ ΡΠ΅ Π·Π°ΠΌΠ΅ΡΡΠ²Π°Ρ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ (Sharding), Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈ ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½ΠΈ Π²ΡΠ·Π»ΠΈ.
- ΠΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ Π½ΠΈΡΠΊΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΡΠΈ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΠΎΡΡΠΈΠ³Π½Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ (Π±ΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°) Π΄Π° Π±ΡΠ΄Π΅ Π½Π° ΠΏΠΎΡΡΠ΄ΡΠΊ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΠΎΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ° Azure Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° 300 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ Garnet Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ΅Π²Π°ΡΠ²Π° Redis, Dragonfly ΠΈ KeyDB ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡ. Π Π½ΡΠΊΠΎΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Garnet Π½Π°Π΄ΠΌΠΈΠ½Π°Π²Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π΅ΡΠ΅ΡΠΎΠΊΡΠ°ΡΠ½ΠΎ.




ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru




