Jump to: navigation, search

Difference between revisions of "MagnetoDB"

m (Overall architecture)
m (What is MagnetoDB?)
Line 7: Line 7:
  
 
== What is MagnetoDB? ==
 
== What is MagnetoDB? ==
MagnetoDB is [http://aws.amazon.com/dynamodb Amazon DynamoDB] [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html API] for OpenStack world.
+
MagnetoDB is [http://aws.amazon.com/dynamodb Amazon DynamoDB] [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html API] implementation for OpenStack world.
 +
 
 +
=== What is DynamoDB? ===
 +
DynamoDB is a fast, fully managed NoSQL database service that makes it simple and cost-effective to store and retrieve any amount of data, and serve any level of request traffic.
 +
With DynamoDB, you can offload the administrative burden of operating and scaling a highly available distributed database cluster
 +
 
 +
DynamoDB tables do not have fixed schemas, and each item may have a different number of attributes. Multiple data types add richness to the data model. Local secondary indexes add flexibility to the queries you can perform, without impacting performance. [http://aws.amazon.com/dynamodb/ [1<nowiki>]</nowiki>]
 +
 
 
=== Why it is needed? ===
 
=== Why it is needed? ===
To provide hight level database service with DynamoDB API interface for OpenStack users.
+
In order to provide hight level database service with DynamoDB API interface for OpenStack users.
 
 
MagnetoDB is a NoSQL schemaless horisontally scalable database, designed to serve any level of request traffic without impacting performance.
 
It gives to user the storage without any administration, out of the box.
 
  
 
Just simply create the table and start working with your data. No vm provisioning, database software setup, configuration, patching, monitoring and other administrative routine.
 
Just simply create the table and start working with your data. No vm provisioning, database software setup, configuration, patching, monitoring and other administrative routine.
Line 18: Line 22:
 
=== Integration with Trove? ===
 
=== Integration with Trove? ===
 
Initially suggested as [https://blueprints.launchpad.net/trove/+spec/http-accessible-storage blueprint] for Trove  it was rejected as not following the programm mission.
 
Initially suggested as [https://blueprints.launchpad.net/trove/+spec/http-accessible-storage blueprint] for Trove  it was rejected as not following the programm mission.
MagnetoDB is not one of existing database provisioned by Trove, but storage with HTTP API where Trove is used for provisioning and managing underlaying database.
+
 
 +
MagnetoDB is not one more database, which can be provisioned and managed by Trove. It is one more OpenStack service with own API, keystone based authentication, quota management.
 +
 
 +
However, the underlaying database will be provisioned and managed by Trove, in order to reuse existing Openstack components and avoid duplication of functionality.
  
 
== Overall architecture ==
 
== Overall architecture ==

Revision as of 22:30, 29 October 2013

Status

Scope

Document describes the idea and technical concept of DB service for OpenStack like Amazon DynamoDB. There is no implementation yet.

What is MagnetoDB?

MagnetoDB is Amazon DynamoDB API implementation for OpenStack world.

What is DynamoDB?

DynamoDB is a fast, fully managed NoSQL database service that makes it simple and cost-effective to store and retrieve any amount of data, and serve any level of request traffic. With DynamoDB, you can offload the administrative burden of operating and scaling a highly available distributed database cluster

DynamoDB tables do not have fixed schemas, and each item may have a different number of attributes. Multiple data types add richness to the data model. Local secondary indexes add flexibility to the queries you can perform, without impacting performance. [1]

Why it is needed?

In order to provide hight level database service with DynamoDB API interface for OpenStack users.

Just simply create the table and start working with your data. No vm provisioning, database software setup, configuration, patching, monitoring and other administrative routine.

Integration with Trove?

Initially suggested as blueprint for Trove it was rejected as not following the programm mission.

MagnetoDB is not one more database, which can be provisioned and managed by Trove. It is one more OpenStack service with own API, keystone based authentication, quota management.

However, the underlaying database will be provisioned and managed by Trove, in order to reuse existing Openstack components and avoid duplication of functionality.

Overall architecture

It is two layer horizintally scalable web application

Magnetodb architecture.png

API

The API consists of the following methods

Implementation

Pluggability

The most suitable data source is Cassandra. But it is better to make datasource plugguble and give the framework for implementation of interface for any other underlying storage.

OpenStack component reusage

Purpose OS component
Provisioning of web tire Heat, Mistral (Convection)
Load balancer LBaaS, Neutron
Autoscaling of web tier Heat autoscaling, Ceilometer
Data Source provisioning and management Trove
Monitoring Ceilometer
Authentication Keystone

Autoscaling

  • Web autoscaling is suggested to implement with HEAT autoscaling group resource
  • Datasource scalability based on future Trove autoscaling