Difference between revisions of "Trove/cassandra-clustering"
(→Impacts) |
(→Justification/Benefits) |
||
(10 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
== Description == | == Description == | ||
− | This spec describes Cassandra clustering development. | + | This spec describes Cassandra clustering feature development. |
See more info about Cassandra itself at http://cassandra.apache.org/ | See more info about Cassandra itself at http://cassandra.apache.org/ | ||
+ | |||
See more info about Cassandra clusters at http://planetcassandra.org/blog/introduction-to-cassandra-clusters/ | See more info about Cassandra clusters at http://planetcassandra.org/blog/introduction-to-cassandra-clusters/ | ||
+ | |||
+ | See more info about cluster deployment at http://pulasthisupun.blogspot.com/2013/12/setting-up-local-3-node-cassandra.html | ||
== Justification/Benefits == | == Justification/Benefits == | ||
− | Cassandra is the easiest to deploy-and-maintain datastore in the NoSQL | + | There are alot overcloud projects that are requesting for NoSQL backend. This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment. |
− | Since Trove provides framework that allows to implement clustering for certain datastores | + | From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore in the NoSQL eco-system. |
− | + | ||
+ | Since Trove provides framework that allows to implement clustering for certain datastores, | ||
+ | it would be great value-add for project to allow deployment of CassandraDB clusters through Trove. | ||
− | See | + | Also, there are several projects, from OpenStack ecosystem, such as Ceilometer and MagnetoDB that may work with Cassandra as well. See |
− | ** http://www.enterprisetech.com/2014/03/20/google-makes-cassandra-nosql-scream-compute-engine/ | + | |
+ | *https://blueprints.launchpad.net/ceilometer/+spec/support-magnetodb | ||
+ | *https://blueprints.launchpad.net/ceilometer/+spec/cassandra-driver | ||
+ | *https://github.com/stackforge/magnetodb/tree/master/magnetodb/storage/driver/cassandra | ||
+ | |||
+ | See more info at http://www.enterprisetech.com/2014/03/20/google-makes-cassandra-nosql-scream-compute-engine/ | ||
== Impacts == | == Impacts == | ||
Line 22: | Line 32: | ||
*Guestagent implementation | *Guestagent implementation | ||
− | + | ||
+ | We need to add another one cluster task for adding node (existing "add shard" task might work but it would be nice to have consistent states for each datastore), for cassandra we need to add: | ||
+ | |||
+ | * "Add node" cluster task | ||
=== Configuration === | === Configuration === | ||
For Cassandra clustering we need to have next options: | For Cassandra clustering we need to have next options: | ||
− | + | *cluster_support - Boolean | |
− | + | *api_strategy - fully qualified class name of aAPI strategy implementation | |
− | + | *taskmanager_strategy - fully qualified class name of a Taskmanager implementation | |
− | + | *guestagent_strategy - fully qualified class name of a Guestagent implementation | |
=== Database === | === Database === |
Latest revision as of 12:34, 15 September 2014
Contents
Cassandra clustering
Description
This spec describes Cassandra clustering feature development.
See more info about Cassandra itself at http://cassandra.apache.org/
See more info about Cassandra clusters at http://planetcassandra.org/blog/introduction-to-cassandra-clusters/
See more info about cluster deployment at http://pulasthisupun.blogspot.com/2013/12/setting-up-local-3-node-cassandra.html
Justification/Benefits
There are alot overcloud projects that are requesting for NoSQL backend. This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment. From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore in the NoSQL eco-system.
Since Trove provides framework that allows to implement clustering for certain datastores, it would be great value-add for project to allow deployment of CassandraDB clusters through Trove.
Also, there are several projects, from OpenStack ecosystem, such as Ceilometer and MagnetoDB that may work with Cassandra as well. See
- https://blueprints.launchpad.net/ceilometer/+spec/support-magnetodb
- https://blueprints.launchpad.net/ceilometer/+spec/cassandra-driver
- https://github.com/stackforge/magnetodb/tree/master/magnetodb/storage/driver/cassandra
See more info at http://www.enterprisetech.com/2014/03/20/google-makes-cassandra-nosql-scream-compute-engine/
Impacts
To implement cassandra clustering we need to add 3 new strategies:
- API strategy implementation
- Taskmanager implementation
- Guestagent implementation
We need to add another one cluster task for adding node (existing "add shard" task might work but it would be nice to have consistent states for each datastore), for cassandra we need to add:
- "Add node" cluster task
Configuration
For Cassandra clustering we need to have next options:
- cluster_support - Boolean
- api_strategy - fully qualified class name of aAPI strategy implementation
- taskmanager_strategy - fully qualified class name of a Taskmanager implementation
- guestagent_strategy - fully qualified class name of a Guestagent implementation
Database
None
Public API
None
CLI interface
None
ReST Part
None
Internal API
None
RPC API description
None
Guest Agent
According to base guestagent strategy we need to add next calls:
- Name:
- add_members
- Type:
- call
- Payload:
- members
- a list of instances to join the ring.
- members