Kompania Citus Data, e cila i përket Microsoft, publikoi DBMS të shpërndarë Citus 13.0, e cila është realizuar si një zgjerim për PostgreSQL 17. Citus ofron shkallëzim horizontal të PostgreSQL në një grup të bazuar në pajisje standarde dhe lejon shpërndarjen e të dhënave në nodet përmes sharding me konfigurimin e ndarjes në nivel kolone dhe skemës së ruajtjes. Për aplikacionet, grupi Citus duket si një server i madh PostgreSQL, i cili bashkon burimet e nodave të tij. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën AGPLv3.
Sharding lejon organizimin e ruajtjes së një sasia shumë të madhe të dhënash, e cila tejkalon ndjeshëm kapacitetin lokal të secilit nga nodet e grupit. Tabelat e veçanta mund të republikohet për të shpejtuar operacionet e bashkimit dhe punën me çelësa të jashtëm. Për të kursyer hapësirë të diskut, të dhënat e shpërndara në nodet e ndryshme mund të ruhen në formë të kompresuar.
Kërkesat e shpërndara mund të dërgohen në secilin nga nodet e grupit, por menaxhimi dhe ndryshimi i skemës së të dhënave duhet të bëhet vetëm përmes nodit që koordinon punën e grupit. Kërkesat që vijnë nga klientët shpërndahen në nodet përkatëse dhe, nëse ato përfshijnë disa node, përpunimi i tyre ndahen në mënyrë paralele. Grupi mund të zgjerohet me rritjen e sasisë së të dhënave të ruajtura, duke shtuar nodet shtesë dhe duke iniciuar riparimin.
Si shembuj tipikë të përdorimit të Citus përmendet realizimi i kërkesave analitike dhe procesimi i sasisë të madhe të të dhënave në formën e serive temporale (p.sh., loge ose pyetje për gjendjen e sensorëve). Citus është gjithashtu i përshtatshëm për modernizimin e infrastrukturës ekzistuese të bazuar në një PostgreSQL, performanca e të cilit ka pushuar të jetë e mjaftueshme për shkak të rritjes së ngarkesës ose vëllimit të të dhënave që po vijnë. serverit Me ndihmën e mjetit Patroni, mund të krijohen konfiguracione të qëndrueshme me node rezervë të replikuara, të cilat janë në gjendje të zënë vendin e nodeve kryesore në rast të dështimit.
Ndryshimet në versionin Citus 13.0:
- Kalimi në përdorimin e degës PostgreSQL 17.
- Mundësia për të përdorur në kërkesat e shpërndara funksionin JSON_TABLE() për të transformuar të dhënat nga formati JSON në një përfaqësim relacional, me të cilin mund të punohet si me tabelat e zakonshme PostgreSQL.
- Mbështetje për sintaksën "MERGE ⊠WHEN NOT MATCHED BY SOURCE".
- Mundësia për të përcaktuar metodën e qasjes për tabelat e shpërndara të ndara përmes shprehjes "CREATE TABLE ⊠USING", si dhe ndryshimi i metodës së qasjes përmes "ALTER TABLE ⊠SET ACCESS METHOD".
- Shtuar mbështetje për përcaktimin e kolonave të identifikimit të gjeneruara automatikisht në tabelat e shpërndara të ndara.
- Lejohet aplikimi i kufizimeve të përjashtimit në tabelat e shpërndara të ndara.
- Zgjidhur problemet me sinkronizimin e roleve midis nodeve.
- Përmirësuar shpërndarja e të dhënave për sharding me shtimin e nodeve të rinj në grup.
- Ekspozitës "EXPLAIN" janë shtuar opsionet "MEMORY" dhe "SERIALIZE", me të cilat mund të përcaktohet përmasa e memories së përdorur dhe koha e harxhuar për të transformuar të dhënat për t'u dërguar në rrjet.
Burimi: opennet.ru
