Inizia a utilizzare le tabelle virtuali in Apache Cassandra 4.0
Cosa sono e come usarli.
Tra le tante aggiunte nella recente versione beta di Apache Cassandra 4.0, le tabelle virtuali meritano una certa attenzione.
Nelle versioni precedenti di Cassandra, gli utenti dovevano accedere a Java Management Extensions (JMX) per esaminare i dettagli di Cassandra come l'esecuzione di compattazioni, client, parametri e una varietà di impostazioni di configurazione. Le tabelle virtuali eliminano queste sfide. Cassandra 4.0 beta consente agli utenti di eseguire query su dettagli e dati come righe CQL (Cassandra Query Language) da una tabella di sistema di sola lettura.
Ecco come funzionava il meccanismo basato su JMX nelle precedenti versioni di Cassandra. Immagina che un utente voglia verificare lo stato di compattazione di un particolare nodo in un cluster. L'utente deve prima stabilire una connessione JMX per eseguire nodetool compactionstats
sul nodo. Questo requisito presenta immediatamente all'utente alcune complicazioni. Il client dell'utente è configurato per l'accesso JMX? I nodi Cassandra e il firewall sono configurati per consentire l'accesso JMX? Sono state predisposte e messe in atto le misure adeguate per la sicurezza e il controllo? Queste sono solo alcune delle preoccupazioni che gli utenti dovevano affrontare quando avevano a che fare con le versioni precedenti di Cassandra.
Con Cassandra 4.0, le tabelle virtuali consentono agli utenti di interrogare le informazioni di cui hanno bisogno utilizzando il driver precedentemente configurato. Questa modifica rimuove tutto il sovraccarico associato all'implementazione e al mantenimento dell'accesso JMX.
Cassandra 4.0 crea due nuovi spazi delle chiavi per aiutare gli utenti a sfruttare le tabelle virtuali: system_views
e system_virtual_schema
. Lo spazio chiave system_views
contiene tutte le informazioni preziose che gli utenti cercano, utilmente archiviate in una serie di tabelle. Lo spazio delle chiavi system_virtual_schema
, come suggerisce il nome, memorizza tutte le informazioni necessarie sullo schema per quelle tabelle virtuali.
(Ben Bromhead, CC BY-SA 4.0)
È importante comprendere che l'ambito di ciascuna tabella virtuale è limitato al relativo nodo. Qualsiasi query di tabelle virtuali restituirà dati validi solo per il nodo che funge da coordinatore, indipendentemente dalla consistenza. Per semplificare questo requisito, è stato aggiunto il supporto a diversi driver per specificare il nodo coordinatore in queste query (Python, DataStax Java e altri driver ora offrono questo supporto).
Per illustrare, esaminare questa tabella virtuale sstable_tasks
. Questa tabella virtuale mostra tutte le operazioni su SSTables, incluse compattazioni, pulizie, aggiornamenti e altro.
(Ben Bromhead, CC BY-SA 4.0)
Se un utente dovesse eseguire nodetool compactionstats
in una versione precedente di Cassandra, questo è lo stesso tipo di informazioni che verrebbero visualizzate. In questo caso, la query rileva che il nodo ha attualmente una compattazione attiva. Mostra anche il suo progresso, il suo spazio chiave e la sua tabella. Grazie alla tabella virtuale, un utente può raccogliere queste informazioni rapidamente e ottenere in modo altrettanto efficiente le informazioni necessarie per diagnosticare correttamente lo stato di salute del cluster.
Per essere chiari, Cassandra 4.0 non elimina la necessità dell'accesso JMX: JMX è ancora l'unica opzione per interrogare alcune metriche. Detto questo, gli utenti apprezzeranno la possibilità di estrarre le metriche chiave del cluster semplicemente utilizzando CQL. Grazie alla comodità offerta dai tavoli virtuali, gli utenti possono essere in grado di reinvestire tempo e risorse precedentemente dedicati agli strumenti JMX in Cassandra stessa. Anche gli strumenti lato client dovrebbero iniziare a sfruttare i vantaggi offerti dalle tabelle virtuali.
Se sei interessato alla versione beta di Cassandra 4.0 e alla sua funzionalità dei tavoli virtuali, provala.