Introducing MagnetoDB, a key-value storage sevice for OpenStack

Preview:

DESCRIPTION

Introducing MagnetoDB, NoSQL database as a service for OpenStack. MagnetoDB acts as a key-value store, is tightly integrated with OpenStack, and yet is compatible with the Amazon DynamoDB API, and can be used as a drop-in replacement.

Citation preview

MagnetoDB Key-Value Storeservice for OpenStack

Mirantis, 2014

What is MagnetoDB?

MagnetoDB - OpenSource Amazon DynamoDB API implementation for OpenStack, the key-value database service for storing any amount of data with seamless scalability and predictable performance.

MagnetoDB key features

● Easy-to-integrate REST-like API (AWS SDK, boto clients)

● Schemaless, non-relational table-based model● Put/get/query/scan item operations● Eventual and strong consistency reads● Local Secondary indexes● Batch read/write operations● Designed to handle any amount of data and any level

of request traffic● Seamless throughput and storage scaling● Fault tolerance

MagnetoDB use cases

● High request traffic level applications

● Time series data

● Queries are distributed across the data

● Any other applications

● Migration of workloads between AWS and

OpenStack

Architecture highlights

● Layered architecture

● Horizontally scalable

● Pluggable database backend

● Uses native OpenStack infrastructure

○ OpenStack HEAT for provisioning

○ OpenStack Neutron LoadBalancer

○ Integration with OpenStack Keystone planned

Overall architecture

Integration with OpenStack services

Current status

○ Pilot implemented

○ Open source, Apache 2 license

○ Launchpad homepage: https://launchpad.net/magnetodb

○ Code published on github: https://github.

com/Mirantis/magnetodb

○ Deployable to Vanilla OpenStack

○ Compatible with existing DynamoDB clients

MagnetoDB Pilot Features

● Table CRUD API○ ListTables○ DescribeTable○ CreateTable○ DeleteTable

● Item CRUD API○ PutItem○ UpdateItem○ DeleteItem○ GetItem

● Data querying API○ Query○ Scan

● Error Handling API

MagentoDB use-case: dynamodb-geo

“Geo Library for Amazon DynamoDB allows to easily create and query geospatial data”

MagentoDB use-case: dynamodb-geo

Next steps● General

○ Move the development to OpenStack Infra○ Integration with OpenStack Keystone

● DynamoDB API○ Atomic counters○ Asynchronous table creation○ Atomic conditional write operations○ Batch operations

● Other features○ Management API○ Quota management

Summary

● The pilot implementation is available on GitHub in public

repository

● MagnetoDB is compatible with AWS SDK and boto library

● It is now possible to run applications which use DynamoDB as

a storage on top of OpenStack using MagnetoDB

Links and Resources

○ Wiki: https://wiki.openstack.org/wiki/MagnetoDB

○ Launchpad: https://launchpad.net/magnetodb/

○ Source code: https://github.com/Mirantis/magnetodb

○ IRC: #magnetodb @ FreeNode

○ AWS DynamoDB http://aws.amazon.com/dynamodb/

○ dynamodb-geo https://github.com/awslabs/dynamodb-geo