Apache Cassandra 4.0 DBMS iripo

Iyo Apache Software Foundation yakaratidza kuburitswa kwakagoverwa DBMS Apache Cassandra 4.0, inova yekirasi yeNoSQL masisitimu uye yakagadzirirwa kugadzira yakanyanya scalable uye yakavimbika chengetedzo yehuwandu hukuru hwe data rakachengetwa muchimiro cheasociative array (hashi). Iyo Cassandra 4.0 kuburitswa inoonekwa seyakagadzirira kugadzirwa kwekugadzirwa uye yakatoyedzwa mune zvivakwa zveAmazon, Apple, DataStax, Instaclustr, iland uye Netflix ine masumbu anopfuura 1000 node. Iyo kodhi yeprojekiti yakanyorwa muJava uye inogoverwa pasi peiyo Apache 2.0 rezinesi.

Iyo Cassandra DBMS yakatanga kugadzirwa neFacebook uye muna 2009 yakachinjirwa pasi pechirongwa cheApache Foundation. Maindasitiri mhinduro akavakirwa paCassandra akaiswa kune masevhisi emagetsi kubva kumakambani akadai seApple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit uye Twitter. Semuyenzaniso, iyo Apache Cassandra-based storage infrastructure yakatumirwa neApple ine masumbu anopfuura chiuru, kusanganisira 160 zviuru nodes uye kuchengetedza anopfuura zana petabytes yedata. Huawei anoshandisa anopfuura mazana matatu emasumbu eApache Cassandra, anosanganisira zviuru makumi matatu, uye Netflix inoshandisa anopfuura zana masumbu, anofukidza zviuru gumi nodhi uye kugadzirisa zvinodarika bhiriyoni zvikumbiro pazuva.

Iyo Cassandra DBMS inosanganisa yakagoverwa zvizere Dynamo hash system, iyo inopa inenge mutsara scalability sezvo huwandu hwe data hunowedzera. Cassandra inoshandisa modhi yekuchengetedza data yakavakirwa pamutsara wemhuri (ColumnFamily), iyo inosiyana kubva kune masisitimu akaita sememcachedb, inochengeta data chete mukiyi / kukosha kweketani, nekugona kuronga kuchengetwa kwehashi ine akati wandei mazinga e dendere. Kurerutsa kudyidzana nedhatabhesi, iyo yakarongwa query mutauro CQL (Cassandra Query Mutauro) inotsigirwa, inoyeuchidza SQL, asi yakaderedzwa mukushanda. Zvimiro zvinosanganisira tsigiro yenzvimbo dzemazita uye makoramu mhuri, uye kugadzirwa kwemaindex uchishandisa iyo "CREATE INDEX" kutaura.

Iyo DBMS inobvumidza iwe kugadzira kusakundikana-inodzivirira kuchengetedza: data yakaiswa mudhatabhesi inodzokororwa otomatiki kune akati wandei node yetiweki yakagoverwa, iyo inogona kutenderera nzvimbo dzakasiyana dze data. Kana node ikakundikana, mabasa ayo anotorwa panhunzi nedzimwe node. Kuwedzera node itsva kuboka uye kugadzirisa iyo Cassandra vhezheni inoitwa pane nhunzi, pasina kuwedzera kupindira kwemanyorero kana kugadzirisa mamwe ma node. Vatyairi vane CQL rutsigiro vakagadzirirwa Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ uye JavaScript (Node.js).

Zvitsva zvikuru:

  • Kuvandudzwa kwekuita uye scalability. Kubudirira kwekutsinhana kwedata muSSTable (Sorted Strings Table) fomati pakati pemanodhi yakagadziridzwa. Iyo Internode Messaging Protocol yakagadziridzwa. Iko kumhanya kwekufambisa nzizi dze data pakati pemanodhi kwakawedzera kusvika kashanu (zvikuru nekuda kwekushandiswa kweZero Copy tekinoroji uye kutamiswa kwemaSSTables ese), uye kubuda kwekuverenga nekunyora mabasa kwawedzera kusvika pa5%. Iyo yekuwedzera kudzoreredza maitiro yakagadziridzwa. Latencies nekuda kwekumbomira kwekuunganidza marara kunoderedzwa kusvika mamilliseconds mashoma.
  • Yakawedzerwa tsigiro yerogi yekuongorora iyo inokutendera iwe kuti uteedzere mashandiro echokwadi chemushandisi uye zvese zvakaitwa CQL mibvunzo.
  • Yakawedzera kugona kuchengetedza yakazara bhinari yekukumbira log, ichikubvumidza iwe kuchengetedza zvese zvikumbiro uye mhinduro traffic. Kune manejimendi, iyo mirairo "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" inokurudzirwa, uye fqltool utility inopihwa kuti iongorore log. Mirairo inopihwa yekushandura irogi kuita fomu inoverengeka (Dump), kuenzanisa zvimedu zvechiitiko (Enzanisa) uye kuitazve (Replay) yekuongorora kuburitsa mamiriro arimo mumutoro chaiwo.
  • Yakawedzerwa rutsigiro rwematafura chaiwo anoratidza kwete data rakachengetwa muSSTables, asi ruzivo rwunobuda kuburikidza neAPI (mabatiro ekuita, ruzivo rwezvigadziriso, zvirimo zvecache, ruzivo nezvevatengi vakabatana, nezvimwewo).
  • Kubudirira kwekumanikidzwa kwekuchengetedza data kwakagadziridzwa, kuderedza kushandiswa kwedhisiki nzvimbo nekuvandudza kushanda kwekuverenga.
  • Data ine chekuita nesystem keyspace (system.*) ikozvino yaiswa mudhairekitori rekutanga nekusarudzika pachinzvimbo chekugovaniswa kune ese data madhairekitori, izvo zvinobvumira iyo node kuti irambe ichishanda kana imwe yekuwedzera disks ikatadza.
  • Yakawedzera tsigiro yekuedza yeTransient Replication uye Cheap Quorums. Yenguva pfupi replicas haichengete data rese uye shandisa yakawedzera kudzoreredza kuti ienderane neakazara replicas. Chiedza quorums inoshandisa optimization yekunyora umo pasina zvinyorwa zvinogadzirwa kune zvenguva pfupi replicas kusvika seti yakakwana yezvinyorwa zvizere zviripo.
  • Yakawedzera kuyedza rutsigiro rweJava 11.
  • Yakawedzera kuyedza sarudzo yekuenzanisa ese Miti yeMerkle. Semuyenzaniso, kugonesa sarudzo pane matatu-node cluster umo replica mbiri dzakafanana uye imwe yakasakara zvinoguma nekuvandudzwa kweiyo stale replica uchishandisa kopi imwe chete kushanda kweiyo yazvino replica.
  • Yakawedzera mabasa matsva ikozvinoTimestamp, yazvinoDate, ikozvinoTime uye ikozvinoTimeUUID.
  • Yakawedzerwa rutsigiro rwemasvomhu mashandiro muCQL mibvunzo.
  • Iko kugona kuita arithmetic mashandiro pakati pe data nemhando "timestamp"/"date" uye "nguva" inopihwa.
  • Yakawedzera maitiro ekutarisa nzizi dze data dzinodiwa kuti udzoke (nodetool repair -preview) uye kukwanisa kutarisa kuvimbika kwe data iri kudzorerwa (nodetool repair -validate).
  • SARUDZA mibvunzo ikozvino inokwanisa kugadzirisa Mepu uye Seta zvinhu.
  • Yakawedzerwa tsigiro yekufananidza nhanho yekutanga yekuvaka yemaonero enyama (cassandra.yaml:concurrent_materialized_view_builders).
  • Iwo "nodetool cfstats" murairo wakawedzera tsigiro yekurongedza nemamwe metrics uye kudzikisira nhamba yemitsara inoratidzwa.
  • Zvirongwa zvinopihwa kudzikamisa kubatana kwemushandisi kune dzimwe nzvimbo dzedata chete.
  • Yakawedzera kugona kudzikamisa kusimba (chiyero muganho) wekugadzira snapshot uye kujekesa mashandiro.
  • cqlsh uye cqlshlib ikozvino inotsigira Python 3 (Python 2.7 ichiri kutsigirwa).
  • Tsigiro yepuratifomu yeWindows yakamiswa. Kumhanyisa Cassandra paWindows, zvinokurudzirwa kushandisa nharaunda dzeLinux dzakagadzirwa pahwaro hweWSL2 subsystem (Windows Subsystem yeLinux 2) kana virtualization masisitimu.



Source: opennet.ru

Voeg