apresentacao cassandra

51
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜ ao Paulo Vitor Mira Fonseca Unifesp - Universidade Federal de S˜ ao Paulo http://www.unifesp.br 19 de outubro de 2011 ICT–UNIFESP — 1/43

Upload: peslpinguim

Post on 25-May-2015

2.293 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Paulo Vitor Mira Fonseca

Unifesp - Universidade Federal de Sao Paulo

http://www.unifesp.br

19 de outubro de 2011

ICT–UNIFESP — 1/43

Page 2: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Sumario I

1 NoSQL

2 Cassandra

3 Passo a Passo Para Instalar Cassandra

4 Hector

5 Projeto

6 Problemas Encontrados

7 Conclusao

ICT–UNIFESP — 2/43

Page 3: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQL

Banco de dados nao-relacionais;

Sem a preocupacao de fornecer garantias ACID (Atomicidade,Consistencia, Isolamento e Durabilidade);

Nao exige esquema de tabela fixa;

Geralmente nao suporta instrucoes e operacoes de juncao SQL.

ICT–UNIFESP — 3/43

Page 4: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLExemplos de Banco NoSQL

CouchDB

Redis

MongoDB

Riak

Neo4j

HBase

Cassandra

ICT–UNIFESP — 4/43

Page 5: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLCouchDB

Banco de dados orientado a documentos

Escrito em Erlang

Protocolo HTTP/REST

Licenca: Apache

Replicacao Bi-direcional com deteccao de conflitos

MVCC (Multiversion concurrency control) - Operacoes de escritanao bloqueiam leituras

Autenticacao nativa

http://couchdb.apache.org/

ICT–UNIFESP — 5/43

Page 6: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLRedis

Banco de dados chave/valor

Escrito em C/C++

Protocolo Telnet-like

Licenca: BSD

Banco de dados em memoria/disco

Possui os tipos conjunto, listas e hashes

Valores podem expirar (como um cache)

Operacoes transacionadas

http://redis.io/

ICT–UNIFESP — 6/43

Page 7: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLMongoDB

Banco de dados orientado a documentos

Escrito em C++

Protocolo Binario (BSON)

Licenca: AGPL (Drivers: Apache)

Replicacao mestre/escravo

As consultas sao expressoes javascript

Executa funcoes arbitrarias javascript do lado do servidor

Journaling

Em sistemas 32 bits e limitado a 2.5Gb

Um banco de dados vazio ocupa 192MB

http://www.mongodb.org/

ICT–UNIFESP — 7/43

Page 8: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLRiak

Banco de dados chave/valor

Escrito em Erlang, C e javascript

Protocolo HTTP/REST e binario

Licenca: Apache

Tolerencia a falhas

Links link walking: Parecido com um banco de dados baseado emgrafos.

Monitoramento SNMP (Licenciado comercial)

http://wiki.basho.com/

ICT–UNIFESP — 8/43

Page 9: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLNeo4j

Banco de dados do tipo grafo.

Escrito em Java

Protocolo HTTP/REST

Licenca: GPL, AGPL (algumas funcionalidades)

Execucao embarcada em aplicacoes Java

Vertices e arestas podem ter metadados

Multiplos algorithms de busca (path-finding)

Otimizado para leituras

Operacoes transacionadas

Execucao de script Groovy

Backup on-line, monitoramento avancado e de alta disponibilidade.

http://neo4j.org/

ICT–UNIFESP — 9/43

Page 10: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

NoSQLHBase

Banco de dados do tipo BigTable

Escrito em Java

Protocolo HTTP/REST e Thrift

Licenca: Apache

Otimizado para consultas em tempo real

Jruby-based (JIRB) shell

Desempenho de acesso parecido com MySQL

http://hbase.apache.org/

ICT–UNIFESP — 10/43

Page 11: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraO que e?

Desenvolvido inicialmente pelo Facebook

Liberado como open source em 2008 para ampliar sua instalacao deMySQL

Repositorio de dados leve feito em Java

Dispensa a sobrecarga de recursos dos bancos de dados relacionaisconvencionais (NoSQL)

Protocolo de acesso: Thrift

Reune a arquitetura do Dynamo, da Amazon e modelo de dadosbaseado no Bigtable, do Google

Atualmente e mantido por desenvolvedores da fundacao Apache ecolaboradores de muitas empresas.

ICT–UNIFESP — 11/43

Page 12: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraQuem usa?

Empresas que usam o banco de dados distribuıdo Cassandra:

Digg

Facebook

Twitter

Reddit

Rackspace

Cloudkick

Cisco

SimpleGeo

Ooyala

OpenX

ICT–UNIFESP — 12/43

Page 13: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraQuem usa?

O maior cluster em producao tem aproximadamente 100TB de dadosrodando em 150 maquinas.

ICT–UNIFESP — 13/43

Page 14: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraClusterizacao

Quando um Cluster e criado, um ponto importante e selecionar oparticionador certo, existem dois:

Random Partitioner (RP): Distribui aleatoriamente os pareschave-valor atraves da rede, resultando em um bom balanceamentode carga. Comparado a OPP, mais nos tem que ser acessado para seobter um numero de chaves.

Order Preserving Partitioner (OPP): Distribui os pares chave-valorde uma forma natural para que as chaves similares nao fiquem longe.A vantagem e que menos nos tem que ser acessado. A desvantageme a distribuicao desigual dos pares chave-valor.

ICT–UNIFESP — 14/43

Page 15: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraCaracterıstica

Descentralizada: Cada no do cluster tem o mesmo papel. Dadossao distribuıdos em todo o cluster (entao cada no contem diferentestipos de dados), como nao ha mestre cada no pode atender qualquerpedido.

ICT–UNIFESP — 15/43

Page 16: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraCaracterıstica

Elasticidade: quando maquinas sao adicionadas o tempo de escritae leitura se comportam de forma linear, evitando inatividade ouinterrupcao.

ICT–UNIFESP — 16/43

Page 17: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraCaracterıstica

Tolerancia a Falhas: Os dados sao automaticamente replicadospara varios nos.Nos falhos podem ser substituıdos sem inatividade do Cluster.

ICT–UNIFESP — 17/43

Page 18: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraHardware

Memoria

Os dados recentemente salvos sao escritos em tabelas na memoria(aka memtables)

Dados antigos sao salvos em disco, mas os mais acessados saomantidos no cache do sistema arquivos (Maquina virtual Java).

Quanto mais memoria melhor.

Em ambientes virtualizados e recomendado no mınimo 4GB.

ICT–UNIFESP — 18/43

Page 19: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraHardware

CPU

Cassandra tem uma arquitetura de alta concorrencia.

Faz bom uso de multiplos nucleos.

Se voce estiver rodando em uma maquina virtual, considere usar umRackspace Cloud Server.

ICT–UNIFESP — 19/43

Page 20: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraHardware

Disco

Ideal ter no mınimo 2 discos.

CommitLogDirectoryDataFileDirectories

Limitacoes do sistema de arquivos:

ext2/ext3 - 2TBXFS - 16TB(32 bit) praticamente ilimitado(64 bit)

ICT–UNIFESP — 20/43

Page 21: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraHardware

Nuvem (Cloud)

A maioria das instalacoes do cassandra e feita em ambientes emnuvem.

Rackspace Cloud Server e Amazon EC2.

ICT–UNIFESP — 21/43

Page 22: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraLinguagens suportadas

Thrift API

Linguagens:

Python (Pycassa, Telephus)Java (Hector, Kundera, Pelops, Cassandrelle).Net (Aquiles)Ruby (Cassandra)PHP (Cassandra PHP Client Library, phpcassa)

ICT–UNIFESP — 22/43

Page 23: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraLimitacoes

Todos os dados para uma unica linha deve caber (no disco) em umaunica maquina no cluster.

Uma coluna de valor (column value) nao pode ser maior que 2GB.

Uma linha pode ter no maximo 2 bilhoes de colunas.

Os campos chaves e os nomes da colunas podem ter no maximo64K bytes.

ICT–UNIFESP — 23/43

Page 24: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraTuning

Manter o diretorio de commit log e dados em diferentes discos.

Parametros da maquina virtual Java:

-XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42-Dcassandra.compaction.priority=1 - Diminui a prioridade dacompactacao.-XX:+UseCompressedOops - Habilita compressao de referencias,reduz overhead em JVMs 64bit.

ICT–UNIFESP — 24/43

Page 25: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraPasso a Passo Para Instalar Cassandra

Pre requisito: e necessario ter instalado uma maquina virtual Java

Baixar no site:http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-cassandra-0.7.6-2-bin.tar.gz

Descompactar este arquivo na pasta /opt

Iniciar o servidor com o seguinte comando: bin/cassandra -f

Ja estamos com o servidor rodando em estancia unica

ICT–UNIFESP — 25/43

Page 26: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraPasso a Passo Para Instalar Cassandra

Pre requisito: e necessario ter instalado uma maquina virtual Java

Baixar no site:http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-cassandra-0.7.6-2-bin.tar.gz

Descompactar este arquivo na pasta /opt

Iniciar o servidor com o seguinte comando: bin/cassandra -f

Ja estamos com o servidor rodando em estancia unica

ICT–UNIFESP — 25/43

Page 27: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraPasso a Passo Para Instalar Cassandra

Pre requisito: e necessario ter instalado uma maquina virtual Java

Baixar no site:http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-cassandra-0.7.6-2-bin.tar.gz

Descompactar este arquivo na pasta /opt

Iniciar o servidor com o seguinte comando: bin/cassandra -f

Ja estamos com o servidor rodando em estancia unica

ICT–UNIFESP — 25/43

Page 28: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraPasso a Passo Para Instalar Cassandra

Pre requisito: e necessario ter instalado uma maquina virtual Java

Baixar no site:http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-cassandra-0.7.6-2-bin.tar.gz

Descompactar este arquivo na pasta /opt

Iniciar o servidor com o seguinte comando: bin/cassandra -f

Ja estamos com o servidor rodando em estancia unica

ICT–UNIFESP — 25/43

Page 29: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraPasso a Passo Para Instalar Cassandra

Pre requisito: e necessario ter instalado uma maquina virtual Java

Baixar no site:http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-cassandra-0.7.6-2-bin.tar.gz

Descompactar este arquivo na pasta /opt

Iniciar o servidor com o seguinte comando: bin/cassandra -f

Ja estamos com o servidor rodando em estancia unica

ICT–UNIFESP — 25/43

Page 30: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Cassandra

DEMONSTRACAO...

ICT–UNIFESP — 26/43

Page 31: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraScript Inicial

create keyspace unifespApresentacao;

use unifespApresentacao;

create column family User with

comparator = UTF8Type and

column_metadata =[

{column_name: first , validation_class:

UTF8Type , index_type: KEYS},

{column_name: last ,

validation_class: UTF8Type},

{column_name: age , validation_class:

UTF8Type , index_type: KEYS }];

ICT–UNIFESP — 27/43

Page 32: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraInsercao

connect localhost /9160;

use unifespApresentacao;

#inserir

set User[’pfonseca ’][’first’] = ’Paulo’;

set User[’pfonseca ’][’last’] = ’Fonseca ’;

set User[’pfonseca ’][’age’] = ’25’;

get User[’pfonseca ’];

ICT–UNIFESP — 28/43

Page 33: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraAtualizacao

connect localhost /9160;

use unifespApresentacao;

#atualizar

set User[’pfonseca ’][’age’] = ’25’;

set User[’pfonseca ’][’first’] = ’Paulo2 ’;

ICT–UNIFESP — 29/43

Page 34: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

CassandraExclusao

connect localhost /9160;

use unifespApresentacao;

#deletar uma coluna

del User[’pfonseca ’][’last’];

#deletar uma linha

del User[’pfonseca ’];

ICT–UNIFESP — 30/43

Page 35: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Hector

Cliente thrift de acesso para a linguagem Java.

Licenca MIT.

Interface orientada a objetos de acesso ao Cassandra.

Suporte a falhas.

Pool de conexao.

Suporte a JMX (conexoes disponıveis, conexoes ociosas, estatısticasde erro, etc.).

ICT–UNIFESP — 31/43

Page 36: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

HectorInsercao

public void insert(final String key ,

final String value) throws Exception {

execute(new Command (){

public Void execute(final Keyspace ks)

throws Exception {

ks.insert(key , createColumnPath(COLUMN_NAME),

bytes(value ));

return null;

}

});

}

ICT–UNIFESP — 32/43

Page 37: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

HectorBusca

public String get(final String key) throws

Exception {

return execute(new Command (){

public String execute(final Keyspace ks)

throws Exception {

try {

return string(ks.getColumn(key ,

createColumnPath(COLUMN_NAME )). getValue ());

} catch (NotFoundException e) {

return null;

}

}

});

}

ICT–UNIFESP — 33/43

Page 38: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

HectorExclusao

/∗ ∗∗ D e l e t e a k e y f rom c a s s a n d r a∗/

public void delete(final String key) throws

Exception {

execute(new Command (){

public Void execute(final Keyspace ks)

throws Exception {

ks.remove(key , createColumnPath(COLUMN_NAME ));

return null;

}

});

}

ICT–UNIFESP — 34/43

Page 39: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Objetivos

Levantar um servidor de persistencia No-SQL;

Integrar com Tomcat;

Servico tem que formar um cluster e os dados sejam armazenadosreplicados;

Se novo servidor e instanciado – deve haver balanco de cargaautomatico na replicacao dos dados;

Salva XML da pesquisa;

Salva uma pesquisa, retorna uma chave;

Recupera uma pesquisa baseada na chave;

Recupera todas as chaves armazenadas.

ICT–UNIFESP — 35/43

Page 40: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Modelo

ICT–UNIFESP — 36/43

Page 41: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

ProjetoConfiguracao para criar cluster em Cassandra

Configurar o arquivo cassandra/conf/cassandra.yaml

Server:-Alterar os campos seeds e listen address para o ip de rede damaquina- Alterar o campo rpc address para 0.0.0.0

ICT–UNIFESP — 37/43

Page 42: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

ProjetoConfiguracao para criar cluster em Cassandra

Configurar o arquivo cassandra/conf/cassandra.yaml

Clientes:- Alterar o campo seeds: para o ip do servidor- Alterar o campo listen address para o ip de rede da maquina- Alterar o campo rpc address para 0.0.0.0

Apos realizar a configuracao basta reiniciar o servidor e os clientespara que o cluster entre em funcionamento.

ICT–UNIFESP — 38/43

Page 43: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Problemas Encontrados

Biblioteca para uso do Thrift -> Solucao: uso do Hector;

Melhoria no uso do Hector;

Colocando o Cassandra como background ele para de responder;

Pouca documentacao sobre o Cassandra.

ICT–UNIFESP — 39/43

Page 44: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Problemas Encontrados

Biblioteca para uso do Thrift -> Solucao: uso do Hector;

Melhoria no uso do Hector;

Colocando o Cassandra como background ele para de responder;

Pouca documentacao sobre o Cassandra.

ICT–UNIFESP — 39/43

Page 45: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Problemas Encontrados

Biblioteca para uso do Thrift -> Solucao: uso do Hector;

Melhoria no uso do Hector;

Colocando o Cassandra como background ele para de responder;

Pouca documentacao sobre o Cassandra.

ICT–UNIFESP — 39/43

Page 46: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Problemas Encontrados

Biblioteca para uso do Thrift -> Solucao: uso do Hector;

Melhoria no uso do Hector;

Colocando o Cassandra como background ele para de responder;

Pouca documentacao sobre o Cassandra.

ICT–UNIFESP — 39/43

Page 47: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Problemas Encontrados

Nenhuma instancia do cluster responde quando um dos clientes naoesta em execucao;

Melhorias no pool de conexao do hector.

ICT–UNIFESP — 40/43

Page 48: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Problemas Encontrados

Nenhuma instancia do cluster responde quando um dos clientes naoesta em execucao;

Melhorias no pool de conexao do hector.

ICT–UNIFESP — 40/43

Page 49: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Conclusao

Banco de dados do tipo NoSQL e um assunto muito amplo e ainda hamuito mais a ser explorado, os topicos abordados nesta apresentacao saouma pequena parte de uma diferente forma de se pensar na construcaode sistemas.

ICT–UNIFESP — 41/43

Page 50: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Duvidas

”No one gets fired for choosing Apache’s stuff.”

ICT–UNIFESP — 42/43

Page 51: Apresentacao Cassandra

NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclusao

Referencias

http://cassandra.apache.org/

http://wiki.apache.org/cassandra/CassandraHardware

http://wiki.apache.org/cassandra/ClientOptions

http://wiki.apache.org/cassandra/CassandraLimitations

http://wiki.apache.org/cassandra/PerformanceTuning

http://github.com/pycassa/pycassa

http://github.com/driftx/Telephus

http://aquiles.codeplex.com/

http://github.com/rantav/hector

http://github.com/fauna/cassandra

http://github.com/s7/scale7-pelops

http://demoiselle.sf.net/component/demoiselle-cassandra/

https://github.com/kallaspriit/Cassandra- PHP-Client-Library/

ICT–UNIFESP — 43/43