Apache Cassandra 4.0 DBMS inapatikana

Apache Software Foundation iliwasilisha kutolewa kwa DBMS Apache Cassandra 4.0 iliyosambazwa, ambayo ni ya darasa la mifumo ya noSQL na imeundwa ili kuunda hifadhi kubwa na ya kuaminika ya kiasi kikubwa cha data iliyohifadhiwa katika mfumo wa safu shirikishi (heshi). Toleo la Cassandra 4.0 linachukuliwa kuwa tayari kwa utekelezaji wa uzalishaji na tayari limejaribiwa katika miundomsingi ya Amazon, Apple, DataStax, Instaclustr, iland na Netflix yenye makundi ya zaidi ya nodi 1000. Nambari ya mradi imeandikwa katika Java na inasambazwa chini ya leseni ya Apache 2.0.

Cassandra DBMS ilianzishwa awali na Facebook na mwaka wa 2009 ilihamishwa chini ya ufadhili wa Apache Foundation. Suluhu za kiviwanda kulingana na Cassandra zimetumwa kwa huduma za nishati kutoka kwa makampuni kama vile Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit na Twitter. Kwa mfano, miundombinu ya hifadhi ya Apache Cassandra iliyotumwa na Apple ina makundi zaidi ya elfu moja, ikiwa ni pamoja na nodi elfu 160 na kuhifadhi zaidi ya petabytes 100 za data. Huawei hutumia zaidi ya vikundi 300 vya Apache Cassandra, vinavyojumuisha nodi elfu 30, na Netflix hutumia zaidi ya vikundi 100, vinavyojumuisha nodi elfu 10 na kushughulikia maombi zaidi ya trilioni kwa siku.

Cassandra DBMS inachanganya mfumo wa hashi wa Dynamo uliosambazwa kikamilifu, ambao hutoa karibu upanuzi wa mstari kadri kiasi cha data kinavyoongezeka. Cassandra hutumia muundo wa kuhifadhi data kulingana na familia ya safu wima (ColumnFamily), ambayo hutofautiana na mifumo kama vile memcachedb, ambayo huhifadhi data katika msururu wa vitufe/thamani pekee, kwa uwezo wa kupanga uhifadhi wa heshi kwa viwango kadhaa vya kuota. Ili kurahisisha mwingiliano na hifadhidata, lugha ya uulizaji iliyopangwa CQL (Lugha ya Maswali ya Cassandra) inatumika, ambayo ni sawa na SQL, lakini imepunguzwa katika utendaji. Vipengele vinajumuisha usaidizi wa nafasi za majina na safu wima za familia, na uundaji wa faharasa kwa kutumia usemi wa "CREATE INDEX".

DBMS hukuruhusu kuunda hifadhi inayostahimili kushindwa: data iliyowekwa kwenye hifadhidata inarudiwa kiotomatiki kwa nodi kadhaa za mtandao uliosambazwa, ambao unaweza kuchukua vituo tofauti vya data. Wakati nodi inashindwa, kazi zake zinachukuliwa kwenye nzi na nodi nyingine. Kuongeza nodi mpya kwenye nguzo na kusasisha toleo la Cassandra hufanywa kwa kuruka, bila uingiliaji wa ziada wa mwongozo au kurekebisha nodi zingine. Viendeshi vilivyo na usaidizi wa CQL vinatayarishwa kwa Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ na JavaScript (Node.js).

Ubunifu kuu:

  • Utendaji ulioboreshwa na uboreshaji. Ufanisi wa ubadilishanaji wa data katika umbizo la SSTable (Jedwali la Mifuatano Iliyopangwa) kati ya nodi umeboreshwa. Itifaki ya Ujumbe wa Internode imeboreshwa. Kasi ya kuhamisha mito ya data kati ya nodes imeongezeka hadi mara 5 (hasa kutokana na matumizi ya mbinu ya Zero Copy na uhamisho wa SSTables nzima), na matokeo ya shughuli za kusoma na kuandika imeongezeka hadi 25%. Mchakato wa urejeshaji unaoongezeka umeboreshwa. Muda wa kusubiri kutokana na kusitisha ukusanyaji wa takataka hupunguzwa hadi milisekunde chache.
  • Usaidizi ulioongezwa wa kumbukumbu ya ukaguzi unaokuruhusu kufuatilia shughuli za uthibitishaji wa mtumiaji na hoja zote zinazotekelezwa za CQL.
  • Imeongeza uwezo wa kudumisha kumbukumbu kamili ya ombi la binary, huku kuruhusu kuhifadhi maombi yote na trafiki ya majibu. Kwa usimamizi, amri za "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" zinapendekezwa, na matumizi ya fqltool hutolewa kwa uchanganuzi wa kumbukumbu. Amri hutolewa kwa kubadilisha logi kuwa fomu inayoweza kusomeka (Dampo), kulinganisha vipande vya shughuli (Linganisha) na kutekeleza tena (Cheza tena) kwa uchanganuzi wa kuzaliana masharti yaliyomo kwenye mzigo halisi.
  • Usaidizi ulioongezwa kwa majedwali pepe ambayo hayaakisi data iliyohifadhiwa katika SSTables, lakini matokeo ya taarifa kupitia API (vipimo vya utendaji, maelezo ya mipangilio, maudhui ya akiba, taarifa kuhusu wateja waliounganishwa, n.k.).
  • Ufanisi wa kuhifadhi data katika fomu iliyoshinikizwa umeboreshwa, kupunguza matumizi ya nafasi ya diski na kuboresha utendaji wa kusoma.
  • Data inayohusiana na nafasi ya vitufe ya mfumo (mfumo.*) sasa imewekwa katika saraka ya kwanza kwa chaguo-msingi badala ya kusambazwa kwenye saraka zote za data, ambayo inaruhusu nodi kuendelea kufanya kazi ikiwa mojawapo ya diski za ziada itashindwa.
  • Umeongeza usaidizi wa kimajaribio wa Kurudia kwa Muda mfupi na Akidi za Nafuu. Nakala za muda hazihifadhi data zote na hutumia urejeshaji wa nyongeza ili kuendana na nakala kamili. Akidi nyepesi hutekeleza uboreshaji wa uandishi ambapo hakuna uandishi unafanywa kwa nakala za muda hadi seti ya kutosha ya nakala kamili ipatikane.
  • Imeongeza usaidizi wa majaribio kwa Java 11.
  • Umeongeza chaguo la majaribio ili kulinganisha Miti yote ya Merkle. Kwa mfano, kuwezesha chaguo kwenye kundi la nodi 3 ambapo nakala mbili zinafanana na moja ni ya zamani kutasababisha usasishaji wa nakala ya zamani kwa kutumia nakala moja tu ya uendeshaji wa nakala ya sasa.
  • Imeongeza utendakazi mpya wa sasaMuhuri wa saa,Tarehe ya sasa,Wakati wa sasa naWakati wa sasaUUID.
  • Usaidizi ulioongezwa kwa shughuli za hesabu katika hoja za CQL.
  • Uwezo wa kufanya shughuli za hesabu kati ya data yenye aina za "muhuri wa muda"/"tarehe" na "muda" umetolewa.
  • Imeongeza hali ya kukagua mitiririko ya data inayohitajika kwa urejeshaji (kurekebisha nodetool - onyesho la kukagua) na uwezo wa kuangalia uaminifu wa data inayorejeshwa (urekebishaji wa nodetool - thibitisha).
  • HOJA CHAGUA sasa zina uwezo wa kuchakata Ramani na Kuweka vipengele.
  • Usaidizi ulioongezwa wa kusawazisha hatua ya awali ya ujenzi wa maoni yaliyobadilishwa (cassandra.yaml:concurrent_materialized_view_builders).
  • Amri ya "nodetool cfstats" imeongeza usaidizi wa kupanga kwa vipimo fulani na kupunguza idadi ya safu mlalo zinazoonyeshwa.
  • Mipangilio imetolewa ili kupunguza muunganisho wa mtumiaji kwenye vituo fulani vya data pekee.
  • Imeongeza uwezo wa kupunguza ukubwa (kikomo cha kiwango) cha kuunda muhtasari na shughuli za kusafisha.
  • cqlsh na cqlshlib sasa inasaidia Python 3 (Python 2.7 bado inaungwa mkono).
  • Usaidizi wa jukwaa la Windows umekatishwa. Ili kuendesha Cassandra kwenye Windows, inashauriwa kutumia mazingira ya Linux yaliyoundwa kwa misingi ya mfumo mdogo wa WSL2 (Windows Subsystem kwa Linux 2) au mifumo ya virtualization.



Chanzo: opennet.ru

Kuongeza maoni