Apache Cassandra 4.0 DBMS ilipo

Apache Software Foundation idapereka kutulutsidwa kwa DBMS Apache Cassandra 4.0 yogawidwa, yomwe ili m'gulu la machitidwe a noSQL ndipo idapangidwa kuti ipange zosungirako zodalirika komanso zodalirika zama data ambiri omwe amasungidwa mumtundu wa associative array (hashi). Kutulutsidwa kwa Cassandra 4.0 kumaonedwa kuti ndi kokonzeka kukhazikitsidwa ndipo kwayesedwa kale muzomangamanga za Amazon, Apple, DataStax, Instaclustr, iland ndi Netflix ndi magulu oposa 1000 node. Khodi ya polojekitiyi imalembedwa ku Java ndipo imagawidwa pansi pa chilolezo cha Apache 2.0.

Cassandra DBMS idapangidwa koyambirira ndi Facebook ndipo mu 2009 idasamutsidwa mothandizidwa ndi Apache Foundation. Njira zothetsera mafakitale zochokera ku Cassandra zatumizidwa kuzinthu zamagetsi kuchokera kumakampani monga Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit ndi Twitter. Mwachitsanzo, malo osungirako zinthu a Apache Cassandra omwe atumizidwa ndi Apple ali ndi magulu opitilira chikwi chimodzi, kuphatikiza ma node 160 ndikusunga ma data opitilira 100. Huawei amagwiritsa ntchito magulu opitilira 300 a Apache Cassandra, okhala ndi ma node 30, ndipo Netflix amagwiritsa ntchito magulu opitilira 100, kuphimba ma node 10 ndikukonza zopempha zopitilira thililiyoni patsiku.

Cassandra DBMS imaphatikiza dongosolo la Dynamo hashi logawidwa mokwanira, lomwe limapereka pafupifupi scalability ngati kuchuluka kwa deta kumawonjezeka. Cassandra amagwiritsa ntchito chitsanzo chosungira deta kutengera banja lazambiri (ColumnFamily), zomwe zimasiyana ndi machitidwe monga memcachedb, omwe amasunga deta muzitsulo zamtengo wapatali / zamtengo wapatali, ndi kuthekera kokonzekera kusungirako ma hashes ndi magawo angapo a zisa. Kuti muchepetse kuyanjana ndi nkhokwe, chiyankhulo chokhazikika cha CQL (Cassandra Query Language) chimathandizidwa, chomwe chimakumbukira SQL, koma chimachepetsedwa magwiridwe antchito. Zomwe zili m'gululi zikuphatikizapo kuthandizira mayina ndi mabanja, komanso kupanga ma index pogwiritsa ntchito mawu akuti "CREATE INDEX".

DBMS imakulolani kuti mupange zosungira zosagwira ntchito: deta yomwe imayikidwa mu database imasinthidwa mosavuta ku ma node angapo a intaneti yogawidwa, yomwe imatha kukhala ndi malo osiyanasiyana. Node ikalephera, ntchito zake zimatengedwa pa ntchentche ndi mfundo zina. Kuwonjezera ma node atsopano pagulu ndikusintha mtundu wa Cassandra kumachitika pa ntchentche, popanda kulowererapo pamanja kapena kukonzanso ma node ena. Madalaivala omwe ali ndi chithandizo cha CQL amakonzekera Python, Java (JDBC/DBAPI2), Ruby, PHP, C ++ ndi JavaScript (Node.js).

Zatsopano zazikulu:

  • Kuchita bwino komanso scalability. Kuchita bwino kwakusinthana kwa data mumtundu wa SSTable (Sorted Strings Table) pakati pa ma node kwawongoleredwa. Internode Messaging Protocol yakonzedwa bwino. Liwiro la kusamutsa mitsinje ya data pakati pa ma node lakwera mpaka kasanu (makamaka chifukwa chogwiritsa ntchito njira ya Zero Copy ndi kusamutsa ma SSTables onse), ndipo kutulutsa kwa ntchito zowerengera ndi kulemba kwakwera mpaka 5%. Njira yowonjezereka yochira yakonzedwa bwino. Kuchedwa chifukwa cha kuyimitsidwa kwa zinyalala kumachepetsedwa kukhala ma milliseconds ochepa.
  • Thandizo lowonjezera pa chipika chowerengera chomwe chimakupatsani mwayi wotsata zotsimikizira za ogwiritsa ntchito ndi mafunso onse a CQL omwe adafunsidwa.
  • Wowonjezera kuthekera kosunga chipika chambiri chopempha cha binary, kukulolani kuti musunge zopempha zonse ndi mayankho. Kwa oyang'anira, malamulo oti "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" aperekedwa, ndipo fqltool imaperekedwa kuti iwunike zolemba. Malamulo amaperekedwa kuti asinthe chipikacho kukhala mawonekedwe owerengeka (Kutaya), kufananiza magawo a zochitika (Yerekezerani) ndikuchitanso (Replay) kuti muwunikire kutulutsanso mikhalidwe yomwe ili mu katundu weniweni.
  • Thandizo lowonjezera la matebulo owoneka bwino omwe amawonetsa zomwe sizinasungidwe mu SSTables, koma zotulutsa zambiri kudzera pa API (ma metrics ogwirira ntchito, zidziwitso zamasinthidwe, zomwe zili mkati mwa cache, zambiri zamakasitomala olumikizidwa, ndi zina).
  • Kuchita bwino kwa kusungitsa deta kwasinthidwa bwino, kuchepetsa kugwiritsa ntchito malo a disk ndikuwongolera magwiridwe antchito.
  • Deta yokhudzana ndi keyspace system (system.*) tsopano yayikidwa mu bukhu loyamba mwachisawawa m'malo mogawidwa m'mabuku onse a deta, zomwe zimathandiza kuti node ikhalebe ikugwira ntchito ngati imodzi mwa ma disks owonjezera ikulephera.
  • Anawonjezera chithandizo choyesera cha Transient Replication ndi Cheap Quorums. Zofananira zosakhalitsa sizimasunga zonse ndipo zimagwiritsa ntchito kubwezeretsanso kowonjezereka kuti zigwirizane ndi zofananira zonse. Magulu opepuka amakwaniritsa kukhathamiritsa kwa kulemba komwe sikumalembedwa kuti zikhale zongobwereza kwakanthawi mpaka zolemba zokwanira zitapezeka.
  • Anawonjezera chithandizo choyesera cha Java 11.
  • Anawonjezera njira yoyesera kuti mufananize Mitengo yonse ya Merkle. Mwachitsanzo, kupatsa mwayi pagulu la 3-node momwe zofananira ziwiri ndizofanana ndipo imodzi ndi yachikale zipangitsa kuti chithunzicho chikhale chosinthika pogwiritsa ntchito kope limodzi lokha la zomwe zilipo.
  • Onjezani ntchito zatsopano panopaTimestamp, currentDate, currentTime ndi currentTimeUUID.
  • Thandizo lowonjezera la masamu mu mafunso a CQL.
  • Kutha kuchita masamu pakati pa data ndi mitundu ya "timestamp"/"deti" ndi "nthawi" yaperekedwa.
  • Anawonjezera njira yowonetseratu mitsinje ya deta yofunikira kuti mubwezeretse (nodetool kukonza -preview) ndi kutha kuyang'ana kukhulupirika kwa deta yomwe ikubwezeretsedwa (nodetool kukonza - kuvomereza).
  • SINKHA mafunso tsopano ali ndi kuthekera kokonza Mapu ndi Kukhazikitsa zinthu.
  • Thandizo lowonjezera lofananiza gawo loyambirira lomanga la mawonedwe opangidwa ndi thupi (cassandra.yaml:concurrent_materialized_view_builders).
  • Lamulo la "nodetool cfstats" lawonjezera chithandizo cha kusanja ndi ma metrics ena ndikuchepetsa kuchuluka kwa mizere yowonetsedwa.
  • Zokonda zimaperekedwa kuti achepetse kulumikizana kwa wogwiritsa ndi malo ena a data okha.
  • Anawonjezera kuthekera kochepetsa kuchulukira (chiwongola dzanja) chakupanga chithunzithunzi ndikuchotsa ntchito.
  • cqlsh ndi cqlshlib tsopano amathandizira Python 3 (Python 2.7 ikuthandizirabe).
  • Thandizo la nsanja ya Windows latha. Kuti muyendetse Cassandra pa Windows, tikulimbikitsidwa kugwiritsa ntchito malo a Linux opangidwa pamaziko a WSL2 subsystem (Windows Subsystem for Linux 2) kapena machitidwe owonera.



Source: opennet.ru

Kuwonjezera ndemanga