Jump to: navigation, search

Difference between revisions of "MagnetoDB"

m (Overall architecture)
 
(62 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 for OpenStack users.
+
* ''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
  
MagnetoDB is a NoSQL schemaless horisontally scalable database, designed to serve any level of request traffic without impacting performance.
+
== Project status ==
It gives to user the storage without any administration, out of the box.
+
Project is not maintained anymore.
  
Just simply create the table and start working with your data. No vm provisioning, database software setup, configuration, patching, monitoring and other administrative routine.
+
== 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]]
  
=== Integration with Trove? ===
+
== Core Team ==
Initially suggested as [https://blueprints.launchpad.net/trove/+spec/http-accessible-storage blueprint] for Trove  it was rejected as not following the programm mission.
+
* Andrei V. Ostapenko (aostapenko), Mirantis
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.
+
* Charles Wang (charlesw), Symantec
 +
* Dmitriy Ukhlov (dukhlov), Mirantis
 +
* Ilia Khudoshyn (ikhudoshyn), Mirantis
 +
* [PTL] Ilya Sviridov (isviridov), Mirantis
  
== Overall architecture ==
 
It is two layer horizintally scalable web application
 
[[File:magnetodb_architecture.png|800px|frameless|center]]
 
  
== API ==
+
90 days project statisics http://stackalytics.com/report/contribution/magnetodb/90
The API consists of the following methods
 
  
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html BatchGetItem]
+
== Getting started ==
* [http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html BatchWriteItem]
+
[[MagnetoDB/How_To_Contribute|How To Contribute]]
* [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 ==
+
== Presentations & blogposts ==
 +
[https://www.mirantis.com/blog/introducing-magnetodb-nosql-database-service-openstack/ Introducing MagnetoDB]
 +
== Sub pages ==
  
=== Pluggability ===
+
{{Special:PrefixIndex/:MagnetoDB/}}
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 ===
 
{| class="wikitable"
 
|-
 
! Purpose !! OS component
 
|-
 
| Provisioning of web tire || [[Heat]], Mistral (Convection)
 
|-
 
| Load balancer || [[Neutron/LBaaS|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
 

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