Jump to: navigation, search

Difference between revisions of "MagnetoDB"

 
(65 intermediate revisions by 8 users not shown)
Line 1: Line 1:
=== Status ===
 
  
* Inital draft --[[User:Isviridov|isviridov]] ([[User talk:Isviridov|talk]]) 17:40, 16 October 2013 (UTC)
+
== /!\ Project is not maintained anymore ==
=== Scope ===
 
Document describes the idea and technical concept of DB service for OpenStack like [http://aws.amazon.com/dynamodb Amazon DynamoDB].
 
There is no implementation yet.
 
  
== What is MagnetoDB? ==
+
'''MagnetoDB''' is a key-value store service for OpenStack. It provides horizontally scalable, queryable storage, accessible via REST API. MagnetoDB supports Amazon DynamoDB API as well. MagnetoDB has been designed and developed in order to provide:
MagnetoDB is [http://aws.amazon.com/dynamodb Amazon DynamoDB] [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html API] for OpenStack world.
+
* ''Easy integration'': REST API. Support Amazon DynamoDB API
=== Why it is needed? ===
+
* ''OpenStack interoperability'': integrated with Keystone. Follows OpenStack design tenets, packaging and distribution
To provide hight level database service with DynamoDB API interface
+
* ''Database pluggability'': supports Cassandra,any other databases like MongoDB, HBase could be easily added
=== Why not Trove? ===
+
* ''Horizontal scalability'': MagnetoDB is scalable lineary by amount of data and requests
Initially suggested as [https://blueprints.launchpad.net/trove/+spec/http-accessible-storage blueprint] for Trove  it was rejected as not following the programm mission.
+
* ''High availability'': just one working API node is enough to continue handling requests
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.
 
== Overall architecture ==
 
It two layer horizintally scalable web application
 
[[File:magnetodb_architecture.png|800px|frameless|center]]
 
  
== API ==
+
== Project status ==
The API consists of the following methods
+
Project is not maintained anymore.
  
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html BatchGetItem]
+
== Resources ==
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html BatchWriteItem]
+
* [http://magnetodb.readthedocs.org/ User/Developer Documentation ]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html CreateTable]
+
* [https://github.com/zaletniy/magnetodb-specs Design Documentation ]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html DeleteItem]
+
* [https://github.com/zaletniy/magnetodb MagnetoDB at GitHub]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html DeleteTable]
+
* [https://github.com/AlexanderChudnovets/magnetodb-test-bench Performace test bench]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html DescribeTable]
+
* [https://launchpad.net/magnetodb Launchpad]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html GetItem]
+
* [[MagnetoDB/FAQ|FAQ]]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTables.html ListTables]
+
* [https://webchat.freenode.net/?channels=magnetodb #magnetodb at FreeNode]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html PutItem]
+
* [[MagnetoDB/WeeklyMeetingAgenda|Weekly IRC meetings]]
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html Query]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html Scan]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html UpdateItem]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html UpdateTable]
 
  
== Implementation ==
+
== Core Team ==
 +
* Andrei V. Ostapenko (aostapenko), Mirantis
 +
* Charles Wang (charlesw), Symantec
 +
* Dmitriy Ukhlov (dukhlov), Mirantis
 +
* Ilia Khudoshyn (ikhudoshyn), Mirantis
 +
* [PTL] Ilya Sviridov (isviridov), Mirantis
  
=== Pluggability ===
 
The most suitable data source is [http://cassandra.apache.org/ 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 ===
+
90 days project statisics http://stackalytics.com/report/contribution/magnetodb/90
{| class="wikitable"
+
 
|-
+
== Getting started ==
! Purpose !! OS component
+
[[MagnetoDB/How_To_Contribute|How To Contribute]]
|-
+
 
| Provisioning of web tire || [[Heat]], Mistral (Convection)
+
== Presentations & blogposts ==
|-
+
[https://www.mirantis.com/blog/introducing-magnetodb-nosql-database-service-openstack/ Introducing MagnetoDB]
| Load balancer || [[Neutron/LBaaS|LBaaS, Neutron]]
+
== Sub pages ==
|-
+
 
| Autoscaling of web tier || Heat autoscaling, [[Ceilometer]]
+
{{Special:PrefixIndex/:MagnetoDB/}}
|-
 
| 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
 

Latest revision as of 23:32, 8 August 2016

/!\ Project is not maintained anymore

MagnetoDB is a key-value store service for OpenStack. It provides horizontally scalable, queryable storage, accessible via REST API. MagnetoDB supports Amazon DynamoDB API as well. MagnetoDB has been designed and developed in order to provide:

  • Easy integration: REST API. Support Amazon DynamoDB API
  • OpenStack interoperability: integrated with Keystone. Follows OpenStack design tenets, packaging and distribution
  • Database pluggability: supports Cassandra,any other databases like MongoDB, HBase could be easily added
  • Horizontal scalability: MagnetoDB is scalable lineary by amount of data and requests
  • High availability: just one working API node is enough to continue handling requests

Project status

Project is not maintained anymore.

Resources

Core Team

  • Andrei V. Ostapenko (aostapenko), Mirantis
  • Charles Wang (charlesw), Symantec
  • Dmitriy Ukhlov (dukhlov), Mirantis
  • Ilia Khudoshyn (ikhudoshyn), Mirantis
  • [PTL] Ilya Sviridov (isviridov), Mirantis


90 days project statisics http://stackalytics.com/report/contribution/magnetodb/90

Getting started

How To Contribute

Presentations & blogposts

Introducing MagnetoDB

Sub pages