Citus Data, mis kuulub Microsoftile, on avaldanud jaotatud andmebaasi Citus 13.0, mis on rakendatud PostgreSQL 17 laiendusena. Citus vĂ”imaldab PostgreSQL-i horisontaalset skaleerimist tipptasemel riistvara pĂ”hisel klastril ning vĂ”imaldab andmeid jagada sĂ”lmede vahel sharding-tehnoloogia abil, mÀÀrates veergude tasemel ja salvestusskeemide jaotamise. Citus klaster nĂ€eb rakenduste jaoks vĂ€lja nagu ĂŒks suur PostgreSQL server, tuues kokku selle sĂ”lmede ressursid. Kood on kirjutatud C keeles ja levitatakse AGPLv3 litsentsi alusel.
Sharding vĂ”imaldab korraldada vĂ€ga suurte andmemahtude salvestamist, mille kogumaht ĂŒletab oluliselt iga klastris oleva sĂ”lme kohalikke andmekandjaid. Eraldi tabeleid saab sundrepresseerida kĂ”igis sĂ”lmedes, et kiirendada sulandamistegude tĂ€itmist ja vĂ€liste vĂ”tmete haldamist. Ruumi kokkuhoidmiseks vĂ”ivad eri sĂ”lmedes jaotatud andmed olla salvestatud komprimeeritud kujul.
Jaotatud pĂ€ringud vĂ”ivad minna ĂŒkskĂ”ik millisele klastris olevale sĂ”lmele, kuid andmeskeemi haldamine ja muutmine peab toimuma ainult sĂ”lme kaudu, mis koordineerib klastrite tegevust. Kliendilt saadud pĂ€ringud jaotatakse vajalikele sĂ”lmedele ja kui need katab mitu sĂ”lme, töödeldakse neid paralleelselt. Klastrit saab kohandada andmemahtude suurenedes, lisades tĂ€iendavaid sĂ”lmi ja algatades uuesti tasakaalustamise.
TĂŒĂŒpilisteks Citus kasutusnĂ€idisteks on analĂŒĂŒtiliste pĂ€ringute tĂ€itmine ja suurte andmehulkade töötlemine ajareal (nĂ€iteks logid vĂ”i sensorite oleku kĂŒsitlused). Citus sobib ka olemasoleva infrastruktuuri moderniseerimiseks, mis pĂ”hineb ĂŒhelik serverilt PostgreSQL-il, mille jĂ”udlus ja andmekandjad ei suuda enam suurenema kande vĂ”i suurenemise tĂ”ttu andmete hulga tĂ”ttu rahuldada. Patroni tööriista abil on vĂ”imalik luua talitluspidevaid konfiguratsioone replikatsiooniga varusĂ”lmedega, mis suudavad tĂ”rke korral hĂ”ivata peamise sĂ”lme kohta.
Muudatused Citus 13.0 vÀljaandes:
- Ăleminek PostgreSQL 17 haru kasutusele.
- VÔimalus kasutada jaotatud pÀringutes funktsiooni JSON_TABLE() andmete konvertimiseks JSON-formaadist relatsioonilisse esitusesse, millega saab töötada nagu tavaliste PostgreSQL tabelitega.
- Toetab sĂŒntaksit «MERGE ⊠WHEN NOT MATCHED BY SOURCE».
- VÔimalus mÀÀrata juurdepÀÀsu meetod jaotatud jaotatud tabelitele vÀljendi «CREATE TABLE ⊠USING» abil, samuti juurdepÀÀsu meetodi muutmine lÀbi «ALTER TABLE ⊠SET ACCESS METHOD».
- Lisatud tugi automaatselt genereeritavate tuvastamisveerudena jaotatud jaotatud tabelites.
- Lubatud on erandeid kÀsitlevate piirangute rakendamine jaotatud jaotatud tabelites.
- Lahendatud probleemid rollide sĂŒnkroniseerimisega sĂ”lmede vahel.
- Parandatud andmete jaotust sharding'ul uute sÔlmede lisamisel klastrisse.
- KÀsku «EXPLAIN» on lisatud valikud «MEMORY» ja «SERIALIZE», mille abil saab mÀÀrata kasutatud mÀlu suuruse ja andmete edastamiseks vÔrgus kulunud aja.
Allikas: opennet.ru
