Доступна Π‘Π£Π‘Π” Apache Cassandra 4.0

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Apache Software Foundation прСдставила Ρ€Π΅Π»ΠΈΠ· распрСдСлённой Π‘Π£Π‘Π” Apache Cassandra 4.0, относящСйся ΠΊ классу noSQL-систСм ΠΈ рассчитанной Π½Π° созданиС Π²Ρ‹ΡΠΎΠΊΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… массивов Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ ассоциативного массива (Ρ…ΡΡˆΠ°). Выпуск Cassandra 4.0 ΠΏΡ€ΠΈΠ·Π½Π°Π½ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ ΠΈ ΡƒΠΆΠ΅ протСстирован Π² инфраструктурах ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Amazon, Apple, DataStax, Instaclustr, iland ΠΈ Netflix c кластСрами, Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 1000 ΡƒΠ·Π»ΠΎΠ². Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Java ΠΈ распространяСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Apache 2.0.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π‘Π£Π‘Π” Cassandra Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Facebook ΠΈ Π² 2009 Π³ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡ€ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ„ΠΎΠ½Π΄Π° Apache. ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ Cassandra Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ для обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвисов Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit ΠΈ Twitter. НапримСр, развёрнутая ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Apple инфраструктура хранСния Π½Π° Π±Π°Π·Π΅ Apache Cassandra насчитываСт Π±ΠΎΠ»Π΅Π΅ тысячи кластСров, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… 160 тысяч ΡƒΠ·Π»ΠΎΠ² ΠΈ хранящих Π±ΠΎΠ»Π΅Π΅ 100 ΠΏΠ΅Ρ‚Π°Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Huawei ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ 300 кластСров Apache Cassandra, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… 30 тысяч ΡƒΠ·Π»ΠΎΠ², Π° Π² Netflix — Π±ΠΎΠ»Π΅Π΅ 100 кластров, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… 10 тысяч ΡƒΠ·Π»ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€ΠΈΠ»Π»ΠΈΠΎΠ½Π° запросов Π² дСнь.

Π‘Π£Π‘Π” Cassandra ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² сСбС ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ hash-систСму Dynamo, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ практичСски Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΡ‘ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Cassandra ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ модСль хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π±Π°Π·Π΅ сСмСйства столбцов (ColumnFamily), ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ ΠΎΡ‚ систСм ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… memcachedb, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² связкС ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ…ΡΡˆΠ΅ΠΉ с нСсколькими уровнями влоТСнности. Для упрощСния взаимодСйствия с Π‘Π” поддСрТиваСтся язык формирования структурированных запросов CQL (Cassandra Query Language), Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ SQL, Π½ΠΎ ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Из возмоТностСй ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ пространств ΠΈΠΌΡ‘Π½ ΠΈ сСмСйств столбцов, созданиС индСксов Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «CREATE INDEX».

Π‘Π£Π‘Π” позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ устойчивыС ΠΊ сбоям Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°: ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π² Π‘Π” Π΄Π°Π½Π½Ρ‹Π΅ автоматичСски Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° нСсколько ΡƒΠ·Π»ΠΎΠ² распрСдСлённой сСти, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π΅Π½Ρ‚Ρ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ сбоС ΡƒΠ·Π»Π°, Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΏΠΎΠ΄Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² Π² кластСр ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ вСрсии Cassandra производится Π½Π° Π»Π΅Ρ‚Ρƒ, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈ пСрСконфигурирования Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ·Π»ΠΎΠ². Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CQL ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для языков Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ ΠΈ JavaScript (Node.js).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SSTable (Sorted Strings Table) ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ (Internode Messaging Protocol). Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ возросла Π΄ΠΎ 5 Ρ€Π°Π· (Π² основном благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Zero Copy ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ SSTables Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ), Π° пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ опСрациях чтСния ΠΈ записи Π΄ΠΎ 25%. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ процСсс ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ восстановлСния. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ·-Π·Π° приостановки выполнСния сборщиком мусора сниТСны Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… миллисСкунд.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»ΠΎΠ³Π° Π°ΡƒΠ΄ΠΈΡ‚Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ всС выполняСмыС запросы CQL.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вСдСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³Π° запросов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ вСсь Ρ‚Ρ€Π°Ρ„ΠΈΠΊ запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Для управлСния ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog», Π° для Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠ³Π° поставляСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° fqltool. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для прСобразования Π»ΠΎΠ³Π° Π² Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΈΠ΄ (Dump), сравнСния срСзов активности (Compare) ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния (Replay) для Π°Π½Π°Π»ΠΈΠ·Π° c воспроизвСдСниСм условий, свойствСнных Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π² SSTables, Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· API (ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, информация ΠΎ настройках, содСрТимоС кэша, свСдСния ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… ΠΈ Ρ‚.ΠΏ.).
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² сТатом Π²ΠΈΠ΄Π΅, Ρ‡Ρ‚ΠΎ позволяСт ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ дискового пространства ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния.
  • Π”Π°Π½Π½Ρ‹Π΅, относящиСся ΠΊ систСмному пространству ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (system.*), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ вмСсто распрСдСлСния ΠΏΠΎ всСм дирСкториям с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡƒΠ·Π»Π° Π² случаС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· строя ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дисков.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Transient Replication) ΠΈ Π»Ρ‘Π³ΠΊΠΈΡ… ΠΊΠ²ΠΎΡ€ΡƒΠΌΠΎΠ² (Cheap Quorums). Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π΅ хранят всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ восстановлСниС для согласования с ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ. Π›Ρ‘Π³ΠΊΠΈΠ΅ ΠΊΠ²ΠΎΡ€ΡƒΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ запись Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π΅ производится ΠΏΠΎΠΊΠ° Π½Π΅ доступСн достаточный Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠ»ΠΈΠΊ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Java 11.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ опция для сравнСния всСх Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠœΠ΅Ρ€ΠΊΠ»Π° (Merkle Tree). НапримСр, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ Π½Π° кластСрС с 3 ΡƒΠ·Π»Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π²Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Π° ΠΎΠ΄Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ обновлСния ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ с использованиСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ копирования Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ currentTimestamp, currentDate, currentTime ΠΈ currentTimeUUID.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² запросах CQL.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ «timestamp»/»date» ΠΈ «duration».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ для прСдпросмотра ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для восстановлСния (nodetool repair —preview) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности восстанавливаСмых Π΄Π°Π½Π½Ρ‹Ρ… (nodetool repair —validate).
  • Π’ запросах SELECT появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ элСмСнтов Map ΠΈ Set.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° распараллСливания этапа Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ построСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… прСдставлСний (cassandra.yaml:concurrent_materialized_view_builders).
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «nodetool cfstats» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сортировки ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ ΠΈ ограничСния числа Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… строк.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ настройки для ограничСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π΄Π°Ρ‚Π°Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ограничСния интСнсивности (rate limit) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ создания ΠΈ очистки ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ².
  • Π’ cqlsh ΠΈ cqlshlib Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Python 3 (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Python 2.7 ΠΏΠΎΠΊΠ° сохранСна).
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows. Для запуска Cassandra Π² Windows рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Linux-окруТСния, созданныС Π½Π° основС подсистСмы WSL2 (Windows Subsystem for Linux 2) ΠΈΠ»ΠΈ систСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.



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