Kompania Citus Data, e cila i përket Microsoft, publikoi sistemin e menaxhimit të bazës së të dhënave të shpërndarë Citus 13.0, i implementuar si një zgjerim për PostgreSQL 17. Citus siguron shkallëzim horizontal të PostgreSQL në një klaster të bazuar në hardware standard dhe lejon shpërndarjen e të dhënave në nyje përmes shardimit (sharding) me konfigurimin e ndarjes në nivel kolonash dhe skemës së ruajtjes. Për aplikacionet, klasteri Citus duket si një server i madh PostgreSQL, që bashkon burimet e nyjeve që e formojnë atë. Kodi është shkruar në gjuhën C dhe distribuon nën licencën AGPLv3.
Shardimi lejon organizimin e ruajtjes së një sasie shumë të madhe të dhënash, e cila tejkalon ndjeshëm kapacitetin lokal të çdo nyje të klasterit. Të dhënat individuale mund të replikohen me dëshirë në të gjitha nyjet për të përshpejtuar kryerjen e operacioneve të bashkimit dhe punës me çelësat e jashtëm. Për të kursyer hapësirën e ruajtjes, të dhënat e shpërndara në nyje të ndryshme mund të ruhen në formë të kompresuar.
Kërkesat e shpërndara mund të dërgohen në çdo nyje të klasterit, por menaxhimi dhe ndryshimi i skemës së të dhënave duhet të kryhen vetëm përmes nyjës që koordinon punën e klasterit. Kërkesat që vijnë nga klientët shpërndahen në nyjet e nevojshme dhe, nëse ato mbulojnë disa nyje, atëherë përpunimi i tyre bëhet paralel. Klasteri mund të zgjerohet me rritjen e madhësisë së të dhënave të ruajtura, duke shtuar nyje të tjera dhe duke iniciuar ribalancimin.
Si shembuj tipikë të përdorimit të Citus, përmenden kryerja e kërkesave analitike dhe përpunimi i sasive të mëdha të të dhënave në formën e serive temporale (për shembull, loge ose pyetje mbi gjendjen e sensorëve). Citus gjithashtu është i përshtatshëm për modernizimin e infrastrukturës ekzistuese të bazuar në një PostgreSQL, performanca dhe ruajtësit e të cilit nuk mjaftojnë për shkak të rritjes së ngarkesës ose sasive të të dhënave që po hyjnë. serverë Me ndihmën e veglës Patroni, mund të krijohen konfiguracione të qëndrueshme me nyje rezervë të replikueshme, të cilat në rast dështimi janë në gjendje të zëvendësojnë nyjet kryesore.
Ndryshimet në versionin Citus 13.0:
- Kalimi në përdorimin e degës PostgreSQL 17.
- Mundësia e përdorimit në kërkesat e shpërndara të funksionit JSON_TABLE() për të transformuar të dhënat nga formati JSON në një përfaqësim relacional, me të cilin mund të punoni 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 ndara të ndarjes duke përdorur shprehjen «CREATE TABLE ⊠USING», si dhe ndryshimin e metodës së qasjes nëpërmjet «ALTER TABLE ⊠SET ACCESS METHOD».
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rcaktimin e kolonave identifikimi qĂ« krijohen automatikisht nĂ« tabelat e ndara me seksione.
- ĂshtĂ« lejuar aplikimi i kufizimeve pĂ«rjashtimi nĂ« tabelat e ndara me seksione.
- Janë zgjidhur problemet me sinkronizimin e rolit midis nyjave.
- ĂshtĂ« pĂ«rmirĂ«suar shpĂ«rndarja e tĂ« dhĂ«nave pĂ«r sharding kur shtohen nyje tĂ« reja nĂ« klaster.
- Në komandën «EXPLAIN» janë shtuar opsionet «MEMORY» dhe «SERIALIZE», me ndihmën e të cilave mund të përcaktohet madhësia e memories së përdorur dhe koha e kaluar për transformimin e të dhënave për transmetim në rrjet.
Burimi: opennet.ru
