Jump to: navigation, search

Difference between revisions of "MagnetoDB"

 
(68 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== Scope ==
 
Document describes the idea and technical concept of implementation of [http://aws.amazon.com/dynamodb Amazon DynamoDB] for OpenStack.
 
  
There is no implementation yet.
+
== /!\ Project is not maintained anymore ==
== 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.
 
=== Why it is needed? ===
 
To provide hight level database service with DynamoDB API interface
 
=== Why not 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.
 
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 ==
+
'''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:
The API consists of the following methods
+
* ''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
  
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html BatchGetItem]
+
== Project status ==
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html BatchWriteItem]
+
Project is not maintained anymore.
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html CreateTable]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html DeleteItem]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html DeleteTable]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html DescribeTable]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html GetItem]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTables.html ListTables]
 
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html PutItem]
 
* [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 ==
+
== Resources ==
 +
* [http://magnetodb.readthedocs.org/ User/Developer Documentation ]
 +
* [https://github.com/zaletniy/magnetodb-specs Design Documentation ]
 +
* [https://github.com/zaletniy/magnetodb MagnetoDB at GitHub]
 +
* [https://github.com/AlexanderChudnovets/magnetodb-test-bench Performace test bench]
 +
* [https://launchpad.net/magnetodb Launchpad]
 +
* [[MagnetoDB/FAQ|FAQ]]
 +
* [https://webchat.freenode.net/?channels=magnetodb #magnetodb at FreeNode]
 +
* [[MagnetoDB/WeeklyMeetingAgenda|Weekly IRC meetings]]
  
=== Pluggability ===
+
== Core Team ==
The most suitable data source is [http://cassandra.apache.org/ Cassandra].
+
* Andrei V. Ostapenko (aostapenko), Mirantis
But it is better to make datasource plugguble and give the framework for implementation of interface for any other underlying storage.
+
* Charles Wang (charlesw), Symantec
 +
* Dmitriy Ukhlov (dukhlov), Mirantis
 +
* Ilia Khudoshyn (ikhudoshyn), Mirantis
 +
* [PTL] Ilya Sviridov (isviridov), Mirantis
  
=== OpenStack component reusage ===
+
 
{| class="wikitable"
+
90 days project statisics http://stackalytics.com/report/contribution/magnetodb/90
|-
+
 
! Purpose !! OS component
+
== Getting started ==
|-
+
[[MagnetoDB/How_To_Contribute|How To Contribute]]
| Provisioning of web tire || [[Heat]], Mistral (Convection)
+
 
|-
+
== Presentations & blogposts ==
| Load balancer || [[Neutron/LBaaS|LBaaS, Neutron]]
+
[https://www.mirantis.com/blog/introducing-magnetodb-nosql-database-service-openstack/ Introducing MagnetoDB]
|-
+
== 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