O Cassandra 1.2 foi atualizado recentemente com melhorias como nós virtuais, suporte a atomicidade de batch, melhor desempenho e mais. A seguir são apresentadas algumas das novas funcionalidades:
- Atomicidade nos batches para melhorar a integridade transacional, mesmo se o nó coordenador falhar no meio do batch;
- Nós virtuais, que permitem melhor controle no cluster. Também é possível atualizar nós existentes para nós virtuais (vnodes);
- A versão 3 da CQL, a linguagem de consultas do Cassandra, inclui várias melhorias como o novo protocolo binário nativo, o suporte a tipos de coleções e um keyspace de sistemas;
- Serialização mais rápida, através do uso de formatos binários ao invés de JSON;
- Rastreamento de requisições;
- Várias melhorias de desempenho;
- Tempo mais rápido de inicialização;
- Possibilidade de escolher uma política para determinar o que acontece com um nó em caso de falha no disco;
- Mudanças em schemas por múltiplos usuários de maneira concorrente, incluindo criação e remoção de tabelas.
Os tipos de coleções são especialmente úteis para simplificar os modelos de forma natural, uma vez que o CQL não suporta joins. A atomicidade nos batches pode ser usada para evitar a necessidade de programação para garantir tentativas repetidas (retries) e escritas idempotentes. No entanto, essa característica tem impacto de aproximadamente 30% sobre o desempenho e pode ser desativada se o desempenho for mais importante.
A versão 1.2 agora é projetada para lidar com diversos terabytes de dados por nó, em comparação com o limite de 500 GB de espaço em disco recomendado na versão 1.0.
O Cassandra é uma base de dados NoSQL baseada em colunas, que é open source, distribuída e escrita em Java. Originalmente, o projeto foi desenvolvido pelo Facebook para otimizar a pesquisa na caixa de entrada, e tornou-se um projeto da Fundação Apache em 2009. Veja mais informações sobre o Cassandra na documentação oficial.