Comece a usar tabelas virtuais no Apache Cassandra 4.0
O que são e como usá-los.
Entre as muitas adições na recente versão beta do Apache Cassandra 4.0, as tabelas virtuais merecem alguma atenção.
Nas versões anteriores do Cassandra, os usuários precisavam de acesso ao Java Management Extensions (JMX) para examinar detalhes do Cassandra, como compactações em execução, clientes, métricas e uma variedade de definições de configuração. As mesas virtuais eliminam esses desafios. Cassandra 4.0 beta permite que os usuários consultem esses detalhes e dados como linhas Cassandra Query Language (CQL) de uma tabela de sistema somente leitura.
Veja como funcionava o mecanismo baseado em JMX nas versões anteriores do Cassandra. Imagine que um usuário deseja verificar o status de compactação de um nó específico em um cluster. O usuário primeiro precisa estabelecer uma conexão JMX para executar nodetool compactionstats
no nó. Este requisito apresenta imediatamente ao usuário algumas complicações. O cliente do usuário está configurado para acesso JMX? Os nós e o firewall do Cassandra estão configurados para permitir acesso JMX? As medidas adequadas de segurança e auditoria estão preparadas e implementadas? Estas são apenas algumas das preocupações que os usuários tiveram que enfrentar ao lidar com versões anteriores do Cassandra.
Com o Cassandra 4.0, as tabelas virtuais permitem que os usuários consultem as informações de que precisam, utilizando o driver previamente configurado. Essa mudança remove toda a sobrecarga associada à implementação e manutenção do acesso JMX.
Cassandra 4.0 cria dois novos keyspaces para ajudar os usuários a aproveitar tabelas virtuais: system_views
e system_virtual_schema
. O keyspace system_views
contém todas as informações valiosas que os usuários procuram, armazenadas de forma útil em diversas tabelas. O keyspace system_virtual_schema
, como o nome indica, armazena todas as informações de esquema necessárias para essas tabelas virtuais.
(Ben Bromhead, CC BY-SA 4.0)
É importante entender que o escopo de cada tabela virtual está restrito ao seu nó. Qualquer consulta de tabelas virtuais retornará dados válidos apenas para o nó que atua como seu coordenador, independentemente da consistência. Para simplificar esse requisito, foi adicionado suporte a vários drivers para especificar o nó coordenador nessas consultas (o Python, o DataStax Java e outros drivers agora oferecem esse suporte).
Para ilustrar, examine esta tabela virtual sstable_tasks
. Esta tabela virtual exibe todas as operações em SSTables, incluindo compactações, limpezas, atualizações e muito mais.
(Ben Bromhead, CC BY-SA 4.0)
Se um usuário executasse nodetool compactionstats
em uma versão anterior do Cassandra, esse seria o mesmo tipo de informação que seria exibida. Aqui, a consulta descobre que o nó possui atualmente uma compactação ativa. Ele também exibe seu progresso e seu keyspace e tabela. Graças à tabela virtual, um usuário pode coletar essas informações rapidamente e obter com a mesma eficiência os insights necessários para diagnosticar corretamente a integridade do cluster.
Para ser claro, o Cassandra 4.0 não elimina a necessidade de acesso JMX: JMX ainda é a única opção para consultar algumas métricas. Dito isso, os usuários apreciarão a capacidade de extrair as principais métricas do cluster simplesmente usando CQL. Graças à conveniência proporcionada pelas tabelas virtuais, os usuários poderão reinvestir tempo e recursos anteriormente dedicados às ferramentas JMX no próprio Cassandra. As ferramentas do lado do cliente também devem começar a aproveitar as vantagens oferecidas pelas tabelas virtuais.
Se você estiver interessado na versão beta do Cassandra 4.0 e em seu recurso de tabelas virtuais, experimente.