Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π²Π³Ρ€Π°Π΄Π΅Π½ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ TidesDB 1.0, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ACID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ стабилСн Ρ€Π΅Π»ΠΈΠ· Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° TidesDB, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ»ΡŽΡ‡/стойност. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ самостоятСлСн Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» ΠΈΠ»ΠΈ Π·Π° Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π² прилоТСния. ΠšΠ»ΡŽΡ‡ΠΎΠ²ΠΈ характСристики Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ACID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ оптимизация Π·Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Flash носитСли ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° C ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° MPL 2.0. ΠžΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅ са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° C++, Go, Java, Python, Rust, Lua ΠΈ JavaScript.

Π—Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° структура LSM-Π΄ΡŠΡ€Π²ΠΎ (ΠΆΡƒΡ€Π½Π°Π»Π½ΠΎ-структурирано Π΄ΡŠΡ€Π²ΠΎ със сливанС), осигуряваща висока производитСлност Π½Π΅ само ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ запис ΠΈ промяна Π½Π° Π΄Π°Π½Π½ΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ записванСто ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ запис Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ само сСмСйства ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° запис. Π—Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ускоряванС Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ индСкси ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° bloom-Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ (позволяват ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° принадлСТност към мноТСство, допускаща Ρ„Π°Π»ΡˆΠΈΠ²ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡ‚ΡΡŠΡΡ‚Π²Π°Ρ‰ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰Π° пропусканСто Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚).

Има пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ACID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, позволяващи Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ внасянС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ΠΈ сСмСйства ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΈ ΠΏΡ€ΠΈ нСобходимост Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π”Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² компрСсирана Ρ„ΠΎΡ€ΠΌΠ° с ΠΈΠ·Π±ΠΎΡ€ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° компрСсия, ΡΠ²ΡŠΡ€Π·Π°Π½ с сСмСйството Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ поставянС Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ сСмСйства ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π² ΠΏΠ°Ρ€Π°Π»Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Основни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ:

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° сСмСйства ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ (Column Families) β€” ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ»ΡŽΡ‡/стойност. Π—Π° всяко сСмСйство ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ собствСни memtable, SSTable ΠΈ WAL Π»ΠΎΠ³.
  • ACID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ΠΈ няколко ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с сСмСйства ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° двупосочни ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, позволяващи ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΏΡ€Π΅Π· Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡŽΡ‡/стойност Π½Π°ΠΏΡ€Π΅Π΄ ΠΈΠ»ΠΈ Π½Π°Π·Π°Π΄ относно ΠΈΠ·Π±Ρ€Π°Π½Π°Ρ‚Π° позиция Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° сортиранС.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° добавянС Π½Π° собствСни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° сравнСниС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅. НаличиС Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° сравнСниС memcmp, string ΠΈ numeric.
  • Π’ΠΎΠ΄Π΅Π½Π΅ Π½Π° Π»ΠΎΠ³ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ (WAL, Write-Ahead Log) ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° memtable (ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚) ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Π»ΠΎΠ³ ΠΏΡ€ΠΈ стартиранС.
  • ИзползванС Π½Π° Bloom-Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° обращСнията към Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŽΡ‡Π° ΠΏΡ€Π΅Π΄ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ SSTable (постоянно Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅).
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Snappy, LZ4 ΠΈ ZSTD Π·Π° компрСсия Π½Π° записи Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ SSTable ΠΈ WAL-Π»ΠΎΠ³.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° опрСдСлянС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° записитС (TTL) ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° просрочСни записи.
  • Π’Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° синхронизация Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠžΠ—Π£ с постоянното Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅: NONE (Π½Π°ΠΉ-Π±ΡŠΡ€Π·), BACKGROUND (балансиран), FULL (Π½Π°ΠΉ-Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½).
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° настройка Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° memtable, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π½Π° компрСсия, bloom-Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ, Ρ€Π΅ΠΆΠΈΠΌ Π½Π° синхронизация ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π·Π° всяко сСмСйство ΠΊΠΎΠ»ΠΎΠ½ΠΈ.
  • ΠŸΡ€ΠΎΡΡ‚ C API, ΠΊΠΎΠΉΡ‚ΠΎ Π²Ρ€ΡŠΡ‰Π° 0 ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ изпълнСниС Π½Π° опСрацията ΠΈ -1 ΠΏΡ€ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ°.
  • ИзползванС Π½Π° SBHA (Sorted Binary Hash Array) Π·Π° Π±ΡŠΡ€Π·ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² SSTable, позволяващо опрСдСлянС Π½Π°.offset Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π±Π΅Π· пълно сканиранС.
  • ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ прСносим Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° прСдставянС Π½Π° Π±Π°Π·Π°Ρ‚Π°, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ вСрсиониранС.
  • Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° цСлостта, ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ Π² Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster