ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° 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




