Cassandra est un stockage structuré de clés-valeurs, distribué, acceptant facilement la montée en charge et résistant aux pannes. Initialement développé par Facebook, le projet a été libéré sous licence Apache 2.0 et placé dans les mains de la fondation Apache. Il a depuis connu un succès grandissant : en plus de facebook, twitter, digg, reddit et bien d'autres ont annoncé qu'ils utilisent Cassandra.
Cassandra bénéficie de beaucoup d'activités : la version 0.6 est sortie il y a quelques jours et apporte des fonctionnalités très intéressantes (plus de détails dans la seconde partie de la dépêche). Cassandra participera aussi au Google summer of code sous le chapeau de la fondation Apache. Les nouveautés de la version 0.6
- Prise en charge du map/reduce avec Hadoop et Pig : les tâches hadoop peuvent aller chercher les informations directement depuis Cassandra, et il est possible de coordonner Hadoop et Cassandra pour que le traitement se fasse sur le nœud qui détient les données.
- Cache intégré par élément (integrated row cache) : les utilisateurs de Cassandra utilisaient souvent une couche de cache séparée. Le cache a été maintenant intégré, ce qui va simplifier les architectures.
- Augmentation des performances : un travail conséquent a permis d'améliorer de 30% les performances sur des cas d'utilisation fréquents (par rapport à la version 0.5).
- Amélioration de l'API thrift
- Gestion de l'authentification : pour le moment, cette gestion est encore expérimentale
On en parle également dans les conférences
Johnathan Ellis viendra ainsi parler de Cassandra à la conférence no:sql(eu) la semaine prochaine.
Vous pouvez aussi retrouver les planches de la présentation de Gary Dusbabek (Rackspace).
Aller plus loin
- La page officielle de Cassandra (28 clics)
- L'annonce de la sortie de la version 0.6 (2 clics)
- Les releases notes (2 clics)
- Le passage à Cassandra de Twitter, Digg et Reddit (22 clics)
- Un guide pour se mettre à Cassandra (17 clics)
- La conférence no:sql(eu). (6 clics)
# Fondation Apache et Java
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3.
Cette organisation a commencé avec le serveur web Apache HTTPD. Et on dirait que tous leurs autres projets sont en Java et n'ont rien à voir avec leur projet d'origine.
[^] # Re: Fondation Apache et Java
Posté par Yakulu . Évalué à 5.
Pour une liste détaillée, il faudra se référer à cette page : [http://projects.apache.org/indexes/language.html].
Visiblement, si j'en crois Wikipédia [http://en.wikipedia.org/wiki/Apache_Foundation] En, les projets de la fondation Apache ont en commun :
The Apache projects are characterized by a collaborative, consensus-based development process and an open and pragmatic software license. Each project is managed by a self-selected team of technical experts who are active contributors to the project.[...]
Among the ASF's objectives are to provide legal protection to volunteers working on Apache projects, and to prevent the Apache brand name from being used by other organizations without permission...
[^] # Re: Fondation Apache et Java
Posté par ckyl . Évalué à 8.
La fondation Apache a pour but d'aider au développement de projets open source en fournissant les moyens techniques et légaux (pour faire court). Elle héberge les projets qu'on lui donne (via un passage via l'incubateur pour ne retenir que ceux qui on un publique et une maturation suffisante). Le fait est que sont excellence se trouve dans les projets web & Java et comme les chiens n'attirent pas les chats on lui en a donné beaucoup.
Bref un projet Apache c'est comme un projet GNU: choix du projet, licence imposée, cession de copyright en contrepartie de moyen techniques, logistiques et légaux.
[^] # Re: Fondation Apache et Java
Posté par Mephistopheles . Évalué à 3.
Travaillant moi même sur Cassandra pour un projet personnel, je suis vraiment ravi de l'utilisation de Java dans les projets d'Apache. On peut reprocher beaucoup de choses à Java (pas tant que cela en fait ...) mais l'utilisation de Java dans des tâches aussi crtiques qu'une base de données a bien des avantages : stabilité, résistance aux avaries graves, etc...). Je suis plus rassuré de voir se profiler Cassandra 0.6 en java qu'en C honnêtement.
Après, ce qu'il faut voir ce sont les performances, et pour l'utiliser je peux t'affirmer que les performances sont au rendez-vous et l'insertion, suppression se font dans l'ordre de quelques dizaines microsecondes pour des bases de données de près de 13 Go (décompressé). Si ça intéresse les puristes du sujet, il faut chercher bloom filters pour comprendre (en partie) d'où vient cette rapidité !
# La Scalability
Posté par boubou (site web personnel) . Évalué à 4.
[^] # Re: La Scalability
Posté par lasher . Évalué à 4.
[^] # Re: La Scalability
Posté par netsurfeur . Évalué à 1.
J'ai tendance à choisir en fonction du contexte entre:
* variabilité d'échelle
* variabilité dimensionnelle
* extensibilité
* évolutivité
J'utilise plutôt un des deux premiers pour des documents techniques ou des deux derniers pour des textes plus «grand public» ou «décideur pressé».
[^] # Re: La Scalability
Posté par lasher . Évalué à 3.
Par exemple, si l'échelle considérée est la charge, alors « passer à l'échelle » signifie bien « correctement monter en charge ». Dans le cas de programmes composé de calculs parallèles, passer à l'échelle peut se faire de deux façons :
1/ On augmente la taille du problème à résoudre, et l'algorithme fait que plus il y a de détails (pour une simulation par exemple), plus on peut ajouter des unités de calcul.
2/ On rajoute des unités de calcul, et l'algorithme étant intrinsèquement parallèle, alors le temps de calcul est bel et bien réduit (quasi-)proportionnellement au nombre d'unités de calcul disponibles.
Bref, « passage à l'échelle », c'est bon, mangez-en.
# Cassandra chez twitter
Posté par Bruno Michel (site web personnel) . Évalué à 2.
# Licence Apache 2.0
Posté par enclair . Évalué à 2.
Je pense que c'est faux : je ne vois cette clause nul part dans la licence (v 2.0)
Est-ce que vous confirmez ?
[^] # Re: Licence Apache 2.0
Posté par Bruno Michel (site web personnel) . Évalué à 2.
> 2. You must cause any modified files to carry prominent notices stating that You changed the files;
En gros, l'idée est qu'une personne qui lirait le code puisse savoir ce qui vient de la version originale et ce qui a été modifiée depuis. Par contre, je ne pense pas qu'il y ait besoin de décrire précisément ce qui a été modifié (mais je ne suis pas juriste, ni même très compétent dans ce domaine).
[^] # Re: Licence Apache 2.0
Posté par enclair . Évalué à 3.
N'hésitez pas à la rectifier si c'est faux.
# Cas d'utilisation de Cassandra ?
Posté par ddevito (site web personnel) . Évalué à 2.
Bonjour,
Il m'a été signalé que
(1) Cassandra était plus d'actualité pour manipuler des To et que pour des Go, il valait mieux se tourner vers MySQL Cluster par ex.
(2) Cassandra fonctionnait mieux quand le rapport "lecture/écriture" était de 10, voire même de 100 !
(1) j'ai tendance à penser : qui peut le plus (Cassandra) peut le moins.
(2) Est-ce qu'il faut vraiment un tel ratio de 100 pour que Cassandra soit d'actualité ?
Merci de votre aide.
[^] # Re: Cas d'utilisation de Cassandra ?
Posté par Bruno Michel (site web personnel) . Évalué à 4.
Oui, mais il faut être prêt à accepter certains compromis, notamment le fait qu'appendre une nouvelle façon de structurer ses données peut prendre du temps.
> (2) Est-ce qu'il faut vraiment un tel ratio de 100 pour que Cassandra soit d'actualité ?
Cela peut sembler important, mais cela reste un ratio assez faible pour des applications web. Cassandra s'en sort très bien sur les écritures, donc même un ratio encore plus faible ne va pas l'handicaper.
[^] # Re: Cas d'utilisation de Cassandra ?
Posté par ddevito (site web personnel) . Évalué à 2.
Plus précisément :
* Quid de l'utilisation de Cassandra pour définir un cache de données distribué ?
Imho, Cassandra possède pas mal de fonctionnalités pour définir un tel cache. Le top sera d'avoir un cache associé, coté client.
Est-ce que le "•Cache intégré par élément" dont il est question coté v0.6 est bien un cache associé coté client ?
Est-il possible de définir une politique de synchronisation/raffraichissement pour un tel cache coté client ?
Y a-t-il eu déjà des cas d'utilisation avérés de Cassandra comme cache distribué ?
* Quid de l'utilisation de Cassandra comme grille de données ("data grid") ?
Pareil, il me semble que l'ajout de fonctionnalités dans Cassandra, au fil du temps, va faire de Cassandra une possible grille de données.
Y a-t-il eu déjà des cas d'utilisation avérés de Cassandra comme grille de données ?
Merci
[^] # Re: Cas d'utilisation de Cassandra ?
Posté par Bruno Michel (site web personnel) . Évalué à 2.
[^] # Re: Cas d'utilisation de Cassandra ?
Posté par Mephistopheles . Évalué à 2.
Mais pas de façon "brute" il faut implémenter des database Sweepers et ColumnFamily de support pour ça. Théoriquement je suis convaincu que c'est possible, ça devrait avoir des bonnes performances, mais pas autant qu'un truc que tu codes toi même si tu veux mon avis.
Est-il possible de définir une politique de synchronisation/raffraichissement pour un tel cache coté client
=> Là j'avoue ne pas bien comprendre...
Y a-t-il eu déjà des cas d'utilisation avérés de Cassandra comme cache distribué ?
=> Pas que je sache, mais l'utilisation de Cassandra est assez nouvelle, donc... qui sait !
J'en profite pour faire connaître mon blog qui va être (en partie) dédié à Cassandra. j'ai pas mal galéré au début pour trouver des informations et je vais essayer de résoudre les problèmes que j'ai rencontrés lors de mon apprentissage.
http://victor-kabdebon.blogspot.com/
Vous pouvez y poser des questions sans problème, je ne suis pas expert, mais j'espère pouvoir résoudre certaines questions. (Vous pouvez aussi m'envoyer un mail au besoin).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.