SlideShare a Scribd company logo
1 of 46
Download to read offline
USING COUCHBASE FOR SOCIAL
  GAME SCALING AND SPEED

    Steven Mih, Couchbase Inc.
      Bin Cui, Couchbase Inc.




                                 1
Agenda
     • Introduction
     • What is Couchbase Server?
         – Simple, Fast, Elastic
         – Technology Overview (Architecture, data flow, rebalancing)
     • Tribal Crossing Inc: Animal Party
         – Challenges before Couchbase
             • Original Architecture
         – Why Couchbase?
             • Simplicity
             • Performance
             • Flexibility
         – Deploying Couchbase
             •   New Architecture
             •   EC2
             •   Data Model
             •   Accessing data in Couchbase
     • Product Roadmap
     • Q&A
                                                                        2
Couchbase Inc.
• Membase and CouchOne have merged to form Couchbase
  Inc. (headquartered in Silicon Valley)
• Team
  – Brings together the creators and core contributors of Memcached,
    Membase and CouchDB technologies
  – Doubles technical team size, accelerates roadmaps by over a year
• Products
  – Couchbase Server (Formerly Membase)
  – Couchbase Single Server
  – Mobile Couchbase (iPhone and Android)
• Technology
  – Most mature, reliable and widely deployed NoSQL technologies
  – Fully featured, open source document datastore
  – First complete, end-to-end NoSQL database product
                                                                       3
Modern Interactive Web Application Architecture


                                         Application Scales Out
                                         Just add more commodity web servers
     www.facebook.com/animalparty


                        Load Balancer
 Web Servers




                            Relational   Database Scales Up
                                         Get a bigger, more complex server
                            Database




- Expensive and disruptive sharding
- Doesn’t perform at Web Scale
                                                                               4
Couchbase Server is a distributed database



                                Couchbase Web Console



        Application user




       Web application server




       Couchbase Servers




                                                        5
Couchbase data layer scales like application logic tier
Data layer now scales with linear cost and constant performance.




                                                     Application Scales Out
       www.facebook.com/animalparty                  Just add more commodity web servers



                         Load Balancer
     Web Servers




     Couchbase Servers
                                                     Database Scales Out
                                                     Just add more commodity data servers




  Horizontally scalable, schema-less,
  auto-sharding, high-performance at
  Web Scale

              Scaling out flattens the cost and performance curves.                         6
Couchbase Demonstration

• Membase ServerTemplate
  Demo
  – Starting with four database         Application user

    nodes under load
  – Dynamically scaling to
    eight database nodes             Web application server


  – Easy management and
    monitoring
  – Not possible any other             Couchbase Servers


    database technology
                                  In the EC2 or Datacenter



                                                              7
Couchbase Server is Simple, Fast, Elastic

                   • Five minutes or less to a working cluster
                      – Downloads for Windows, Linux and OSX
                      – 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 Couchbase” (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

                                                                     8
Couchbase Server is Simple, Fast, Elastic

                    • Predictable
                       – “Never keep an application waiting”
                       – Quasi-deterministic latency and throughput
                    • Low latency
                       – Built-in Memcached technology
                       – Auto-migration of hot data to lowest latency
                         storage technology (RAM, SSD, Disk)
                       – Selectable write behavior – asynchronous,
                         synchronous (on replication, persistence)
                    • High throughput
                       –   Multi-threaded
                       –   Low lock contention
                       –   Asynchronous wherever possible
                       –   Automatic write de-duplication

                                                                  9
Couchbase Server is Simple, Fast, Elastic

                         • Zero-downtime elasticity
 Couchbase Web Console
                            – 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
                            – Clone to grow
                         • Extensible
                            – Change feeds
                            – Real-time map-reduce
                            – RESTful interface for management



                                                                    10
Proven at Small, and Extra Large Scale




  •   Leading cloud service (PAAS)       •   Social game leader – FarmVille,
      provider                               Mafia Wars, Empires and Allies,
  •   Over 150,000 hosted applications       Café World, FishVille
  •   Couchbase Server serving over      •   Over 230 million monthly users
      6,200 Heroku customers             •   Couchbase Server is the primary
                                             database behind key Zynga
                                             properties
                                                                             11
Customers and Partners

     Customers (partial listing)   Partners




                                              12
Couchbase Server Architecture
        11211            11210
     memcapable 1.0   memcapable 2.0




        moxi




                                                REST management API/Web UI




                                                                                                                                                                                                                  vBucket state and replication manager
                                                                                                                                    Global singleton supervisor


                                                                                                                                                                   Rebalance orchestrator
                                                                                                            Configuration manager
             memcached




                                                                                                                                                                                            Node health monitor
                                                                                          Process monitor
        protocol listener/sender




                                                                             Heartbeat
       Data Manager                                           Cluster Manager
                            engine interface




       Couchbase Storage Engine                http                                on each node                                                                   one per cluster



                                                                                                        Erlang/OTP



                                               HTTP                                      erlang port mapper                                                                 distributed erlang
                                               8091                                                         4369                                                     21100 – 21199                                                                        13
Couchbase Server Architecture
        11211            11210
     memcapable 1.0   memcapable 2.0




        moxi




                                                                                                                                                                                                                  vBucket state and replication manager
                                                REST management API/Web UI




                                                                                                                                    Global singleton supervisor


                                                                                                                                                                   Rebalance orchestrator
                                                                                                            Configuration manager
             memcached




                                                                                                                                                                                            Node health monitor
                                                                                          Process monitor
        protocol listener/sender




                                                                             Heartbeat
                            engine interface




        Couchbase Storage Engine               http                                on each node                                                                   one per cluster



                                                                                                        Erlang/OTP



                                               HTTP                                      erlang port mapper                                                                 distributed erlang
                                               8091                                                         4369                                                     21100 – 21199                                                                        14
Couchbase “write” Data Flow – application view

User action results in the need to
        change the VALUE of KEY
                                     1


                                                        Application updates key’s VALUE,
                                                     2 performs SET operation

                           4                            Couchbase client hashes KEY, identifies
                                                     3 KEY’s master server
               SET request sent over
              network to master server




                           5
    Couchbase replicates KEY-VALUE pair, caches it
          in memory and stores it to disk
                                                                                              15
Couchbase Data Flow – under the hood

                                   SET request arrives at               SET acknowledgement
                                     KEY’s master server
                                                          1       3 returned to application




                                               2                                                         2
    Listener-Sender                                  Listener-Sender                                            Listener-Sender

 RAM*                                              RAM*                                                      RAM*
                      membase storage engine




                                                                                                                                  membase storage engine
                                                                          Couchbase storage engine
                                                                                                     2

 SSD    SSD    SSD                                 SSD    SSD    SSD
                                                                                                             SSD    SSD    SSD



 Disk   Disk   Disk
                                                                                                     4       Disk   Disk   Disk
                                                   Disk   Disk   Disk


Replica Server 1 for KEY                           Master server for KEY                                     Replica Server 2 for KEY
                                                                                                                                                           16
Elasticity - Rebalancing
                                            Node 1              Node 2             Node 3

Before                                    vBucket 1           vBucket 7

• Adding Node 3                           vBucket 2           vBucket 8
                                          vBucket 3           vBucket 9
• Node 3 is in pending state              vBucket 4           vBucket 10
                                                                                  Pending state

• Clients talk to Node 1,2 only           vBucket 5           vBucket 11
                                          vBucket 6           vBucket 12




                                          vBucket 1           vBucket 7
During                                    vBucket 2           vBucket 8
                                          vBucket 3           vBucket 9
• Rebalancing orchestrator recalculates                                            Rebalancing
                                          vBucket 4           vBucket 10
   the vBucket map (including replicas)   vBucket 5           vBucket 11
• Migrate vBuckets to the new server      vBucket 6           vBucket 12

• Finalize migration

                                           vBucket migrator    vBucket migrator




                                                                     Client


After
                                                                                  vBucket 5
• Node 3 is balanced                      vBucket 1            vBucket 7
                                          vBucket 2                               vBucket 6
• Clients are reconfigured to talk to                          vBucket 8
                                          vBucket 3            vBucket 9          vBucket 11
   Node 3
                                          vBucket 4            vBucket 10         vBucket 12
                                                                                                  17
Data buckets are secure Couchbase “slices”



             Application user




           Web application server



  Bucket 1
  Bucket 2
  Aggregate Cluster Memory and Disk Capacity



          Couchbase data servers

           In the data center                  On the administrator console
                                                                              18
Couchbase and Hadoop Integration
• Support large-scale analytics on application data by streaming data
  from Couchbase to Hadoop
   – Real-time integration using Flume
   – Batch integration using Sqoop
• Examples
   – Various game statistics (e.g., monthly / daily / hourly rankings)
   – Analyze game patterns from users to enhance various game metrics


                               Flume
                                                               memcached
                                                    TAP   protocol listener/sender
                               Sqoop
                                                                         engine interface



                                                       Couchbase Storage Engine



                                                                                       19
Agenda
     • Introduction
     • What is Couchbase Server?
         – Simple, Fast, Elastic
         – Technology Overview (Architecture, data flow, rebalancing)
     • Tribal Crossing Inc: Animal Party
         – Challenges before Couchbase
             • Original Architecture
         – Why Couchbase?
             • Simplicity
             • Performance
             • Flexibility
         – Deploying Couchbase
             •   New Architecture
             •   EC2
             •   Data Model
             •   Accessing data in Couchbase
     • Product Roadmap
     • Q&A
                                                                        20
Tribal Crossing: Challenges

Common steps on scaling up database:
●   Tune queries (indexing, explain query)
●   Denormalization
●   Cache data (APC / Memcache)
●   Tune MySQL configuration
●   Replication (read slaves)


Where do we go from here to prepare for the scale of a
successful social game?

                                                         21
Tribal Crossing: Challenges

●   Write-heavy requests
    –   Caching does not help
    –   MySQL / InnoDB limitation (Percona)
●   Need to scale drastically over night
    –   My Polls – 100 to 1m users over a weekend
●   Small team, no dedicated sysadmin
    –   Focus on what we do best – making games
●   Keeping cost down



                                                    22
Tribal Crossing: “Old” Architecture and Options
●   MySQL with master-to-master replication and
    sharding
        – Complex to setup, high administration cost
        – Requires application level changes

●   Cassandra
        – High write, but low read throughput
        – Live cluster reconfiguration and rebalance is quite complicated
        – Eventual consistency gives too much burden to application
          developers
●   MongoDB
        – High read/write, but unpredictable latency
        – Live cluster rebalance for existing nodes only
        – Eventual consistency with slave nodes
                                                                        23
Tribal Crossing: Why Couchbase Server?

●   SPEED, SPEED, SPEED
●   Immediate consistency
●   Interface is dead simple to use
        – We   are already using Memcache
●   Low sysadmin overhead
●   Schema-less data store
●   Used and Proven by big guys like Zynga
●   … and lastly, because Tribal CAN
        – Bigger firms   with legacy code base = hard to adapt
        – Small team =   ability to get on the cutting edge
                                                                 24
Tribal Crossing: New Challenges With Couchbase

●   But, there are some different challenges in
    using Couchbase (currently 1.7) to handle the game
    data:
        – No easy   way to query data
        – No transaction /   rollback
    ➔   Couchbase Server 2.0 resolves them by using
        CouchDB as the underlying database engine
●   Can this work for an online game?
        – Break out   of the old ORM / relational paradigm!
        – We   are not handling bank transactions

                                                              25
Tribal Crossing: Deploying Couchbase in EC2

            Web Server

              Apache                 ●   Basic production
                                         environment setup
         Client-side Moxi
                                     ●   Dev/Stage environment –
     Cluster Mgmt.       Requests
                                         feel free to install
                                         Couchbase on your web
    DNS Entry
                                         server


    Couchbase        …   Couchbase



       Couchbase Cluster

                                                                   26
Tribal Crossing: Deploying Couchbase in EC2

           Web Server
                                    ●   Amazon Linux AMI,
             Apache                     64-bit, EBS backed instance
        Client-side Moxi            ●   Setup swap space
    Cluster Mgmt.       Requests
                                    ●   Install Couchbase’s
                                        Membase Server 1.7
   DNS Entry                        ●   Access web console
                                        http://<hostname>:8091

                                    ●   Start the new cluster with a
                    …
                                        single node
   Couchbase            Couchbase
                                    ●   Add the other nodes to the
      Couchbase Cluster                 cluster and rebalance
                                                                       27
Tribal Crossing: Deploying Couchbase in EC2

            Web Server

              Apache                 Moxi figures out which node in the
                                     cluster holds data for a given key.
         Client-side Moxi
                                     ●   On each web server, install Moxi
     Cluster Mgmt.       Requests
                                         proxy
                                     ●   Start Moxi by pointing it to the
    DNS Entry
                                         DNS entry you created
                                     ●   Web apps connect to Moxi that is
                                         running locally
                                         memcache->addServer(‘localhost’,
                                         11211);
    Couchbase        …   Couchbase



       Couchbase Cluster

                                                                            28
Tribal Crossing: Representing Game Data in Couchbase

Use case - simple farming game:
●   A player can have a variety of plants on their farm.
●   A player can add or remove plants from their farm.
●   A Player can see what plants are on another player's
    farm.




                                                           29
Tribal Crossing: Representing Game Data in Couchbase

Representing Objects
●   Simply treat an object as an associative array
●   Determine the key for an object using the class name
    (or type) of the object and an unique ID


Representing Object Lists
●   Denormalization
●   Save a comma separated list or an array of object IDs


                                                            30
Tribal Crossing: Representing Game Data in Couchbase

Player Object
Key: 'Player1'                Plant Object
Array                         Key: 'Plant201'
(
  [Id] => 1                   Array
  [Name] => Shawn             (
)                               [Id] => 201
                                [Player_Id] => 1
                                [Name] => Starflower
PlayerPlant List              )
Key: 'Player1_PlantList'
Array
(
  [0] => 201
  [1] => 202
  [2] => 204
)

                                                       31
Tribal Crossing: Schema-less Game Data

●   No need to “ALTER TABLE”
●   Add new “fields” all objects at any time
        – Specify default   value for missing fields
        – Increased   development speed
●   Using JSON for data objects though, owing to the
    ability to query on arbitrary fields in Couchbase 2.0




                                                            32
Tribal Crossing: Accessing Game Data in Couchbase

Get all plants belong to a given player
Request:   GET   /player/1/farm

$plant_ids = couchbase->get('Player1_PlantList');

$response = array();

foreach ($plant_ids as $plant_id)
{
  $plant = couchbase->get('Plant' . $plant_id);
  $response[] = $plant;
}

echo json_encode($response);




                                                    33
Tribal Crossing: Modifying Game Data in Couchbase

Give a player a new plant
// Create the new plant
$new_plant = array (
   'id'   => 100,
   'name' => 'Mushroom'
);

$couchbase->set('Plant100', $new_plant);

// Update the player plant list
$plant_ids = $couchbase->get('Player1_PlantList');
$plant_ids[] = $new_plant['id'];

$couchbase->set('Player1_PlantList', $plant_ids);




                                                     34
Tribal Crossing: Concurrency
Concurrency issue can occur when
multiple requests are working with
the same piece of data.
Solution:
● CAS (check-and-set)

        – Client can know if someone else
          has modified the data while you
          are trying to update
        – Implement optimistic
          concurrency control
●   Locking (try/wait cycle)
        – GETL (get with lock + timeout)
          operations
        – Pessimistic concurrency control


                                            35
Tribal Crossing: Data Relationship

●   Record object relationships both ways
        – Example:     Plots and Plants
           ●   Plot object stores id of the plant that it hosts
           ●   Plant object stores id of the plot that it grows on
        – Resolution in    case of mismatch
●   Don't sweat the extra calls to load data in a one-to-
    many relationship
        – Use   multiGet
        – We can still cache aggregated results in a Memcache
          bucket if needed


                                                                     36
Tribal Crossing: Migrating to Couchbase Servers
First migrated large or slow performing tables and
frequently updated fields from MySQL to Couchbase
                                               Web Server
                                              Apache + PHP


                                             Client-side Moxi


                  MySQL
                                                  memcached
                                       TAP   protocol listener/sender
                                                             engine interface

    Reporting             TAP Client
   Applications                           Couchbase Storage Engine

                                                                                37
Tribal Crossing: Deployment




                              38
Tribal Crossing: Deployment




                              39
Tribal Crossing: Conclusion

• Significantly reduced the cost incurred by scaling up
  database servers and managing them.
• Achieved significant improvements in various
  performance metrics (e.g., read, write, latency, etc.)
• Allowed them to focus more on game development and
  optimizing key metrics
• Plan to use real-time MapReduce, querying, and
  indexing abilities provided by the upcoming Elastic
  Couchbase 2.0



                                                       40
Agenda
     • Introduction
     • What is Couchbase Server?
         – Simple, Fast, Elastic
         – Technology Overview (Architecture, data flow, rebalancing)
     • Tribal Crossing Inc: Animal Party
         – Challenges before Couchbase
             • Original Architecture
         – Why Couchbase?
             • Simplicity
             • Performance
             • Flexibility
         – Deploying Couchbase
             •   New Architecture
             •   EC2
             •   Data Model
             •   Accessing data in Couchbase
     • Product Roadmap
     • Q&A
                                                                        41
Product Roadmap: Couchbase Server 2.0

• Mobile to cloud data synchronization
• Cross data center replication
     US West Coast Data Center                     US East Coast Data Center
                  Couchbase                                    Couchbase
                    Server             CouchSync                 Server




             CouchSync                                    CouchSync

         Couchbase Single Server                      Couchbase Single Server

 CouchSync                                    CouchSync               …
                         …


                         …         …                                  …         …

                                                                                    42
Product Roadmap: Couchbase Server 2.0

•   Replace Sqlite-based storage engine with CouchDB
•   Support indexing and querying on values
•   Integrate real-time MapReduce into Couchbase server
•   SDK for Couchbase server
    Membase Server 1.7              CouchDB 1.1                   Couchbase Server 2.0




The world’s leading caching     The most reliable and full-   The fastest, most complete and
 and clustering technology    featured document database       most reliable database on the
                                                                           planet

                                                                                               43
Couchbase Product Download

• Community Edition
   – Open source build
   – Free forum support
• Enterprise Edition
   – Free for non-production use
   – Certified, QA tested version of open source
   – Case tracking and guaranteed SLA for production
     environments


• Community Sponsors in China
   – Interested in being Couchbase Ambassador for Beijing?

                                                             44
Q&A
Steven Mih, Couchbase Inc.
 (steven@couchbase.com)

 Bin Cui, Couchbase Inc.
 (bin@couchbase.com)




                             45
QClub

QClub是由InfoQ中文站定期组织的一个线下技术交流活动,目的是让中高端技术人员
有一 个相对自由的交流思想和交友的平台。每次QClub只关注一个主题,邀请国内外
在该主题领域有研究的技术专家分享其经验,但QClub更注重讨论,因为它认为讨论
才是真理,从讨论中才能激发参与者的智慧和火花。
关注我们:weibo.com/infoqchina
QClub专题页:http://www.infoq.com/cn/qclub/


                                      敏捷
             运维                                       QClub
                          SOA                 桥梁

   InfoQ                           云计算               技术演讲
                          争鸣
              Open Space                      Ruby             畅想
                                技术社区活动
        沟通                        日历
                                                          分享
                   .NET                       Java         社区
         趋势                      交流

                     话题               QClub          架构

More Related Content

What's hot

Design, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWSDesign, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWSAmazon Web Services
 
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRCost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRProvectus
 
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 SeriesAmazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 SeriesDataLeader.io
 
Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013
Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013
Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013Michael Bohlig
 
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Amazon Web Services
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheUnleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheAmazon Web Services
 
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Amazon Web Services
 
Relational Database Services on AWS
Relational Database Services on AWSRelational Database Services on AWS
Relational Database Services on AWSAmazon Web Services
 
Foundations of Amazon EC2 - SRV319 - Chicago AWS Summit
Foundations of Amazon EC2 - SRV319 - Chicago AWS SummitFoundations of Amazon EC2 - SRV319 - Chicago AWS Summit
Foundations of Amazon EC2 - SRV319 - Chicago AWS SummitAmazon Web Services
 
A Step By Step Guide To Put DB2 On Amazon Cloud
A Step By Step Guide To Put DB2 On Amazon CloudA Step By Step Guide To Put DB2 On Amazon Cloud
A Step By Step Guide To Put DB2 On Amazon CloudDeepak Rao
 
AWS Webcast - Data Integration into Amazon Redshift
AWS Webcast - Data Integration into Amazon RedshiftAWS Webcast - Data Integration into Amazon Redshift
AWS Webcast - Data Integration into Amazon RedshiftAmazon Web Services
 
Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...
Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...
Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...Amazon Web Services
 
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS SummitAmazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS SummitAmazon Web Services
 
Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018
Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018
Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018Amazon Web Services
 

What's hot (20)

Amazon DynamoDB and Amazon DAX
Amazon DynamoDB and Amazon DAXAmazon DynamoDB and Amazon DAX
Amazon DynamoDB and Amazon DAX
 
Design, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWSDesign, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWS
 
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRCost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
 
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 SeriesAmazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
 
Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013
Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013
Amazon Redshift - Bay Area CloudSearch Meetup June 19, 2013
 
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
 
MySQL and MariaDB
MySQL and MariaDBMySQL and MariaDB
MySQL and MariaDB
 
Amazon ElastiCache and Redis
Amazon ElastiCache and RedisAmazon ElastiCache and Redis
Amazon ElastiCache and Redis
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheUnleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache
 
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
 
Relational Database Services on AWS
Relational Database Services on AWSRelational Database Services on AWS
Relational Database Services on AWS
 
Foundations of Amazon EC2 - SRV319 - Chicago AWS Summit
Foundations of Amazon EC2 - SRV319 - Chicago AWS SummitFoundations of Amazon EC2 - SRV319 - Chicago AWS Summit
Foundations of Amazon EC2 - SRV319 - Chicago AWS Summit
 
A Step By Step Guide To Put DB2 On Amazon Cloud
A Step By Step Guide To Put DB2 On Amazon CloudA Step By Step Guide To Put DB2 On Amazon Cloud
A Step By Step Guide To Put DB2 On Amazon Cloud
 
AWS Webcast - Data Integration into Amazon Redshift
AWS Webcast - Data Integration into Amazon RedshiftAWS Webcast - Data Integration into Amazon Redshift
AWS Webcast - Data Integration into Amazon Redshift
 
Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...
Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...
Migrating Massive Databases and Data Warehouses to the Cloud - ENT327 - re:In...
 
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS SummitAmazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
 
Amazon DynamoDB and DAX
Amazon DynamoDB and DAXAmazon DynamoDB and DAX
Amazon DynamoDB and DAX
 
Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018
Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018
Microsoft SQL Server Migration Strategies (WIN302) - AWS re:Invent 2018
 
Oracle on AWS
Oracle on AWSOracle on AWS
Oracle on AWS
 

Similar to Couchbase b jmeetup

SDEC2011 Using Couchbase for social game scaling and speed
SDEC2011 Using Couchbase for social game scaling and speedSDEC2011 Using Couchbase for social game scaling and speed
SDEC2011 Using Couchbase for social game scaling and speedKorea Sdec
 
How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...
How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...
How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...DATAVERSITY
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbaseiammutex
 
Membase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase
 
Couchbase Server
Couchbase ServerCouchbase Server
Couchbase Servertempledf
 
Cloud Computing & Scaling Web Apps
Cloud Computing & Scaling Web AppsCloud Computing & Scaling Web Apps
Cloud Computing & Scaling Web AppsMark Slingsby
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStackTesora
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackMatt Lord
 
Membase Introduction
Membase IntroductionMembase Introduction
Membase IntroductionMembase
 
Amazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and HostingAmazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and HostingAcquia
 
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...IndicThreads
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopDataWorks Summit
 
Couchbase presentation
Couchbase presentationCouchbase presentation
Couchbase presentationsharonyb
 
Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011Membase
 
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...Qian Lin
 
Large-scale projects development (scaling LAMP)
Large-scale projects development (scaling LAMP)Large-scale projects development (scaling LAMP)
Large-scale projects development (scaling LAMP)Alexey Rybak
 
Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...
Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...
Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...Michael Elder
 

Similar to Couchbase b jmeetup (20)

SDEC2011 Using Couchbase for social game scaling and speed
SDEC2011 Using Couchbase for social game scaling and speedSDEC2011 Using Couchbase for social game scaling and speed
SDEC2011 Using Couchbase for social game scaling and speed
 
How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...
How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...
How AOL Advertising Uses NoSQL to Make Millions of Smart Targeting Decisions ...
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbase
 
Membase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase Meetup - Silicon Valley
Membase Meetup - Silicon Valley
 
From 0 to syncing
From 0 to syncingFrom 0 to syncing
From 0 to syncing
 
Couchbase Server
Couchbase ServerCouchbase Server
Couchbase Server
 
Understanding Database Options
Understanding Database OptionsUnderstanding Database Options
Understanding Database Options
 
Cloud Computing & Scaling Web Apps
Cloud Computing & Scaling Web AppsCloud Computing & Scaling Web Apps
Cloud Computing & Scaling Web Apps
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
Membase Introduction
Membase IntroductionMembase Introduction
Membase Introduction
 
Amazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and HostingAmazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and Hosting
 
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing Hadoop
 
NoSQL_Night
NoSQL_NightNoSQL_Night
NoSQL_Night
 
Couchbase presentation
Couchbase presentationCouchbase presentation
Couchbase presentation
 
Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011
 
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
 
Large-scale projects development (scaling LAMP)
Large-scale projects development (scaling LAMP)Large-scale projects development (scaling LAMP)
Large-scale projects development (scaling LAMP)
 
Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...
Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...
Streaming Movies brings you Streamlined Applications -- How Adopting Netflix ...
 

More from mysqlops

The simplethebeautiful
The simplethebeautifulThe simplethebeautiful
The simplethebeautifulmysqlops
 
Oracle数据库分析函数详解
Oracle数据库分析函数详解Oracle数据库分析函数详解
Oracle数据库分析函数详解mysqlops
 
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementPercona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementmysqlops
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationmysqlops
 
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB ClusterPercona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB Clustermysqlops
 
Percona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimizationPercona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimizationmysqlops
 
Pldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internalsPldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internalsmysqlops
 
DBA新人的述职报告
DBA新人的述职报告DBA新人的述职报告
DBA新人的述职报告mysqlops
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫mysqlops
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
eBay EDW元数据管理及应用
eBay EDW元数据管理及应用eBay EDW元数据管理及应用
eBay EDW元数据管理及应用mysqlops
 
基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现mysqlops
 
eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析mysqlops
 
对MySQL DBA的一些思考
对MySQL DBA的一些思考对MySQL DBA的一些思考
对MySQL DBA的一些思考mysqlops
 
QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示mysqlops
 
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事mysqlops
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDLmysqlops
 
MySQL数据库生产环境维护
MySQL数据库生产环境维护MySQL数据库生产环境维护
MySQL数据库生产环境维护mysqlops
 

More from mysqlops (20)

The simplethebeautiful
The simplethebeautifulThe simplethebeautiful
The simplethebeautiful
 
Oracle数据库分析函数详解
Oracle数据库分析函数详解Oracle数据库分析函数详解
Oracle数据库分析函数详解
 
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementPercona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-management
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
 
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB ClusterPercona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
 
Percona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimizationPercona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimization
 
Pldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internalsPldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internals
 
DBA新人的述职报告
DBA新人的述职报告DBA新人的述职报告
DBA新人的述职报告
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
eBay EDW元数据管理及应用
eBay EDW元数据管理及应用eBay EDW元数据管理及应用
eBay EDW元数据管理及应用
 
基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现
 
eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析
 
对MySQL DBA的一些思考
对MySQL DBA的一些思考对MySQL DBA的一些思考
对MySQL DBA的一些思考
 
QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示
 
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDL
 
MySQL数据库生产环境维护
MySQL数据库生产环境维护MySQL数据库生产环境维护
MySQL数据库生产环境维护
 
Memcached
MemcachedMemcached
Memcached
 
DevOPS
DevOPSDevOPS
DevOPS
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Couchbase b jmeetup

  • 1. USING COUCHBASE FOR SOCIAL GAME SCALING AND SPEED Steven Mih, Couchbase Inc. Bin Cui, Couchbase Inc. 1
  • 2. Agenda • Introduction • What is Couchbase Server? – Simple, Fast, Elastic – Technology Overview (Architecture, data flow, rebalancing) • Tribal Crossing Inc: Animal Party – Challenges before Couchbase • Original Architecture – Why Couchbase? • Simplicity • Performance • Flexibility – Deploying Couchbase • New Architecture • EC2 • Data Model • Accessing data in Couchbase • Product Roadmap • Q&A 2
  • 3. Couchbase Inc. • Membase and CouchOne have merged to form Couchbase Inc. (headquartered in Silicon Valley) • Team – Brings together the creators and core contributors of Memcached, Membase and CouchDB technologies – Doubles technical team size, accelerates roadmaps by over a year • Products – Couchbase Server (Formerly Membase) – Couchbase Single Server – Mobile Couchbase (iPhone and Android) • Technology – Most mature, reliable and widely deployed NoSQL technologies – Fully featured, open source document datastore – First complete, end-to-end NoSQL database product 3
  • 4. Modern Interactive Web Application Architecture Application Scales Out Just add more commodity web servers www.facebook.com/animalparty Load Balancer Web Servers Relational Database Scales Up Get a bigger, more complex server Database - Expensive and disruptive sharding - Doesn’t perform at Web Scale 4
  • 5. Couchbase Server is a distributed database Couchbase Web Console Application user Web application server Couchbase Servers 5
  • 6. Couchbase data layer scales like application logic tier Data layer now scales with linear cost and constant performance. Application Scales Out www.facebook.com/animalparty Just add more commodity web servers Load Balancer Web Servers Couchbase Servers Database Scales Out Just add more commodity data servers Horizontally scalable, schema-less, auto-sharding, high-performance at Web Scale Scaling out flattens the cost and performance curves. 6
  • 7. Couchbase Demonstration • Membase ServerTemplate Demo – Starting with four database Application user nodes under load – Dynamically scaling to eight database nodes Web application server – Easy management and monitoring – Not possible any other Couchbase Servers database technology In the EC2 or Datacenter 7
  • 8. Couchbase Server is Simple, Fast, Elastic • Five minutes or less to a working cluster – Downloads for Windows, Linux and OSX – 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 Couchbase” (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 8
  • 9. Couchbase Server is Simple, Fast, Elastic • Predictable – “Never keep an application waiting” – Quasi-deterministic latency and throughput • Low latency – Built-in Memcached technology – Auto-migration of hot data to lowest latency storage technology (RAM, SSD, Disk) – Selectable write behavior – asynchronous, synchronous (on replication, persistence) • High throughput – Multi-threaded – Low lock contention – Asynchronous wherever possible – Automatic write de-duplication 9
  • 10. Couchbase Server is Simple, Fast, Elastic • Zero-downtime elasticity Couchbase Web Console – 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 – Clone to grow • Extensible – Change feeds – Real-time map-reduce – RESTful interface for management 10
  • 11. Proven at Small, and Extra Large Scale • Leading cloud service (PAAS) • Social game leader – FarmVille, provider Mafia Wars, Empires and Allies, • Over 150,000 hosted applications Café World, FishVille • Couchbase Server serving over • Over 230 million monthly users 6,200 Heroku customers • Couchbase Server is the primary database behind key Zynga properties 11
  • 12. Customers and Partners Customers (partial listing) Partners 12
  • 13. Couchbase Server Architecture 11211 11210 memcapable 1.0 memcapable 2.0 moxi REST management API/Web UI vBucket state and replication manager Global singleton supervisor Rebalance orchestrator Configuration manager memcached Node health monitor Process monitor protocol listener/sender Heartbeat Data Manager Cluster Manager engine interface Couchbase Storage Engine http on each node one per cluster Erlang/OTP HTTP erlang port mapper distributed erlang 8091 4369 21100 – 21199 13
  • 14. Couchbase Server Architecture 11211 11210 memcapable 1.0 memcapable 2.0 moxi vBucket state and replication manager REST management API/Web UI Global singleton supervisor Rebalance orchestrator Configuration manager memcached Node health monitor Process monitor protocol listener/sender Heartbeat engine interface Couchbase Storage Engine http on each node one per cluster Erlang/OTP HTTP erlang port mapper distributed erlang 8091 4369 21100 – 21199 14
  • 15. Couchbase “write” Data Flow – application view User action results in the need to change the VALUE of KEY 1 Application updates key’s VALUE, 2 performs SET operation 4 Couchbase client hashes KEY, identifies 3 KEY’s master server SET request sent over network to master server 5 Couchbase replicates KEY-VALUE pair, caches it in memory and stores it to disk 15
  • 16. Couchbase Data Flow – under the hood SET request arrives at SET acknowledgement KEY’s master server 1 3 returned to application 2 2 Listener-Sender Listener-Sender Listener-Sender RAM* RAM* RAM* membase storage engine membase storage engine Couchbase storage engine 2 SSD SSD SSD SSD SSD SSD SSD SSD SSD Disk Disk Disk 4 Disk Disk Disk Disk Disk Disk Replica Server 1 for KEY Master server for KEY Replica Server 2 for KEY 16
  • 17. Elasticity - Rebalancing Node 1 Node 2 Node 3 Before vBucket 1 vBucket 7 • Adding Node 3 vBucket 2 vBucket 8 vBucket 3 vBucket 9 • Node 3 is in pending state vBucket 4 vBucket 10 Pending state • Clients talk to Node 1,2 only vBucket 5 vBucket 11 vBucket 6 vBucket 12 vBucket 1 vBucket 7 During vBucket 2 vBucket 8 vBucket 3 vBucket 9 • Rebalancing orchestrator recalculates Rebalancing vBucket 4 vBucket 10 the vBucket map (including replicas) vBucket 5 vBucket 11 • Migrate vBuckets to the new server vBucket 6 vBucket 12 • Finalize migration vBucket migrator vBucket migrator Client After vBucket 5 • Node 3 is balanced vBucket 1 vBucket 7 vBucket 2 vBucket 6 • Clients are reconfigured to talk to vBucket 8 vBucket 3 vBucket 9 vBucket 11 Node 3 vBucket 4 vBucket 10 vBucket 12 17
  • 18. Data buckets are secure Couchbase “slices” Application user Web application server Bucket 1 Bucket 2 Aggregate Cluster Memory and Disk Capacity Couchbase data servers In the data center On the administrator console 18
  • 19. Couchbase and Hadoop Integration • Support large-scale analytics on application data by streaming data from Couchbase to Hadoop – Real-time integration using Flume – Batch integration using Sqoop • Examples – Various game statistics (e.g., monthly / daily / hourly rankings) – Analyze game patterns from users to enhance various game metrics Flume memcached TAP protocol listener/sender Sqoop engine interface Couchbase Storage Engine 19
  • 20. Agenda • Introduction • What is Couchbase Server? – Simple, Fast, Elastic – Technology Overview (Architecture, data flow, rebalancing) • Tribal Crossing Inc: Animal Party – Challenges before Couchbase • Original Architecture – Why Couchbase? • Simplicity • Performance • Flexibility – Deploying Couchbase • New Architecture • EC2 • Data Model • Accessing data in Couchbase • Product Roadmap • Q&A 20
  • 21. Tribal Crossing: Challenges Common steps on scaling up database: ● Tune queries (indexing, explain query) ● Denormalization ● Cache data (APC / Memcache) ● Tune MySQL configuration ● Replication (read slaves) Where do we go from here to prepare for the scale of a successful social game? 21
  • 22. Tribal Crossing: Challenges ● Write-heavy requests – Caching does not help – MySQL / InnoDB limitation (Percona) ● Need to scale drastically over night – My Polls – 100 to 1m users over a weekend ● Small team, no dedicated sysadmin – Focus on what we do best – making games ● Keeping cost down 22
  • 23. Tribal Crossing: “Old” Architecture and Options ● MySQL with master-to-master replication and sharding – Complex to setup, high administration cost – Requires application level changes ● Cassandra – High write, but low read throughput – Live cluster reconfiguration and rebalance is quite complicated – Eventual consistency gives too much burden to application developers ● MongoDB – High read/write, but unpredictable latency – Live cluster rebalance for existing nodes only – Eventual consistency with slave nodes 23
  • 24. Tribal Crossing: Why Couchbase Server? ● SPEED, SPEED, SPEED ● Immediate consistency ● Interface is dead simple to use – We are already using Memcache ● Low sysadmin overhead ● Schema-less data store ● Used and Proven by big guys like Zynga ● … and lastly, because Tribal CAN – Bigger firms with legacy code base = hard to adapt – Small team = ability to get on the cutting edge 24
  • 25. Tribal Crossing: New Challenges With Couchbase ● But, there are some different challenges in using Couchbase (currently 1.7) to handle the game data: – No easy way to query data – No transaction / rollback ➔ Couchbase Server 2.0 resolves them by using CouchDB as the underlying database engine ● Can this work for an online game? – Break out of the old ORM / relational paradigm! – We are not handling bank transactions 25
  • 26. Tribal Crossing: Deploying Couchbase in EC2 Web Server Apache ● Basic production environment setup Client-side Moxi ● Dev/Stage environment – Cluster Mgmt. Requests feel free to install Couchbase on your web DNS Entry server Couchbase … Couchbase Couchbase Cluster 26
  • 27. Tribal Crossing: Deploying Couchbase in EC2 Web Server ● Amazon Linux AMI, Apache 64-bit, EBS backed instance Client-side Moxi ● Setup swap space Cluster Mgmt. Requests ● Install Couchbase’s Membase Server 1.7 DNS Entry ● Access web console http://<hostname>:8091 ● Start the new cluster with a … single node Couchbase Couchbase ● Add the other nodes to the Couchbase Cluster cluster and rebalance 27
  • 28. Tribal Crossing: Deploying Couchbase in EC2 Web Server Apache Moxi figures out which node in the cluster holds data for a given key. Client-side Moxi ● On each web server, install Moxi Cluster Mgmt. Requests proxy ● Start Moxi by pointing it to the DNS Entry DNS entry you created ● Web apps connect to Moxi that is running locally memcache->addServer(‘localhost’, 11211); Couchbase … Couchbase Couchbase Cluster 28
  • 29. Tribal Crossing: Representing Game Data in Couchbase Use case - simple farming game: ● A player can have a variety of plants on their farm. ● A player can add or remove plants from their farm. ● A Player can see what plants are on another player's farm. 29
  • 30. Tribal Crossing: Representing Game Data in Couchbase Representing Objects ● Simply treat an object as an associative array ● Determine the key for an object using the class name (or type) of the object and an unique ID Representing Object Lists ● Denormalization ● Save a comma separated list or an array of object IDs 30
  • 31. Tribal Crossing: Representing Game Data in Couchbase Player Object Key: 'Player1' Plant Object Array Key: 'Plant201' ( [Id] => 1 Array [Name] => Shawn ( ) [Id] => 201 [Player_Id] => 1 [Name] => Starflower PlayerPlant List ) Key: 'Player1_PlantList' Array ( [0] => 201 [1] => 202 [2] => 204 ) 31
  • 32. Tribal Crossing: Schema-less Game Data ● No need to “ALTER TABLE” ● Add new “fields” all objects at any time – Specify default value for missing fields – Increased development speed ● Using JSON for data objects though, owing to the ability to query on arbitrary fields in Couchbase 2.0 32
  • 33. Tribal Crossing: Accessing Game Data in Couchbase Get all plants belong to a given player Request: GET /player/1/farm $plant_ids = couchbase->get('Player1_PlantList'); $response = array(); foreach ($plant_ids as $plant_id) { $plant = couchbase->get('Plant' . $plant_id); $response[] = $plant; } echo json_encode($response); 33
  • 34. Tribal Crossing: Modifying Game Data in Couchbase Give a player a new plant // Create the new plant $new_plant = array ( 'id' => 100, 'name' => 'Mushroom' ); $couchbase->set('Plant100', $new_plant); // Update the player plant list $plant_ids = $couchbase->get('Player1_PlantList'); $plant_ids[] = $new_plant['id']; $couchbase->set('Player1_PlantList', $plant_ids); 34
  • 35. Tribal Crossing: Concurrency Concurrency issue can occur when multiple requests are working with the same piece of data. Solution: ● CAS (check-and-set) – Client can know if someone else has modified the data while you are trying to update – Implement optimistic concurrency control ● Locking (try/wait cycle) – GETL (get with lock + timeout) operations – Pessimistic concurrency control 35
  • 36. Tribal Crossing: Data Relationship ● Record object relationships both ways – Example: Plots and Plants ● Plot object stores id of the plant that it hosts ● Plant object stores id of the plot that it grows on – Resolution in case of mismatch ● Don't sweat the extra calls to load data in a one-to- many relationship – Use multiGet – We can still cache aggregated results in a Memcache bucket if needed 36
  • 37. Tribal Crossing: Migrating to Couchbase Servers First migrated large or slow performing tables and frequently updated fields from MySQL to Couchbase Web Server Apache + PHP Client-side Moxi MySQL memcached TAP protocol listener/sender engine interface Reporting TAP Client Applications Couchbase Storage Engine 37
  • 40. Tribal Crossing: Conclusion • Significantly reduced the cost incurred by scaling up database servers and managing them. • Achieved significant improvements in various performance metrics (e.g., read, write, latency, etc.) • Allowed them to focus more on game development and optimizing key metrics • Plan to use real-time MapReduce, querying, and indexing abilities provided by the upcoming Elastic Couchbase 2.0 40
  • 41. Agenda • Introduction • What is Couchbase Server? – Simple, Fast, Elastic – Technology Overview (Architecture, data flow, rebalancing) • Tribal Crossing Inc: Animal Party – Challenges before Couchbase • Original Architecture – Why Couchbase? • Simplicity • Performance • Flexibility – Deploying Couchbase • New Architecture • EC2 • Data Model • Accessing data in Couchbase • Product Roadmap • Q&A 41
  • 42. Product Roadmap: Couchbase Server 2.0 • Mobile to cloud data synchronization • Cross data center replication US West Coast Data Center US East Coast Data Center Couchbase Couchbase Server CouchSync Server CouchSync CouchSync Couchbase Single Server Couchbase Single Server CouchSync CouchSync … … … … … … 42
  • 43. Product Roadmap: Couchbase Server 2.0 • Replace Sqlite-based storage engine with CouchDB • Support indexing and querying on values • Integrate real-time MapReduce into Couchbase server • SDK for Couchbase server Membase Server 1.7 CouchDB 1.1 Couchbase Server 2.0 The world’s leading caching The most reliable and full- The fastest, most complete and and clustering technology featured document database most reliable database on the planet 43
  • 44. Couchbase Product Download • Community Edition – Open source build – Free forum support • Enterprise Edition – Free for non-production use – Certified, QA tested version of open source – Case tracking and guaranteed SLA for production environments • Community Sponsors in China – Interested in being Couchbase Ambassador for Beijing? 44
  • 45. Q&A Steven Mih, Couchbase Inc. (steven@couchbase.com) Bin Cui, Couchbase Inc. (bin@couchbase.com) 45