webinar 3.0 beta series - meeting the planet scale challenge with couchbase server 3.0
TRANSCRIPT
Planet Scale with Couchbase Server 3.0
Cihan BiyikogluProduct Management
Couchbase Inc.
Agenda
• Part I – Couchbase Overview Journey so far… Couchbase Product Overview
• Part II – Couchbase Server Scalability Architecture Overview and Basic Operation Core Architectural Tenets for Scalability
• Part III – Planet Scale with Couchbase Server 3.0 Deep Dive : Look at the new capabilities lighting up in 3.0
• Q&A
Part I - Overview
Journey so far…
Couchbase Server v1.8High Scale Key/Value Database
Couchbase Server v2.0Cross Data Center Replication
Map/Reduce Indexing and Flex Data
Couchbase Server v2.1 Improved XDCR and Storage Layer
Couchbase Server v2.2Improved Security & HA/DR
Couchbase Server v2.5Rack/Zone Awareness and Connection Management
Couchbase Mobile 1.0Offline Data Availability & Auto Synchronization
Couchbase Server v3.0Mission Critical Scale & Perf
Simplified AdministrationImproved HA/DR & Security
N1QL Dev PreviewSQL-like Queries
N1QL BetaSQL=like Queries
2010
Couchbase Server v.NextWith N1QLSQL=like Queries
Future
Easy Scalabili
ty
Consistent High
Performance
Always On
24x365
Grow cluster without application changes, without downtime with a single click
Consistent sub-millisecond read and write response times
with consistent high throughput
No downtime for software upgrades, hardware maintenance, etc.
JSONJSONJSON
JSONJSON
PERFORMANCE
Flexible Data Model
JSON document model with no fixed schema.
Couchbase Server – Key Tenets
Couchbase Mobile Overview
Couchbase LiteOn-device, lightweight, native
embedded JSON database
Sync GatewaySynchronize on-device
Couchbase Lite with Couchbase Server in the cloud
Couchbase ServerHigh performance, scalable, always-on JSON database in
the cloud
Part II - Couchbase Server Scalability
COUCHBASE SERVER CLUSTER
Couchbase Server ScalabilityCluster-wide Basic Operation
• Docs distributed evenly across servers
• Each server stores both active and replica docsOnly one server active at a time
• Client library provides app with simple interface to database
• Cluster map provides map to which server doc is onApp never needs to know
• App reads, writes, updates docs
• Multiple app servers can access same document at same time
User Configured Replica Count = 1
READ/WRITE/UPDATE
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc
SERVER 1
ACTIVE
Doc 4
Doc 7
Doc
Doc
Doc
SERVER 2
Doc 8
ACTIVE
Doc 1
Doc 2
Doc
Doc
Doc
REPLICA
Doc 4
Doc 1
Doc 8
Doc
Doc
Doc
REPLICA
Doc 6
Doc 3
Doc 2
Doc
Doc
Doc
REPLICA
Doc 7
Doc 9
Doc 5
Doc
Doc
Doc
SERVER 3
Doc 6
APP SERVER 1
COUCHBASE Client Library
CLUSTER MAP
COUCHBASE Client Library
CLUSTER MAP
APP SERVER 2
Doc 9
Couchbase Server ScalabilityAdd Nodes to Cluster
• Two servers addedOne-click operation
• Docs automatically rebalanced across clusterEven distribution of docsMinimum doc movement
• Cluster map updated
• App database calls now distributed over larger number of servers
REPLICA
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc 4
Doc 1
Doc
Doc
SERVER 1
REPLICA
ACTIVE
Doc 4
Doc 7
Doc
Doc
Doc 6
Doc 3
Doc
Doc
SERVER 2
REPLICA
ACTIVE
Doc 1
Doc 2
Doc
Doc
Doc 7
Doc 9
Doc
Doc
SERVER 3 SERVER 4 SERVER 5
REPLICA
ACTIVE
REPLICA
ACTIVE
Doc
Doc 8 Doc
Doc 9 Doc
Doc 2 Doc
Doc 8 Doc
Doc 5 Doc
Doc 6
READ/WRITE/UPDATE READ/WRITE/UPDATE
APP SERVER 1
COUCHBASE Client Library
CLUSTER MAP
COUCHBASE Client Library
CLUSTER MAP
APP SERVER 2
COUCHBASE SERVER CLUSTER
User Configured Replica Count = 1
• Uniform Load Distribution with Auto-Sharding
• High Throughput with Efficient Connection Management and Fine Grained Locking
• Sub-millisecond response times with Built-in Cache powered by Memcached
• Easy Scalability & Capacity Management with Online Elasticity and Single Node Type
• Flexible Global Deployments with XDCR
Couchbase Server ScalabilityCore Architecture Tenets
Part III - Planet Scale withCouchbase Server v3.0
Disclaimer: Couchbase Server v3.0 is still in development. The generally available version of Couchbase Server at release of v3.0 may have differences with what’s presented here.
12
DEVELOPEREMPOWERMEN
T
MISSIONCRITICALSCALE
ULTRAHIGHAVAILABILITY
SECURECOMMUNICATI
ON
SIMPLIFIEDADMINISTRATI
ON
• FullyIntegratedJSONProgrammability
• NativeAsyncandReactiveProgrammability
• NewIntegrationwithPopularFrameworks
• N1QLPreviewSupportinSDKs
• OptimizedMassiveDatabaseswithTunableMemory
• Auto-TuningThreadPoolforExtremeIOThroughput
• FasterViewConsistency
• LowLatency,In-MemoryXDCR
• NewIncrementalBackupoption
• OptimizedDisasterRecoverywithRestoreoptions
• EncryptionforDataAccess
• EncryptionforAdministrativeAccess
• XDCRPauseandResume
• Faster,ResilientRebalance
• DeltaNodeRecovery
• ImprovedResourceGovernance
• GracefulFailover
What’s new in Couchbase Server v3.0
13
DEVELOPEREMPOWERMEN
T
MISSIONCRITICALSCALE
ULTRAHIGHAVAILABILITY
SECURECOMMUNICATI
ON
SIMPLIFIEDADMINISTRATI
ON
• FullyIntegratedJSONProgrammability
• NativeAsyncandReactiveProgrammability
• NewIntegrationwithPopularFrameworks
• N1QLPreviewSupportinSDKs
• OptimizedMassiveDatabaseswithTunableMemory
• Auto-TuningThreadPoolforExtremeIOThroughput
• FasterViewConsistency
• LowLatency,In-MemoryXDCR
• NewIncrementalBackupoption
• OptimizedDisasterRecoverywithRestoreoptions
• EncryptionforDataAccess
• EncryptionforAdministrativeAccess
• XDCRPauseandResume
• Faster,ResilientRebalance
• DeltaNodeRecovery
• ImprovedResourceGovernance
• GracefulFailover
What’s new in Couchbase Server v3.0
Mission Critical Scale with v3.0
Tunable Memory Optimization for Large Data Size
• Optimized Memory Usage with Metadata Ejection Policy Reduce memory required for Massive Data Footprints Enable efficient management of rarely accessed data set
• Cache only keys and data for the hot working set
• Eject all other keys and values out of memory
Tunable MemoryMetadata In RAM
Note: 50M docs with value size ~0.5KB
3GB0.08GB
3.0 with Metadata Ejection 2.5 with NO Metadata Ejection
Parallel Warm-up Warm-up Times
• More efficient warm-up with better parallelization on cache warm-up phase Improved warm-up time ~30% over version 2.5
*beta numbers – results with the final product may have different characteristics
Further warm-up time improvements with Tunable memory settings (metadata ejections)
3.0 with Metadata Ejection 3.0 with Value Ejection
Note: 50M docs with value size ~0.5KB
Bucket "full_eviction_30" loaded on node
'[email protected]' in 10 seconds.Bucket "value_eviction_30" loaded on node '[email protected]' in 85 seconds
Auto-Tuning Shared Thread Pool
• Shared Thread Pool Shared thread pool across buckets for request processing and IO
operations
• Auto-tuning thread count based on system resources…
• Improved latency across the board: read/write operations, rebalance, node restart with warm-up and more…
Optimized Streaming Replication ProtocolDatabase Change Protocol (DCP)
• DCP High-Performance, Stream-based Streams changes across nodes Serialized based on Sequence Numbers Snapshot-able Restart-able In-memory (for clients that can keep up)
Lower Latency with View Consistency
• More up-to-date views Mutation show up at the indexes
faster
• Change detection based on the new DCP (database change protocol) protocol. No longer require persisting to disk for change detection
Improved stale=false behavior Parts of the View engine is re-written
in C
Hundreds of other improvements…
Cluster-wide Diagnostics Tool
Improved Crash Reporting
Better Serviceability
Improved Monitoring for Warmup
Stats Enhancements
Improved Checkpointing with XDCR
Expended Options with Couchbase-cli Parallelized Warm-up
Database Change Protocol (DCP)
Increased-Connection-LimitsExtended-Documentation
Enhanced Event Logging
Extended XDCR Resiliency
Better failover resiliency with DCP
Enhanced SSD Performance
Streamlined Build
Side by side support for DCP and TAP
Improved Error Reporting for Apps
Built-in OS Tuning for Linux Flavors
… and More
Improved Resume-ability with Intra Cluster Replication
View Performance Improvements
Web.Config & App.Config support with .NET
Unified New App Model with 2.0 SDK
Java SDK 2.0 built on top of RxJava
N1QL Beta Support in the 2.0 SDKs
Faster Warmup time under Metadata Ejection
Access log for monitoring port 8091
CRAM & MD5 Support in .Net SDK
Client Side Log4Net Integration in .Net SDK
New Cluster object for Cluster Operations in SDK 2.0
Replica Read in SDK 2.0 with .Net and PHP
Recap
23
DEVELOPEREMPOWERMEN
T
MISSIONCRITICALSCALE
ULTRAHIGHAVAILABILITY
SECURECOMMUNICATI
ON
SIMPLIFIEDADMINISTRATI
ON
• FullyIntegratedJSONProgrammability
• NativeAsyncandReactiveProgrammability
• NewIntegrationwithPopularFrameworks
• N1QLPreviewSupportinSDKs
• OptimizedMassiveDatabaseswithTunableMemory
• Auto-TuningThreadPoolforExtremeIOThroughput
• FasterViewConsistency
• LowLatency,In-MemoryXDCR
• NewIncrementalBackupoption
• OptimizedDisasterRecoverywithRestoreoptions
• EncryptionforDataAccess
• EncryptionforAdministrativeAccess
• XDCRPauseandResume
• Faster,ResilientRebalance
• DeltaNodeRecovery
• ImprovedResourceGovernance
• GracefulFailover
Focus on Scalability and What’s new in Couchbase Server 3.0 for Large Scale Apps
Mission Critical ScaleCouchbase Server
• Couchbase Server provides the best of breed scalability facilities for high throughput and low latency applications
Uniform Load Distribution with Auto-Sharding High Throughput with Efficient Connection Management and Fine
Grained Locking Sub-millisecond response times with Built-in Cache powered by
Memcached Best of breed Tunable Caching for
• Lowest latency access to all data with aggressive caching of all keys OR
• Efficient caching of hot working set with massive dataset Easy Scalability & Capacity Management with Online Elasticity and Single
Node Type Flexible Global Deployments with XDCR