14
MagnetoDB Key-Value Store service for OpenStack Mirantis, 2014

Introducing MagnetoDB, a key-value storage sevice for OpenStack

Embed Size (px)

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

Page 1: Introducing MagnetoDB, a key-value storage sevice for OpenStack

MagnetoDB Key-Value Storeservice for OpenStack

Mirantis, 2014

Page 2: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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.

Page 3: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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

Page 4: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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

Page 5: Introducing MagnetoDB, a key-value storage sevice for 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

Page 6: Introducing MagnetoDB, a key-value storage sevice for OpenStack

Overall architecture

Page 7: Introducing MagnetoDB, a key-value storage sevice for OpenStack

Integration with OpenStack services

Page 8: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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

Page 9: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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

Page 10: Introducing MagnetoDB, a key-value storage sevice for OpenStack

MagentoDB use-case: dynamodb-geo

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

Page 11: Introducing MagnetoDB, a key-value storage sevice for OpenStack

MagentoDB use-case: dynamodb-geo

Page 12: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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

Page 13: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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

Page 14: Introducing MagnetoDB, a key-value storage sevice for OpenStack

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