# Integrace řešení MySQL do PostgreSQL: architektonické inovace pro vysoký výkon
Na konferenci PG BootCamp 2026 Alexej Kopytov (autor sysbench a bývalý vývojář MySQL AB/Percona) představil přednášku o přenosu optimalizací z ekosystému MySQL do PostgreSQL. Klíčové teze – využití osvědčených řešení pro zvýšení odolnosti vůči výpadkům a výkonu PostgreSQL v podmínkách vysoce zatížených systémů. Zvláštní zájem vzbuzuje realizace technologie oddělení compute a storage, adaptovaná týmem Tantor na základě Alibaba PolarDB.
Hlavní výhoda přístupu – zachování plné kompatibility s PostgreSQL při výrazném zvýšení propustnosti. Na rozdíl od šardinování nebo distribuovaných řešení (Citus, Greenplum), architektura Tantor Polar umožňuje zpracovávat cross-shardové dotazy bez ztráty ACID záruk, což je kritické pro OLTP systémy.
Klasifikace architektonických řešení pro SÚBD
Alexej Kopytov navrhl jasnou klasifikaci stávajících přístupů k oddělení výpočetních a úložištních uzlů:
- Šardování a MPP systémy (Greenplum, Citus): oddělení na úrovni SQL parseru. Problém – absence konzistence na úrovni jediného okamžiku času (xid/SCN)
- Distribuované transakční SÚBD (Spanner, YugabyteDB): zpracování transakcí na storage uzlech
- Architektury „LOG is DB“ (Amazon Aurora, Neon): priorita žurnálu změn, zpracování WAL na storage
- Polar architektura (Tantor Polar): oddělení přímo nad storage vrstvou
Klíčové odlišení přístupu Polar – minimalizace změn v jádru PostgreSQL. Všechny optimalizace jsou realizovány na úrovni souborového systému (PolarFS), což umožňuje:
- Zachovat 100% kompatibilitu se stávajícími aplikacemi (včetně 1C)
- Vyhnout se invazivním úpravám v core PostgreSQL
- Zajistit práci se stávajícími nástroji pro zálohování
Architektura Tantor Polar: technická realizace
Systém je postaven na třech klíčových komponentách:
- PolarFS – vysoce výkonný souborový systém nad RDMA/NVMe-oF
- RDMA síť – pro komunikaci mezi compute a storage uzly
- Modifikovaný PostgreSQL – s minimálními změnami v I/O podsystému
Peculiarita realizace – využití Linux MD Cluster jako základní vrstvy pro bloková zařízení. Toto řešení zajišťuje:
- Zpoždění přístupu k datům srovnatelné s lokálním SSD (5-10 μs)
- Průhledné škálování compute uzlů nezávisle na storage
- Podporu režimu Active-Active pro RW uzly
Důležité je, že PolarFS funguje přes standardní POSIX rozhraní, což vylučuje nutnost modifikace jádra PostgreSQL. Všechny změny jsou soustředěny v ovladači souborového systému, což výrazně zjednodušuje apstreamování a podporu.
Srovnání s Oracle RAC a dalšími řešeními
Ačkoli koncepčně je Polar podobný Oracle RAC, rozdíly jsou podstatné:
- Protokol přenosu dat: Polar využívá NVMe-oF nad RDMA, RAC – proprietární protokol
- Úroveň oddělení: v Polar dochází k oddělení na úrovni souborového systému, v RAC – na úrovni ASM
- Otevřenost kódu: PolarFS bude zveřejněn jako open source, na rozdíl od ASM
Zvláštní pozornost si zaslouží realizace RDMA. Rané pokusy (v PostgresPro 10-11) vyžadovaly hlubokou modifikaci jádra PostgreSQL. Tantor realizoval neinvazivní přístup přes ovladač souborového systému, což umožnilo:
- Odstranit problém asymetrických zpoždění přístupu
- Zajistit stejný výkon pro všechny compute uzly
- Zachovat standardní mechanismus zpracování WAL
Co je důležité
- Kompatibilita bez kompromisů: Tantor Polar podporuje všechny funkce PostgreSQL, včetně složitých JOIN a transakcí
- Výkon RDMA: zpoždění na úrovni lokálního SSD (5-10 μs) při práci přes síť
- Škálovatelnost: compute a storage se škálují nezávisle
- Otevřenost: PolarFS bude dostupný pod open-source licencí
- Průmyslová připravenost: řešení je již používáno v XData Gen.3 s konfigurací 3 storage + N compute uzlů
Technické detaily realizace
Klíčové komponenty architektury:
// Příklad integrace RDMA do I/O podsystému
static int polarfs_submit_io(struct io_request *req) {
if (use_rdma) {
return rdma_send(req->buffer, req->length);
}
return posix_write(req->fd, req->buffer, req->length);
}
Optimalizace jsou soustředěny ve třech oblastech:
- Správa bufferů: cachování metadat na compute uzlech
- Zpracování WAL: asynchronní odesílání přes RDMA s potvrzením
- Lock manažer: distribuovaná realizace bez single point of failure
Zvláštní pozornost je věnována zpracování edge cases:
- Obnova po přerušení RDMA spojení
- Zpracování asymetrických síťových zpoždění
- Záruka atomaritu operací zápisu
Experimenty ukázaly, že při použití PolarFS:
- Propustnost se zvyšuje o 35-40 % při vysoké zátěži
- percentil zpoždění klesá 2,3násobně
- Maximální počet transakcí za sekundu roste o 28 %
Závěr
Přístup Tantor demonstruje, jak přenos řešení mezi ekosystémy SÚBD může přinášet významné výhody. Klíčový úspěch – minimální invazivnost změn a zaměření na kompatibilitu. Architektura Polar otevírá nové možnosti pro škálování PostgreSQL v podmínkách, kde dříve byly potřeba radikální změny aplikace nebo přechod na NoSQL řešení.
Důležité je, že realizace nevyžaduje specializované hardware – stačí podpora RDMA a NVMe-oF na síťové úrovni. To činí řešení dostupným pro širokou škálu organizací, které čelí růstu zátěže na stávající PostgreSQL klastry.
— Editorial Team
Zatím žádné komentáře.