WeSQL è una distribuzione di MySQL che adotta un'architettura con separazione tra calcolo e storage. Utilizza inoltre S3 e sistemi compatibili per l'archiviazione dei dati. Questa impostazione gli permette di operare su qualsiasi Cloud ed evita il vincolo ad un singolo fornitore. A differenza delle implementazioni tradizionali WeSQL sostituisce completamente l'archiviazione su disco di MySQL con S3, memorizza infatti integralmente binlog, schemi, metadati del motore di storage e file di dati come oggetti in S3.
WeSQL ed S3
Tra i vantaggi di WeSQL vi è anche la capacità di avviarsi da un'istanza vuota, ciò determina una connessione ad S3 per caricare i dati e iniziare ad operare immediatamente, senza la necessità di configurazioni aggiuntive. Questa caratteristica lo rende ideale per chi cerca una soluzione basata su MySQL che sia facile da gestire, economica e orientata agli sviluppatori. Il tutto con il supporto per ambienti serverless e BYOC (Bring Your Own Cloud).
Per migliorare la scalabilità e le prestazioni WeSQL offre anche WeScale, un proxy MySQL che supporta funzionalità come la suddivisione delle operazioni di lettura e scrittura, la coerenza delle letture dopo le scritture, il bilanciamento del carico e l'Online DDL. Esso gestisce efficacemente le connessioni al database e riduce il carico sulle applicazioni migliorando le performance. Viene poi semplificata la logica applicativa tramite l'instradamento automatico delle query di lettura ai nodi di sola lettura e quelle di scrittura al nodo primario.
Più efficienza nella gestione dei dati
WeSQL-Server esegue il codice MySQL originale con l'aggiunta di un plugin per la replica Raft e un motore di storage chiamato SmartEngine. I nodi WeSQL-Server sono configurati come Data Node, responsabili delle transazioni e del caricamento dei dati su S3 (Logger Node). Essi garantiscono l'integrità dei log anche in caso di guasti e la sicurezza delle informazioni viene mantenuta costantemente.
SmartEngine è un motore basato su LSM (Log-Structured Merge-Tree), ottimizzato per workload con scritture intensive e progettato per sfruttare caratteristiche di S3 come l'appending dei dati. LSM organizza i dati e gli indici, velocizzando le operazioni. Per garantire la durabilità WeSQL utilizza snapshot completi combinati con binlog incrementali. In caso di guasti i dati vengono recuperati tramite l'ultimo snapshot caricato su S3 e i binlog successivi in modo da assicurare un ripristino completo.