Available ang Apache Cassandra 4.0 DBMS

Iniharap ng Apache Software Foundation ang pagpapalabas ng ipinamahagi na DBMS Apache Cassandra 4.0, na kabilang sa klase ng mga sistema ng noSQL at idinisenyo upang lumikha ng lubos na nasusukat at maaasahang pag-iimbak ng malalaking halaga ng data na nakaimbak sa anyo ng isang associative array (hash). Ang paglabas ng Cassandra 4.0 ay itinuturing na handa para sa pagpapatupad ng produksyon at nasubok na sa mga imprastraktura ng Amazon, Apple, DataStax, Instaclustr, iland at Netflix na may mga kumpol ng higit sa 1000 node. Ang code ng proyekto ay nakasulat sa Java at ipinamamahagi sa ilalim ng lisensya ng Apache 2.0.

Ang Cassandra DBMS ay orihinal na binuo ng Facebook at noong 2009 ay inilipat sa ilalim ng tangkilik ng Apache Foundation. Ang mga solusyong pang-industriya batay sa Cassandra ay na-deploy sa mga serbisyo ng kuryente mula sa mga kumpanya tulad ng Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit at Twitter. Halimbawa, ang imprastraktura ng imbakan na nakabatay sa Apache Cassandra na na-deploy ng Apple ay may higit sa isang libong kumpol, kabilang ang 160 libong node at nag-iimbak ng higit sa 100 petabytes ng data. Gumagamit ang Huawei ng higit sa 300 mga cluster ng Apache Cassandra, kabilang ang 30 libong mga node, at ang Netflix ay gumagamit ng higit sa 100 mga cluster, na sumasaklaw sa 10 libong mga node at nagpoproseso ng higit sa isang trilyong kahilingan bawat araw.

Pinagsasama ng Cassandra DBMS ang isang ganap na ipinamahagi na Dynamo hash system, na nagbibigay ng halos linear na scalability habang tumataas ang dami ng data. Gumagamit si Cassandra ng modelo ng pag-iimbak ng data batay sa isang pamilya ng column (ColumnFamily), na naiiba sa mga system tulad ng memcachedb, na nag-iimbak ng data lamang sa isang key/value chain, sa pamamagitan ng kakayahang ayusin ang storage ng mga hash na may ilang antas ng nesting. Upang gawing simple ang pakikipag-ugnayan sa database, sinusuportahan ang structured query language na CQL (Cassandra Query Language), na parang SQL, ngunit nabawasan ang functionality. Kasama sa mga feature ang suporta para sa mga namespace at pamilya ng column, at ang paggawa ng mga index gamit ang expression na "GUMAWA NG INDEX."

Binibigyang-daan ka ng DBMS na lumikha ng storage-resistant na storage: ang data na inilagay sa database ay awtomatikong ginagaya sa ilang node ng isang distributed network, na maaaring sumasaklaw sa iba't ibang data center. Kapag nabigo ang isang node, ang mga function nito ay mabilis na kukunin ng iba pang mga node. Ang pagdaragdag ng mga bagong node sa cluster at pag-update ng bersyon ng Cassandra ay ginagawa nang mabilis, nang walang karagdagang manu-manong interbensyon o muling pag-configure ng iba pang mga node. Ang mga driver na may suporta sa CQL ay inihanda para sa Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ at JavaScript (Node.js).

Mga pangunahing inobasyon:

  • Pinahusay na pagganap at scalability. Ang kahusayan ng pagpapalitan ng data sa SSTable (Sorted Strings Table) na format sa pagitan ng mga node ay napabuti. Ang Internode Messaging Protocol ay na-optimize. Ang bilis ng paglilipat ng mga stream ng data sa pagitan ng mga node ay tumaas ng hanggang 5 beses (pangunahin dahil sa paggamit ng Zero Copy technique at ang paglipat ng buong SSTables), at ang throughput para sa read and write operations ay tumaas sa 25%. Ang incremental na proseso ng pagbawi ay na-optimize. Ang mga latency dahil sa pag-pause ng koleksyon ng basura ay binabawasan sa ilang millisecond.
  • Nagdagdag ng suporta para sa audit log na nagbibigay-daan sa iyong subaybayan ang mga pagpapatakbo ng pagpapatunay ng user at lahat ng naisagawang CQL na mga query.
  • Idinagdag ang kakayahang magpanatili ng buong binary request log, na nagbibigay-daan sa iyong i-save ang lahat ng kahilingan at trapiko ng pagtugon. Para sa pamamahala, ang mga command na "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" ay iminungkahi, at ang fqltool utility ay ibinibigay para sa log analysis. Ang mga utos ay ibinibigay para sa pag-convert ng log sa isang nababasang anyo (Dump), paghahambing ng mga hiwa ng aktibidad (Ihambing) at muling pagpapatupad (Replay) para sa pagsusuri na muling ginawa ang mga kundisyong likas sa tunay na pagkarga.
  • Nagdagdag ng suporta para sa mga virtual na talahanayan na hindi nagpapakita ng data na nakaimbak sa SSTables, ngunit ang output ng impormasyon sa pamamagitan ng API (mga sukatan ng pagganap, impormasyon ng mga setting, mga nilalaman ng cache, impormasyon tungkol sa mga konektadong kliyente, atbp.).
  • Ang kahusayan ng naka-compress na imbakan ng data ay napabuti, na binabawasan ang pagkonsumo ng espasyo sa disk at pagpapabuti ng pagganap ng pagbabasa.
  • Ang data na nauugnay sa keyspace ng system (system.*) ay inilalagay na ngayon sa unang direktoryo bilang default sa halip na ipamahagi sa lahat ng mga direktoryo ng data, na nagpapahintulot sa node na manatiling gumagana kung ang isa sa mga karagdagang disk ay nabigo.
  • Nagdagdag ng pang-eksperimentong suporta para sa Transient Replication at Cheap Quorums. Ang mga pansamantalang replika ay hindi nag-iimbak ng lahat ng data at gumagamit ng incremental na pagpapanumbalik upang maging pare-pareho sa buong replika. Ang mga light quorum ay nagpapatupad ng write optimization kung saan walang mga pagsusulat na ginawa sa mga pansamantalang replika hanggang sa isang sapat na hanay ng mga buong replika ay magagamit.
  • Nagdagdag ng pang-eksperimentong suporta para sa Java 11.
  • Nagdagdag ng pang-eksperimentong opsyon para ihambing ang lahat ng Merkle Trees. Halimbawa, ang pagpapagana sa opsyon sa isang 3-node cluster kung saan ang dalawang replika ay magkapareho at ang isa ay lipas na ay magreresulta sa pag-update ng lipas na replika gamit lamang ang isang kopyang operasyon ng kasalukuyang replika.
  • Nagdagdag ng mga bagong function currentTimestamp, currentDate, currentTime at currentTimeUUID.
  • Nagdagdag ng suporta para sa mga pagpapatakbo ng aritmetika sa mga query sa CQL.
  • Ang kakayahang magsagawa ng mga pagpapatakbo ng aritmetika sa pagitan ng data na may mga uri ng "timestamp"/"petsa" at "tagal" ay ibinigay.
  • Nagdagdag ng mode para sa pag-preview ng mga stream ng data na kinakailangan para sa pagbawi (pag-aayos ng nodetool β€”preview) at ang kakayahang suriin ang integridad ng data na nire-restore (pag-aayos ng nodetool β€”validate).
  • Ang mga SELECT query ay mayroon na ngayong kakayahang magproseso ng mga elemento ng Map at Set.
  • Nagdagdag ng suporta para sa pagpaparis sa paunang yugto ng pagtatayo ng mga na-materialize na view (cassandra.yaml:concurrent_materialized_view_builders).
  • Ang command na "nodetool cfstats" ay nagdagdag ng suporta para sa pag-uuri ayon sa ilang partikular na sukatan at paglilimita sa bilang ng mga row na ipinapakita.
  • Ang mga setting ay ibinigay upang limitahan ang koneksyon ng user sa ilang partikular na data center lamang.
  • Idinagdag ang kakayahang limitahan ang intensity (limit sa rate) ng paggawa ng snapshot at mga operasyon sa pag-clear.
  • Sinusuportahan na ngayon ng cqlsh at cqlshlib ang Python 3 (Python 2.7 ay suportado pa rin).
  • Ang suporta para sa Windows platform ay hindi na ipinagpatuloy. Upang patakbuhin ang Cassandra sa Windows, inirerekomendang gamitin ang mga kapaligiran ng Linux na nilikha batay sa WSL2 subsystem (Windows Subsystem para sa Linux 2) o mga virtualization system.



Pinagmulan: opennet.ru

Magdagdag ng komento