Configuring data consistency

Registered by Maksym Iarmak on 2014-04-23

We should add сonfiguring data consistency to MagnetoDB.

Steps to implement:
1. Add the possibility of adding consistency level in the request via our RESTful API.
2. Add transmitting the consistency level value to storage API and after that - to backend (at the moment - in Cassandra)

Blueprint information

Status:
Complete
Approver:
None
Priority:
Low
Drafter:
Maksym Iarmak
Direction:
Needs approval
Assignee:
Maksym Iarmak
Definition:
Obsolete
Series goal:
Accepted for future
Implementation:
Informational Informational
Milestone target:
None
Completed by
Ilya Sviridov on 2014-10-09

Related branches

Sprints

Whiteboard

(miarmak) We should invent read and write consistency levels for magnetodb.
In this document, on the 1-st sheet you can find Cassandra consistency levels:

https://docs.google.com/a/mirantis.com/spreadsheets/d/1C4vNY8wfLwEfn_MzJTL2rXtF6zKxyc8NP2c1TKp_GXw/edit#gid=925569947 (also, you can find it here: http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dml_config_consistency_c.html )

On the 2-nd sheet of this doc, you can find MagnetoDB REST api methods, related to consistency, theirs connection with data read/write and theirs mapping to storage api methods.

So, there are 2 issues for discussion:
1. What consistency levels will be in Magneto?
2. What level will be used by default?

So, I suggest:
1. Use the same consistency levels as in Cassandra (except of EACH_QUORUM, LOCAL_ONE, LOCAL_QUORUM, LOCAL_SERIAL, because it used multiple data center clusters). Maybe when we have more backends or/and multiple data center support, it can be changed.
2. Use QUORUM level by default, because it provides strong consistency.

So, It would be nice, if you share your thoughts and suggestions on this issue.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.