Settima beta di OrioleDB, motore di archiviazione ad alte prestazioni per PostgreSQL

È stata presentata la versione beta del motore di archiviazione OrioleDB beta7 e pubblicati i risultati di nuovi test che dimostrano un significativo aumento delle prestazioni rispetto al tradizionale PostgreSQL. Nella versione beta7 sono state implementate ottimizzazioni mirate a migliorare la gestione dei carichi di lavoro multithread e ad accelerare le operazioni di lettura e scrittura. Il primo rilascio stabile di OrioleDB è previsto per il 2025. Il motore è scritto in C ed è distribuito con una licenza PostgreSQL, simile alle licenze BSD e MIT.

Il progetto OrioleDB sviluppa un motore di archiviazione alternativo per PostgreSQL, progettato per superare le limitazioni del meccanismo di archiviazione standard e migliorare l'efficienza complessiva del sistema. Ad esempio, OrioleDB consente di evitare l'esecuzione periodica dell'operazione VACUUM per la raccolta dei rifiuti, grazie all'implementazione di un meccanismo MVCC (Multi-Version Concurrency Control) basato su log di rollback (undo logs) che operano a livello di singoli blocchi e righe, oltre a un sistema automatico di fusione delle pagine contenenti dati. OrioleDB utilizza anche identificatori di transazione a 64 bit, risolvendo il problema dell'overflow dei contatori.

Per semplificare l'uso in sistemi distribuiti e parallelizzare le operazioni, OrioleDB organizza la registrazione WAL delle transazioni a livello di righe. Durante l'operazione UPDATE, è supportata la sostituzione dei dati in loco (senza liberare la voce attuale e creare una nuova), il che ha un impatto positivo sulle prestazioni. In OrioleDB sono state implementate anche funzionalità come la lettura delle pagine con dati senza utilizzare blocchi, il collegamento diretto delle pagine in memoria alle pagine nello storage permanente, l'applicazione di un meccanismo CoW (copy-on-write) durante il salvataggio dei punti di controllo per creare snapshot coerenti in qualsiasi momento e la modalità di archiviazione dei dati in formato compresso usando l'algoritmo ZSTD.

Nella settima beta di OrioleDB ci sono limitazioni come la possibilità di utilizzare solo indici in formato B-tree (in futuro verrà aggiunto il supporto per tutti i tipi di indici PostgreSQL), nonché l'assenza del supporto per le transazioni preparate (PREPARE TRANSACTION) e il comando «REINDEX» in modalità «CONCURRENTLY». OrioleDB è implementato come un'estensione plug-in, che richiede modifiche al codice sorgente principale di PostgreSQL.

Nei test sulle prestazioni TPC-C, che simulano il carico di elaborazione transazionale in condizioni reali, la settima beta di OrioleDB ha mostrato un significativo vantaggio rispetto al motore predefinito di PostgreSQL. I test sono stati eseguiti con diversi numeri di client attivi contemporaneamente per valutare la scalabilità e le prestazioni del sistema all'aumentare del carico.

Nei test che valutano la capacità di transazione, il motore OrioleDB ha raggiunto una capacità superiore, misurata in transazioni al minuto (tpmC). All'aumentare del numero di client, le prestazioni di OrioleDB continuavano a crescere linearmente, mentre il motore Heap di PostgreSQL mostrava una tendenza alla stagnazione e persino a un calo dopo una certa soglia.

Settima beta di OrioleDB, motore di archiviazione ad alte prestazioni per PostgreSQL
Settima beta di OrioleDB, motore di archiviazione ad alte prestazioni per PostgreSQL
Settima beta di OrioleDB, motore di archiviazione ad alte prestazioni per PostgreSQL

Nei test di tempo di risposta, il tempo medio di risposta delle transazioni in OrioleDB era significativamente inferiore rispetto a PostgreSQL. Di conseguenza, i sistemi basati su OrioleDB possono gestire un numero maggiore di transazioni nello stesso intervallo di tempo, garantendo al contempo un servizio delle richieste più rapido. Durante la misurazione dell'uso delle risorse, il motore OrioleDB ha dimostrato un utilizzo più efficiente della CPU e della memoria, grazie a una gestione ottimizzata delle risorse.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster