Jump to: navigation, search

Trove/cassandra-clustering

< Trove
Revision as of 15:55, 4 September 2014 by Denis M. (talk | contribs) (Cassandra clustering)

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/

Justification/Benefits

Cassandra is the easiest to deploy-and-maintain datastore in the NoSQL world.

Since Trove provides framework that allows to implement clustering for certain datastores..

It would be "nice to have" such ability to deploy C* clusters through Trove.

See more info at:

Impacts

To implement cassandra clustering we need to add 3 new strategies:

  • API strategy implementation
  • Taskmanager implementation
  • Guestagent implementation


HOW-TO:

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.