membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale - - PowerPoint PPT Presentation

membase org the simple fast elastic nosql database
SMART_READER_LITE
LIVE PREVIEW

membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale - - PowerPoint PPT Presentation

membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale Matt Ingenthron OSCON 2010 Membase is an Open Source distributed, key-value database management system optimized for storing data behind interactive web applications. All


slide-1
SLIDE 1

membase.org: The Simple, Fast, Elastic NoSQL Database

NorthScale Matt Ingenthron OSCON 2010

slide-2
SLIDE 2

Membase is an Open Source distributed, key-value database management system optimized for storing data behind interactive web applications.

All aspects of membase are simple, fast and

elastic by design.

slide-3
SLIDE 3

Value

image courtesy http://www.flickr.com/photos/vintagedept/3617706196/
slide-4
SLIDE 4

Simple

Image courtesy http://www.flickr.com/photos/brenda-starr/3509344100/sizes/m/in/photostream/
slide-5
SLIDE 5

Simple

Image courtesy http://www.flickr.com/photos/brenda-starr/3509344100/sizes/m/in/photostream/

(with a replica )

slide-6
SLIDE 6

Fast

Original use case: speed up access to authoritative data as a distributed hashtable Must be at at least as fast as a highly tuned DBMS Designed for modern datacenter substrate

  • Designed for VM and cloud

deployments

  • Designed with modern

systems and flash storage devices in mind

image courtesy http://commons.wikimedia.org/wiki/File:Disassembled_HDD_and_SSD.JPG
slide-7
SLIDE 7

Elastic

Add nodes without losing access to data Maintain consistency when accessing data

  • membase is a CA type

system Scale linearly by just adding more nodes

slide-8
SLIDE 8

Who?

slide-9
SLIDE 9

Fault-tolerant memcached Cluster !"#$%$

!"#$%&''#(!$)#%$*+,!-.$&/$0+,#-

slide-10
SLIDE 10

What is Project Arcus?

Memcached

  • Common protocol across PHP, Java, C applications

Moxi (Memcached proxy) based In-house automatic fault-detection and failover solution Collectd-based monitoring Proxy and cache server administration UI Private cloud service

slide-11
SLIDE 11

Previous Deployments

A few individual memcached installations Problems

  • No fault-tolerance
  • Hardware failures are common (heat, network switch

failure, etc)

  • No automatic scalability
  • To add / remove a memcached server, they need to rebuild

code, distribute, and restart all clients

slide-12
SLIDE 12

Today

Memcached clusters

  • Fault-tolerance transparent to clients
  • Consistent hashing in moxi (memcached proxy)
  • Cache As A Service (CaaS)
  • All major services in NHN started using cache
  • Multitenancy across cache services
slide-13
SLIDE 13

Tomorrow

Membase deployments being developed

  • Persistence (Memory, SSD, HDD)
  • No proxy – no additional network latency
  • Smart-clients
  • Failover at the client built upon libvbucket

Server provision and monitoring UI

slide-14
SLIDE 14

Performance impact

X 16.6

Throughput

X 10

Response Time

Performance

50 % 34 %

DB Load

slide-15
SLIDE 15

NHN work in membase.org

Provided architectural direction Provided real-world use cases and specific requirement Bug fixes, code review Feature contributions

  • spymemcached
  • moxi enhancements

Sponsors membase open-source

slide-16
SLIDE 16

The Guts

Photo Courtesy http://www.flickr.com/photos/pellis/76804760/
slide-17
SLIDE 17

Clustering

Underlying cluster functionality based on erlang OTP Have a custom, vector clock based way of storing and propagating...

  • Cluster topology
  • vBucket mapping

Collect statistics from many nodes of the cluster

  • Identify hot keys,

resource utilization

slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22

vBuckets

Hash keys to vbuckets not to servers Shared, clusterwide configuration mapping vBuckets to servers

  • Any given vbucket is only enabled

in one location at a given time

  • Replication locations specified as

part of the vBucket mapping moxi and vbucket aware clients receive updated configurations

  • A “not my vbucket” reply is an

indication that the client vbucket map is wrong, needs update See Dustin’s blog for more information

http://dustin.github.com/2010/06/29/ memcached-vbuckets.html

slide-23
SLIDE 23

TAP

A generic, scalable method of streaming mutations from a given server

  • As data operations arrive, they can be sent to arbitrary TAP

receivers Leverages the existing memcached engine interface, and the non- blocking IO interfaces to send data Three modes of operation

!"#$%&'()*+

,-+- ./+-+%"&)

!"#$%&'()*+

,-+- ./+-+%"&)

!"#$%&'()*+

slide-24
SLIDE 24 !"#"$%&$%

'$'()"$ *'$'+)+,$-./.'$'()"$.$!01!$2 '341 !"#"$%&$% &(5+6$7'10%)73%

89: '$'+)+,$-.3;$%)713!" <17,.7);.+3'')!-" '$'+)+,$-.3;$%)713!"

=>1$!7

;3%7.??@??. '$'+)+,$-.3;$%)713!"

'341./.=>1$!7

;3%7.??@?A. '$'+)+,$-.3;$%)713!" BCD8E+3'$7 +>5"7$%.73;3>30F. )!-.&(5+6$7.');

Clients, nodes and other nodes

slide-25
SLIDE 25

Get Involved

Open Source

  • Nearly all Apache 2.0 licensed
  • Some components BSD based, owing to history

Try using it!

  • NorthScale packaged, tested, integrated installs
  • RPM for RHEL/CentOS 5.2 and later
  • .deb for Ubuntu 9.04
  • Let us know what you need
  • Already questions about iterating

Looking for platform porting

  • Have some RedHat/CentOS, Ubuntu covered
  • Could certainly integrate a bit better
  • Especially needed with moxi
slide-26
SLIDE 26

Roadmap

Beta 2: shipped July 21, 2010

  • Feature: disk > memory
  • Feature: standalone moxi
  • Feature: binary protocol
  • Enhanced: Web UI and management

Beta 3, within this quarter

  • Planned: Web UI, analytics and visualization
  • Planned: Multi-tenancy, bucket management rules
  • Planned: more TAP examples

General Availability follows

slide-27
SLIDE 27

Finding us

membase.org http://wiki.membase.org

  • Has some docs, ramping up more docs, examples

http://groups.google.com/group/membase Chat options

  • irc.freenode.net #membase
  • XMPP MUC: membase@membase.org
slide-28
SLIDE 28

Q&A

Matt Ingenthron matt@northscale.com