Il cambiamento verso sistemi di database disaggregati
I sistemi disaggregati migliorano le prestazioni e l'efficienza del database separando le risorse.
Shahram Ghandeharizadeh, Philip A. Bernstein, Dhruba Borthakur, Haoyu Huang, Jai Menon, Sumit Puri
― 6 leggere min
Indice
- La Necessità di Cambiare
- Disaggregazione dell'Hardware
- Quali Risorse Stanno Vendo Separati?
- Come Colleghiamo le Risorse?
- Impatti sulle Prestazioni
- Una Storia di Due Sistemi
- L'Approccio DPU di Fungible
- L'Infrastruttura Disaggregata Componibile di Liqid
- Disaggregazione della Memoria
- Sistemi di Gestione di Database Disaggregati
- Database in Tempo Reale
- I Vantaggi della Disaggregazione
- Direzioni Future
- Conclusione
- Fonte originale
- Link di riferimento
Oggi, le applicazioni hanno bisogno di database rapidi e non troppo costosi da gestire. Dallo shopping online all'analisi dei dati, le attività variano tantissimo. Grazie alla tecnologia cloud, possiamo dividere i grandi database ingombranti in parti più piccole e gestibili. Questa separazione aiuta a combinare meglio software e hardware.
Utilizzando diversi tipi di hardware-come processori, memoria e storage-collegati tramite reti veloci, possiamo ottenere questa separazione. Molti database nel cloud stanno iniziando a usare questo metodo perché consente rapidi aggiustamenti alle risorse hardware. Quando separiamo il calcolo dallo storage, ogni parte può crescere o ridursi da sola, rendendo più semplice per le aziende tenere il passo.
La Necessità di Cambiare
I sistemi di database tradizionali spesso costringono gli utenti a indovinare quante risorse hardware hanno bisogno in anticipo. Invece di chiedere una dimensione specifica del server, immagina di poter semplicemente dichiarare il tuo budget e gli obiettivi di prestazione. Un sistema intelligente potrebbe poi assemblare la migliore configurazione tecnologica per soddisfare le tue esigenze. Se la domanda aumenta o diminuisce, il sistema può aggiustare le sue risorse di conseguenza, approfittando di varie opzioni di storage per bilanciare costo e prestazioni.
Disaggregazione dell'Hardware
Tradizionalmente, tutte le risorse hardware-storage, memoria e processori-vivono in un'unica scatola, chiamata server. Il problema con questo setup? È come cercare di infilare tutto il tuo guardaroba in una valigia piccola. Se finisci lo spazio, devi comprare una valigia più grande o sostituire completamente quella attuale.
Separando queste risorse, le aziende possono usarle in modo più efficace. Quando pensiamo alla separazione dell'hardware, dovremmo considerare tre domande principali:
- Quali risorse separiamo?
- Quale metodo di connessione utilizziamo per quelle risorse?
- Come influisce questa separazione sulle prestazioni?
Quali Risorse Stanno Vendo Separati?
Lo storage è già stato separato da tempo con opzioni come Network Attached Storage (NAS) e Storage Area Networks (SAN). Tuttavia, separare CPU e memoria è una tendenza più recente. Nuovi metodi per separare le GPU (processori grafici usati per compiti intensivi) stanno emergendo, e la separazione della memoria è in aumento.
Come Colleghiamo le Risorse?
Possiamo collegare lo storage disaggregato attraverso diversi mezzi, come Fiber Channel, Ethernet o InfiniBand. Nuove tecnologie come NVMe over Fabrics aiutano a ottenere anche questo tipo di connessione. L'uso di questi metodi può influenzare l'efficienza operativa del sistema.
Impatti sulle Prestazioni
Mentre separare le risorse hardware porta solitamente a una maggiore efficienza, può anche rallentare un po' le cose. La chiave è trovare un equilibrio. Usare connessioni a breve distanza può fornire prestazioni migliori, ma molti preferiscono la flessibilità delle connessioni più ampie, anche se sono leggermente più lente.
Una Storia di Due Sistemi
Immaginiamo un database tradizionale e monolitico contro il nostro brillante sistema disaggregato. Nel nostro sistema monolitico, se hai bisogno di più storage o potenza di elaborazione, è come andare a un buffet e avere bisogno di tutto il tavolo, anche se sei lì solo per un'insalata. Con un sistema disaggregato, puoi scegliere solo ciò di cui hai bisogno, un po' come un bar per insalate dove puoi prendere solo i condimenti che vuoi.
DPU di Fungible
L'ApproccioEntra in gioco Fungible-un'azienda che utilizza Data Processing Units (DPU). Pensa alle DPU come i giocatori clou in uno sport di squadra dove ciascuno ha un ruolo. Le DPU gestiscono compiti complessi con cui le normali CPU e GPU potrebbero avere difficoltà. Fungible ha creato due tipi di DPU: una piccola e una potente per creare un sistema di storage disaggregato.
Hanno costruito un sistema di storage disaggregato che funziona proprio come uno tradizionale, senza il disordine. Hanno anche sviluppato un sistema GPU che consente agli utenti di modificare l'uso della potenza di elaborazione per diversi compiti senza bisogno di una GPU dedicata in ogni server.
L'Infrastruttura Disaggregata Componibile di Liqid
Liqid porta l'idea un passo oltre aggiungendo software al mix. Hanno qualcosa chiamato Composable Disaggregated Infrastructure (CDI), che consente agli utenti di configurare dinamicamente il proprio hardware, come un set di Lego dove puoi costruire e ricostruire secondo necessità. Questa flessibilità è particolarmente utile per le organizzazioni che necessitano di setup personalizzati rapidamente.
Disaggregazione della Memoria
Alcune applicazioni, come i giochi online o i sistemi di rilevamento frodi, hanno bisogno di molta memoria per memorizzare dati. Ma la memoria non è infinita. Infatti, molti server hanno molta memoria non utilizzata! Creando un sistema che può gestire la memoria in modo più flessibile, possiamo migliorare le prestazioni per ogni tipo di applicazione.
Immagina un mondo in cui puoi prelevare memoria non utilizzata da server vicini, proprio come prendere in prestito una tazza di zucchero dal tuo vicino. C'è un progetto chiamato Redy che aiuta a gestire questa memoria remota affinché tutto funzioni senza intoppi.
Sistemi di Gestione di Database Disaggregati
AlloyDB è un esempio perfetto di un sistema progettato con questi principi in mente. Utilizza PostgreSQL, un database ben noto, e aggiunge funzionalità che gli consentono di scalare indipendentemente. Immagina AlloyDB come un vestito intelligente e stiloso che può essere adattato ai cambiamenti metereologici.
In AlloyDB, hai un database principale che lavora con più pool di lettura. Questi pool di lettura agiscono come sezioni separate in una biblioteca-aiutando a mantenere le cose organizzate in modo che le persone che recuperano libri (dati) possano farlo senza intralciarsi.
Database in Tempo Reale
I database in tempo reale tracciano le informazioni istantaneamente, rendendoli ideali per applicazioni dove sapere cosa sta succedendo in questo momento è fondamentale, come nel tracciamento del cibo e nei feed dei social media. Tuttavia, questi sistemi devono gestire moltissimi dati senza rallentare-essenzialmente giocolando mentre corri un maratona.
L'architettura Aggregator Leaf Tailer (ALT) è progettata per aiutare con queste sfide. Divide i compiti tra la gestione dei dati in arrivo, l'indicizzazione e l'esecuzione di query complesse. Pensala come un ristorante ben fornito dove ogni sezione si concentra su compiti diversi, assicurando che tutti possano ricevere il loro ordine senza ritardi.
I Vantaggi della Disaggregazione
I sistemi disaggregati offrono un sacco di vantaggi:
- Permettono una migliore allocazione delle risorse, così non sprechi ciò di cui non hai bisogno.
- Possono scalare su e giù in base alla domanda, aiutandoti a risparmiare.
- Migliorano le prestazioni separando compiti che possono diventare un collo di bottiglia per un sistema.
Direzioni Future
Guardando avanti, il mondo della gestione dei database è pronto per nuove idee. Nascono domande su come creare un sistema che si costruisce da solo in base al carico di lavoro, o come verificare che questi sistemi si comportino correttamente. Il panorama sta cambiando, e nuove esigenze plasmeranno ciò che costruiremo in seguito.
Conclusione
In breve, i sistemi di gestione di database disaggregati stanno cambiando il modo in cui pensiamo ai dati. Separando le cose in parti più piccole e gestibili, possiamo ottimizzare le prestazioni ed essere pronti per il futuro. Quindi, la prossima volta che pensi al tuo database, ricorda: non deve essere un monolite. Può essere flessibile come un buon paio di pantaloni elasticizzati!
Titolo: Disaggregated Database Management Systems
Estratto: Modern applications demand high performance and cost efficient database management systems (DBMSs). Their workloads may be diverse, ranging from online transaction processing to analytics and decision support. The cloud infrastructure enables disaggregation of monolithic DBMSs into components that facilitate software-hardware co-design. This is realized using pools of hardware resources, i.e., CPUs, GPUs, memory, FPGA, NVM, etc., connected using high-speed networks. This disaggregation trend is being adopted by cloud DBMSs because hardware re-provisioning can be achieved by simply invoking software APIs. Disaggregated DBMSs separate processing from storage, enabling each to scale elastically and independently. They may disaggregate compute usage based on functionality, e.g., compute needed for writes from compute needed for queries and compute needed for compaction. They may also use disaggregated memory, e.g., for intermediate results in a shuffle or for remote caching. The DBMS monitors the characteristics of a workload and dynamically assembles its components that are most efficient and cost effective for the workload. This paper is a summary of a panel session that discussed the capability, challenges, and opportunities of these emerging DBMSs and disaggregated hardware systems.
Autori: Shahram Ghandeharizadeh, Philip A. Bernstein, Dhruba Borthakur, Haoyu Huang, Jai Menon, Sumit Puri
Ultimo aggiornamento: Nov 2, 2024
Lingua: English
URL di origine: https://arxiv.org/abs/2411.01269
Fonte PDF: https://arxiv.org/pdf/2411.01269
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- https://www.springer.com/gp/computer-science/lncs
- https://www.springer.com/lncs
- https://nvmexpress.org/wp-content/uploads/NVMe_Over_Fabrics.pdf
- https://www.computeexpresslink.org/
- https://www.liqid.com/resources/all
- https://rockset.com
- https://rockset.com/blog/how-rocksets-converged-index-powers-real-time-analytics/
- https://rockset.com/blog/aggregator-leaf-tailer-an-architecture-for-live-analytics-on-event-streams/
- https://engineering.fb.com/2015/03/10/production-engineering/serving-facebook-multifeed-efficiency-performance-gains-through-redesign/
- https://rocksdb.org
- https://engineering.linkedin.com/blog/2016/03/followfeed--linkedin-s-feed-made-faster-and-smarter
- https://lp.fungible.com/hubfs/Assets/Whitepapers/The-Fungible-DPU-A-New-Category-of-Microprocessor.pdf