Apache Cassandra 4.0 DBMS muaj

Apache Software Foundation nthuav tawm qhov kev tso tawm ntawm DBMS Apache Cassandra 4.0, uas yog nyob rau hauv chav kawm ntawm noSQL systems thiab yog tsim los tsim kom muaj peev xwm loj thiab txhim khu kev qha khaws cia ntawm cov ntaub ntawv loj heev khaws cia hauv daim ntawv ntawm kev sib koom ua ke (hash). Lub Cassandra 4.0 tso tawm yog txiav txim siab npaj txhij rau kev tsim khoom siv thiab twb tau sim hauv cov txheej txheem ntawm Amazon, Apple, DataStax, Instaclustr, iland thiab Netflix nrog pawg ntau dua 1000 nodes. Txoj haujlwm code yog sau hauv Java thiab muab faib raws li Apache 2.0 daim ntawv tso cai.

Lub Cassandra DBMS yog Ameslikas tsim los ntawm Facebook thiab nyob rau hauv 2009 pauv nyob rau hauv lub auspices ntawm lub Apache Foundation. Cov kev daws teeb meem raws li Cassandra tau raug xa mus rau cov kev pabcuam fais fab los ntawm cov tuam txhab xws li Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit thiab Twitter. Piv txwv li, Apache Cassandra-raws li chaw cia khoom siv los ntawm Apple muaj ntau tshaj li ib txhiab pawg, suav nrog 160 txhiab nodes thiab khaws cia ntau dua 100 petabytes ntawm cov ntaub ntawv. Huawei siv ntau tshaj 300 Apache Cassandra pawg, suav nrog 30 txhiab nodes, thiab Netflix siv ntau dua 100 pawg, npog 10 txhiab nodes thiab ua tiav ntau tshaj li ib trillion thov ib hnub.

Lub Cassandra DBMS sib txuas ua ke tag nrho Dynamo hash system, uas muab yuav luag linear scalability raws li qhov ntim ntawm cov ntaub ntawv nce. Cassandra siv cov qauv khaws cia cov ntaub ntawv raws li tsev neeg kem (KomnFamily), uas txawv ntawm cov tshuab xws li memcachedb, uas khaws cov ntaub ntawv tsuas yog hauv cov saw tseem ceeb / tus nqi, los ntawm kev muaj peev xwm los npaj khaws cia ntawm hashes nrog ntau theem ntawm zes. Txhawm rau ua kom yooj yim sib cuam tshuam nrog cov ntaub ntawv, cov lus nug cov lus nug CQL (Cassandra Query Language) tau txais kev txhawb nqa, uas yog nco txog SQL, tab sis txo qis hauv kev ua haujlwm. Cov yam ntxwv muaj xws li kev txhawb nqa rau lub npe chaw thiab cov tsev neeg, thiab tsim cov indexes siv "CREATE INDEX" qhia.

DBMS tso cai rau koj los tsim qhov tsis ua haujlwm-tiv thaiv cia: cov ntaub ntawv muab tso rau hauv cov ntaub ntawv khaws cia tau rov ua dua rau ntau qhov ntawm lub network faib, uas tuaj yeem nthuav dav cov chaw sib txawv. Thaum ib lub node ua tsis tiav, nws cov haujlwm raug khaws ntawm ya los ntawm lwm cov nodes. Ntxiv cov nodes tshiab rau pawg thiab hloov kho Cassandra version yog ua tiav ntawm ya, tsis muaj kev cuam tshuam los ntawm phau ntawv ntxiv lossis rov teeb tsa lwm cov nodes. Cov tsav tsheb nrog CQL txhawb nqa tau npaj rau Python, Java (JDBC/DBAPI2), Ruby, PHP, C ++ thiab JavaScript (Node.js).

Main innovations:

  • Txhim kho kev ua tau zoo thiab scalability. Kev ua tau zoo ntawm cov ntaub ntawv pauv hauv SSTable (Sorted Strings Table) hom ntawm cov nodes tau raug txhim kho. Internode Messaging Protocol tau ua kom zoo dua. Qhov ceev ntawm kev xa cov ntaub ntawv ntws ntawm cov nodes tau nce mus txog 5 zaug (tsuas yog vim yog kev siv cov txheej txheem Zero Copy thiab kev hloov pauv ntawm tag nrho SSTables), thiab cov kev nkag mus rau kev nyeem thiab sau cov haujlwm tau nce mus rau 25%. Cov txheej txheem rov ua kom rov qab tau zoo dua. Latencies vim kev khaws khib nyiab nres yog txo mus rau ob peb milliseconds.
  • Ntxiv kev txhawb nqa rau daim ntawv txheeb xyuas uas tso cai rau koj taug qab cov neeg siv kev lees paub kev ua haujlwm thiab tag nrho cov lus nug CQL ua tiav.
  • Ntxiv lub peev xwm los tuav ib daim ntawv thov tag nrho binary, tso cai rau koj txuag txhua qhov kev thov thiab cov lus teb. Rau kev tswj hwm, cov lus txib "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" tau npaj tseg, thiab cov khoom siv fqltool tau muab rau kev txheeb xyuas lub cav. Cov lus txib tau muab rau kev hloov lub cav rau hauv daim ntawv nyeem tau (Dump), sib piv cov haujlwm ua haujlwm (Sib piv) thiab rov ua dua (Replay) rau kev tshuaj xyuas rov tsim dua cov xwm txheej hauv cov khoom siv tiag tiag.
  • Ntxiv kev txhawb nqa rau cov ntxhuav virtual uas tsis cuam tshuam cov ntaub ntawv khaws cia hauv SSTables, tab sis cov ntaub ntawv tawm ntawm API (kev ntsuas kev ua tau zoo, cov ntaub ntawv teeb tsa, cov ntsiab lus cache, cov ntaub ntawv hais txog cov neeg siv khoom sib txuas, thiab lwm yam).
  • Kev ua haujlwm ntawm cov ntaub ntawv compressed tau raug txhim kho, txo qhov chaw siv disk thiab txhim kho kev nyeem ntawv.
  • Cov ntaub ntawv ntsig txog qhov system keyspace (system.*) tam sim no muab tso rau hauv thawj phau ntawv teev npe los ntawm lub neej ntawd tsis yog muab faib thoob plaws tag nrho cov ntaub ntawv teev npe, uas tso cai rau cov node ua haujlwm yog tias ib qho ntawm cov disks ntxiv ua tsis tiav.
  • Ntxiv qhov kev sim txhawb nqa rau Kev Hloov Pauv Hloov Pauv thiab Cheap Quorums. Ib ntus replicas tsis khaws tag nrho cov ntaub ntawv thiab siv incremental restore kom raws li tag nrho replicas. Cov pawg teeb pom kev zoo siv cov ntawv sau kom zoo uas tsis muaj kev sau ntawv rau cov ntawv luam ib ntus kom txog rau thaum muaj cov txheej txheem tag nrho.
  • Ntxiv kev sim txhawb nqa rau Java 11.
  • Ntxiv kev sim kev xaiv los sib piv tag nrho Merkle Tsob Ntoo. Piv txwv li, ua kom muaj kev xaiv ntawm 3-node pawg nyob rau hauv uas ob lub replicas zoo tib yam thiab ib qho yog stale yuav ua rau muaj kev hloov tshiab ntawm cov stale replica siv tsuas yog ib daim ntawv luam ntawm qhov tam sim no replica.
  • Ntxiv cov haujlwm tshiab tam sim noTimestamp, currentDate, currentTime thiab currentTimeUUID.
  • Ntxiv kev txhawb nqa rau kev ua lej lej hauv CQL cov lus nug.
  • Lub peev xwm los ua cov lej lej ntawm cov ntaub ntawv nrog hom "timestamp" / "date" thiab "lub sijhawm" yog muab.
  • Ntxiv ib hom rau saib ua ntej cov ntaub ntawv ntws xav tau rau kev rov qab (nodetool kho - saib ua ntej) thiab muaj peev xwm los xyuas qhov tseeb ntawm cov ntaub ntawv rov qab (nodetool kho -validate).
  • SELECT cov lus nug tam sim no muaj peev xwm ua tiav Daim Ntawv Qhia thiab Teeb Khoom.
  • Ntxiv kev txhawb nqa rau parallelizing thawj theem kev tsim kho ntawm materialized views (cassandra.yaml: concurrent_materialized_view_builders).
  • Cov lus txib "nodetool cfstats" tau ntxiv kev txhawb nqa rau kev txheeb xyuas los ntawm qee qhov kev ntsuas thiab txwv cov kab uas pom.
  • Cov chaw yog muab los txwv tus neeg siv kev sib txuas rau qee qhov chaw cov ntaub ntawv nkaus xwb.
  • Ntxiv lub peev xwm los txwv qhov kev siv (tus nqi txwv) ntawm snapshot creation thiab clearing operations.
  • cqlsh thiab cqlshlib tam sim no txhawb nqa Python 3 (Python 2.7 tseem txhawb nqa).
  • Kev them nyiaj yug rau lub Windows platform tau raug txiav lawm. Txhawm rau khiav Cassandra ntawm Windows, nws raug nquahu kom siv Linux ib puag ncig tsim los ntawm lub hauv paus ntawm WSL2 subsystem (Windows Subsystem for Linux 2) lossis virtualization systems.



Tau qhov twg los: opennet.ru

Ntxiv ib saib