SlideShare a Scribd company logo
The Very First
2
Thanks!
Tonight
3
• Membase Overview
• Use Cases and Customer Examples
• Zynga and Membase
• Membase Architecture
• Demo!
• Developing with Membase
• A Glimpse into the Future
What is Membase?
Membase is a distributed database
5
Membase Servers
In the data center
Web application server
Application user
On the administrator console
Web application serverWeb application server
Five minutes or less to a working
cluster
• Downloads for Linux and Windows
• Start with a single node
• One button press joins nodes to a cluster
Easy to develop against
• Just SET and GET – no schema required
• Drop it in. 10,000+ existing applications
already “speak membase” (via memcached)
• Practically every language and application
framework is supported, out of the box
Easy to manage
• One-click failover and cluster rebalancing
• Graphical and programmatic interfaces
• Configurable alerting
Membase is Simple, Fast, Elastic
6
Membase is Simple, Fast, Elastic
7
Predictable
• “Never keep an application waiting”
• Quasi-deterministic latency and throughput
Low latency
• Built-in Memcached technology
High throughput
• Multi-threaded
• Low lock contention
• Asynchronous wherever possible
• Automatic write de-duplication
Membase is Simple, Fast, Elastic
8
Zero-downtime elasticity
• Spread I/O and data across commodity
servers (or VMs)
• Consistent performance with linear cost
• Dynamic rebalancing of a live cluster
All nodes are created equal
• No special case nodes
• Any node can replace any other node, online
• Clone to grow
Extensible
• Filtered TAP interface provides hook points
for external systems (e.g. full-text search,
backup, warehouse)
• Data bucket – engine API for specialized
container types
Built-in Memcached Caching Layer
9
Memcached
Membase Database
Membase Cache
Membase Database
Memcached Mode Membase Mode
Fact: Membase development team has also contributed over
half of the code to the Memcached project.
Use Cases
Ad targeting
11
events
profiles, campaigns
profiles, real time campaign
statistics
40 milliseconds to come
up with an answer.
2
3
1
Search and Gaming Portal
12
Database
(Zynga slides not available)
Membase Architecture
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
15
Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San Francisco
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
Working set
Data
Mutations
Working set
Data
Mutations
Working set
17
Membase data flow – under the hood
18
SET request arrives at
KEY’s master server
Listener-Sender
Master server for KEY Replica Server 2 for KEYReplica Server 1 for KEY
3 3
1
SET acknowledgement
returned to application2
DiskDisk Disk
RAM
membasestorageengine
DiskDisk Disk
4
ns_server
membase
(memcached + membase engine)
moxi ns_server
vbucketmigrator
TAP
memcached operations
with tap commands
memcached operations
Client
port 11211
memcached operations
moxi + Client
port 11210
memcached operations REST/comet
cluster topology
and vbucket map
Clients, nodes and other nodes
19
Data buckets are secure membase “slices”
20
Membase data servers
In the data center
Web application server
Application user
On the administrator console
Bucket 1
Bucket 2
Aggregate Cluster Memory and Disk Capacity
vBucket mapping
21
Disk > Memory
BucketConfiguration
mem_high_wat
mem_low_wat
memory quota
22
Dataset may have many
items infrequently accessed.
However, memcached has
different behavior (LRU) than
wanted with membase.
Still, traditional (most)
RDBMS implementations are
not 100% correct for us
either. The speed of a miss
is very, very important.
Membase Demo
Key-Value Patterns
Key-Value
25
Key-Value
25
Items have:
Key
Value
Expiration
Flags
CAS (more on this later)
Operations include:
Get/Set
Increment/Decrement
Append/Prepend
Key-Value
25
Key-Value
Image courtesy http://www.flickr.com/photos/brenda-starr/3509344100/sizes/m/in/photostream/
(with a replica )
25
Membase Datatypes
26
Membase Datatypes
• byte[]
– Does your data have
1s and 0s?
26
Membase Datatypes
• byte[]
– Does your data have
1s and 0s?
26
“Any customer can have
a car painted any colour
that he wants so long as
it is black.”
Membase Datatypes
• byte[]
– Does your data have
1s and 0s?
26
“Any customer can have
a car painted any colour
that he wants so long as
it is black.”
• Items do have flags
– Many clients use flags
–Data type options
• Google protobuf
• Thrift
• Avro
Transactions
• Lock == slow me down
• CAS operations
– Optimistic locking
• Very useful with complex
datatypes
– Imagine two clients trying to
update a complex item
• You’re likely using CAS
already... if you use a CPU
27
User 1
Fail!
User 2
Success
Common Use: Sessions
• Web user sessions
– Highly read, less writes in many case
– Protocol advantage of memcached
• Options already for PHP, Ruby and Java
• Application state
– Not necessarily “entity” style things
– May be appropriate for a “cache” pool
28
Common Use (cache): Rate Limiting
• Want to provide API calls
into the system
– Twitter search
– Google search services
• Use the atomic increment
– Set an item with a unique ID
– Upon API request,
increment and check
• HTTP 420: go away and come
back later
29
Your Users
Your App
¡Ouch!
Looking Ahead: NodeCode
Frank Weigel, Membase
Beyond key-value
• Indexing/Range Queries
• Advanced Data Structures
• Sub-object direct manipulation
Validation and In-flight transformation
• Block mutations failing validation
• Enrich or transform objects
Connectors (Integrate easily with other systems)
• Solr
• Hadoop
• MySQL
NodeCode – Motivation
31
NodeCode - What is it?
Method for extending & customizing Membase
Separate code modules
Defined interface to datapath and cluster manager
Notification on events
• Synchronous
• Asynchronous
32
Simple
• Packaged modules for easy install and enable
• Library of “off the shelf” modules
• Module monitoring
• Straight forward development and debugging
Fast
• Low latency/high-throughput
• Per-bucket process isolation
• Don’t break data manager performance/correctness
Elastic
• Automatically migrate and instantiate on rebalance
• Provide support for migration of internal data
• Leverage native Membase engine for internal data storage
NodeCode – Drivers
33
Block-level architecture
34
Java only
– jar format
Must implement minimal module API
• Initial module startup
• Module removal
• Association with bucket
NodeCode library helper functions
• Register synchronous & asynchronous listeners/callbacks
• Register protocol extension/callbacks
• Register rebalance callback
• Register cluster manager event callbacks
• Membase data access
NodeCode 1.0 Plans
35
Membase Intro from Membase Meetup San Francisco
37
Q&A
Attributions
• http://commons.wikimedia.org/wiki/
File:Flag_of_China.png
• http://commons.wikimedia.org/wiki/
File:Flag_of_South_Korea.svg
• http://commons.wikimedia.org/wiki/
File:Flag_of_Japan.svg
38
Membase Intro from Membase Meetup San Francisco

More Related Content

PDF
Membase Introduction
PDF
Couchbase@live person meetup july 22nd
PDF
Node.js and couchbase Full Stack JSON - Munich NoSQL
PDF
Membase East Coast Meetups
PPTX
Membase Meetup - Silicon Valley
PDF
Couchdb + Membase = Couchbase
PPTX
Kafka Connect - debezium
PDF
Column and hadoop
Membase Introduction
Couchbase@live person meetup july 22nd
Node.js and couchbase Full Stack JSON - Munich NoSQL
Membase East Coast Meetups
Membase Meetup - Silicon Valley
Couchdb + Membase = Couchbase
Kafka Connect - debezium
Column and hadoop

What's hot (20)

PPTX
Tech Spark Presentation
PPTX
Conceptos Avanzados 1: Motores de Almacenamiento
PDF
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
PDF
Boston Hadoop Meetup: Presto for the Enterprise
PDF
Security Best Practices for your Postgres Deployment
PDF
Solr cloud the 'search first' nosql database extended deep dive
PDF
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
PPTX
EventHub for kafka ecosystems kafka meetup
PDF
FOSSASIA 2016 - 7 Tips to design web centric high-performance applications
PPTX
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
PPTX
Migrating with Debezium
PPTX
Bootstrap SaaS startup using Open Source Tools
PPTX
Introducing Venice - Strata NYC 2017
PDF
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
PDF
Change data capture with MongoDB and Kafka.
PPTX
Fast Online Access to Massive Offline Data - SECR 2016
PPT
Zing Database – Distributed Key-Value Database
PPTX
Introducing Venice
PPTX
Beyond the Basics 1: Storage Engines
PDF
Understanding Kafka Produce and Fetch api calls for high throughtput applicat...
Tech Spark Presentation
Conceptos Avanzados 1: Motores de Almacenamiento
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
Boston Hadoop Meetup: Presto for the Enterprise
Security Best Practices for your Postgres Deployment
Solr cloud the 'search first' nosql database extended deep dive
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
EventHub for kafka ecosystems kafka meetup
FOSSASIA 2016 - 7 Tips to design web centric high-performance applications
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Migrating with Debezium
Bootstrap SaaS startup using Open Source Tools
Introducing Venice - Strata NYC 2017
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Change data capture with MongoDB and Kafka.
Fast Online Access to Massive Offline Data - SECR 2016
Zing Database – Distributed Key-Value Database
Introducing Venice
Beyond the Basics 1: Storage Engines
Understanding Kafka Produce and Fetch api calls for high throughtput applicat...
Ad

Similar to Membase Intro from Membase Meetup San Francisco (20)

PPTX
Membase Meetup 2010
PPTX
Realtime traffic analyser
PDF
Membase Meetup Chicago - january 2011
PDF
Fixing twitter
PDF
Fixing_Twitter
PDF
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
PDF
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
PDF
Architecture Patterns - Open Discussion
PPTX
Maria DB Galera Cluster for High Availability
PPTX
MariaDB Galera Cluster
KEY
Introduction to memcached
PDF
Hpc lunch and learn
PDF
John adams talk cloudy
PDF
A Closer Look at Apache Kudu
PPT
2010 12 mysql_clusteroverview
PDF
(ATS6-PLAT06) Maximizing AEP Performance
PPTX
Couchbase Connect 2016
PPTX
Symantec SDN Deployment
PDF
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
PDF
Scylla Summit 2016: Compose on Containing the Database
Membase Meetup 2010
Realtime traffic analyser
Membase Meetup Chicago - january 2011
Fixing twitter
Fixing_Twitter
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Architecture Patterns - Open Discussion
Maria DB Galera Cluster for High Availability
MariaDB Galera Cluster
Introduction to memcached
Hpc lunch and learn
John adams talk cloudy
A Closer Look at Apache Kudu
2010 12 mysql_clusteroverview
(ATS6-PLAT06) Maximizing AEP Performance
Couchbase Connect 2016
Symantec SDN Deployment
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
Scylla Summit 2016: Compose on Containing the Database
Ad

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Machine learning based COVID-19 study performance prediction
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
A Presentation on Artificial Intelligence
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
Teaching material agriculture food technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
KodekX | Application Modernization Development
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectral efficient network and resource selection model in 5G networks
Machine learning based COVID-19 study performance prediction
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
A Presentation on Artificial Intelligence
MYSQL Presentation for SQL database connectivity
Chapter 3 Spatial Domain Image Processing.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Teaching material agriculture food technology
Big Data Technologies - Introduction.pptx
KodekX | Application Modernization Development
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
Per capita expenditure prediction using model stacking based on satellite ima...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Membase Intro from Membase Meetup San Francisco

  • 3. Tonight 3 • Membase Overview • Use Cases and Customer Examples • Zynga and Membase • Membase Architecture • Demo! • Developing with Membase • A Glimpse into the Future
  • 5. Membase is a distributed database 5 Membase Servers In the data center Web application server Application user On the administrator console Web application serverWeb application server
  • 6. Five minutes or less to a working cluster • Downloads for Linux and Windows • Start with a single node • One button press joins nodes to a cluster Easy to develop against • Just SET and GET – no schema required • Drop it in. 10,000+ existing applications already “speak membase” (via memcached) • Practically every language and application framework is supported, out of the box Easy to manage • One-click failover and cluster rebalancing • Graphical and programmatic interfaces • Configurable alerting Membase is Simple, Fast, Elastic 6
  • 7. Membase is Simple, Fast, Elastic 7 Predictable • “Never keep an application waiting” • Quasi-deterministic latency and throughput Low latency • Built-in Memcached technology High throughput • Multi-threaded • Low lock contention • Asynchronous wherever possible • Automatic write de-duplication
  • 8. Membase is Simple, Fast, Elastic 8 Zero-downtime elasticity • Spread I/O and data across commodity servers (or VMs) • Consistent performance with linear cost • Dynamic rebalancing of a live cluster All nodes are created equal • No special case nodes • Any node can replace any other node, online • Clone to grow Extensible • Filtered TAP interface provides hook points for external systems (e.g. full-text search, backup, warehouse) • Data bucket – engine API for specialized container types
  • 9. Built-in Memcached Caching Layer 9 Memcached Membase Database Membase Cache Membase Database Memcached Mode Membase Mode Fact: Membase development team has also contributed over half of the code to the Memcached project.
  • 11. Ad targeting 11 events profiles, campaigns profiles, real time campaign statistics 40 milliseconds to come up with an answer. 2 3 1
  • 12. Search and Gaming Portal 12 Database
  • 13. (Zynga slides not available)
  • 15. 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 15
  • 20. 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 Working set Data Mutations Working set Data Mutations Working set 17
  • 21. Membase data flow – under the hood 18 SET request arrives at KEY’s master server Listener-Sender Master server for KEY Replica Server 2 for KEYReplica Server 1 for KEY 3 3 1 SET acknowledgement returned to application2 DiskDisk Disk RAM membasestorageengine DiskDisk Disk 4
  • 22. ns_server membase (memcached + membase engine) moxi ns_server vbucketmigrator TAP memcached operations with tap commands memcached operations Client port 11211 memcached operations moxi + Client port 11210 memcached operations REST/comet cluster topology and vbucket map Clients, nodes and other nodes 19
  • 23. Data buckets are secure membase “slices” 20 Membase data servers In the data center Web application server Application user On the administrator console Bucket 1 Bucket 2 Aggregate Cluster Memory and Disk Capacity
  • 25. Disk > Memory BucketConfiguration mem_high_wat mem_low_wat memory quota 22 Dataset may have many items infrequently accessed. However, memcached has different behavior (LRU) than wanted with membase. Still, traditional (most) RDBMS implementations are not 100% correct for us either. The speed of a miss is very, very important.
  • 29. Key-Value 25 Items have: Key Value Expiration Flags CAS (more on this later) Operations include: Get/Set Increment/Decrement Append/Prepend
  • 33. Membase Datatypes • byte[] – Does your data have 1s and 0s? 26
  • 34. Membase Datatypes • byte[] – Does your data have 1s and 0s? 26 “Any customer can have a car painted any colour that he wants so long as it is black.”
  • 35. Membase Datatypes • byte[] – Does your data have 1s and 0s? 26 “Any customer can have a car painted any colour that he wants so long as it is black.” • Items do have flags – Many clients use flags –Data type options • Google protobuf • Thrift • Avro
  • 36. Transactions • Lock == slow me down • CAS operations – Optimistic locking • Very useful with complex datatypes – Imagine two clients trying to update a complex item • You’re likely using CAS already... if you use a CPU 27 User 1 Fail! User 2 Success
  • 37. Common Use: Sessions • Web user sessions – Highly read, less writes in many case – Protocol advantage of memcached • Options already for PHP, Ruby and Java • Application state – Not necessarily “entity” style things – May be appropriate for a “cache” pool 28
  • 38. Common Use (cache): Rate Limiting • Want to provide API calls into the system – Twitter search – Google search services • Use the atomic increment – Set an item with a unique ID – Upon API request, increment and check • HTTP 420: go away and come back later 29 Your Users Your App ¡Ouch!
  • 39. Looking Ahead: NodeCode Frank Weigel, Membase
  • 40. Beyond key-value • Indexing/Range Queries • Advanced Data Structures • Sub-object direct manipulation Validation and In-flight transformation • Block mutations failing validation • Enrich or transform objects Connectors (Integrate easily with other systems) • Solr • Hadoop • MySQL NodeCode – Motivation 31
  • 41. NodeCode - What is it? Method for extending & customizing Membase Separate code modules Defined interface to datapath and cluster manager Notification on events • Synchronous • Asynchronous 32
  • 42. Simple • Packaged modules for easy install and enable • Library of “off the shelf” modules • Module monitoring • Straight forward development and debugging Fast • Low latency/high-throughput • Per-bucket process isolation • Don’t break data manager performance/correctness Elastic • Automatically migrate and instantiate on rebalance • Provide support for migration of internal data • Leverage native Membase engine for internal data storage NodeCode – Drivers 33
  • 44. Java only – jar format Must implement minimal module API • Initial module startup • Module removal • Association with bucket NodeCode library helper functions • Register synchronous & asynchronous listeners/callbacks • Register protocol extension/callbacks • Register rebalance callback • Register cluster manager event callbacks • Membase data access NodeCode 1.0 Plans 35