SlideShare uma empresa Scribd logo
1 de 149
Baixar para ler offline
Wi-Fi: Network – Matrix | Password - 11223344
©2015 Couchbase Inc. 2
Today’s Agenda
Registration and Continental Breakfast
§ Labs and Environment Setup
Introduction to NoSQL
§ Why NoSQL?
§ Introduction to Couchbase
Couchbase Architecture
§ Single Node Operations
§ Cluster Operations
Break
HA and DR
§ Availability and XDCR
§ Backup/Restore
§ Security
12:00 – Lunch Break
Developing with Couchbase
§ Couchbase SDKs
Couchbase Indexing
§ Couchbase GSI andViews
§ Views Overview
Break
Indexing and Query
§ Couchbase Indexes (GSI/MOI)
§ Couchbase Query (N1QL)
Couchbase Mobile
§ Overview
Adjourn
§ Close
Why NoSQL?
©2015 Couchbase Inc. 4
Why companies need a new database solution
§ What are the biggest problems with Relational Databases that are
driving adoption of NoSQL?
LACKOFFLEXIBILITY/
HASRIGIDSCHEMAS
INABILITY
TOSCALEOUT
PERFORMANCE
CHALLENGES
49%
69%
50%
47%
44%
COST
ALLOFTHEABOVE
35%
29%
16%
12%
©2015 Couchbase Inc. 5
Dynamo
October	2007
Cassandra
August	2008
Bigtable
November	2006
Voldemort
February	2009
Very	few	organizations	want	to	(fewer	can)	build	and	maintain	database	software	technology.
But	every	organization	participating	in	the	digital	economy	needs	this	technology.
Why NoSQL?
New data solutions to address emerging needs:
§ Performance and Scalability
§ High Availability with Data Synchronization (multi-datacenter)
§ Flexible Schema to accommodate frequent changes
§ Transparent/Auto-Sharding without application participation
§ Distributed System for Querying
§ Managed Cache
©2015 Couchbase Inc. 6Scaling out flattens the cost and performance curves
NoSQL Database Scales Out
Cost and performance mirrors app tier
Users
NoSQL	Distributed	Data	Store
Web/App	Server	Tier
Application Scales Out
Just add more commodity web servers
Users
System Cost
Application Performance
Application Performance
System Cost
Why	NoSQL
©2015 Couchbase Inc. 7
How has Couchbase Server evolved beyond NoSQL?
§ Discreet, scalable services (data, index, query)
§ Filtering for cross data center replication
§ SQL-based query language and secondary indexing
§ Geospatial search and indexing
§ CRUD, prepared statements, and covering indexes
§ Memory-optimized Indexes
§ Array Indexing within Nested JSON
§ Graphical QueryW0rkbench
§ Sub-Document API
§ LDAP integration and auditing; RBAC, X-509 Certificates
©2015 Couchbase Inc. 8
Next Generation Data Management Architecture
Data
Sources
Enterprise
Applications
Social Media
Web &
Ecommerce
Mobile AppsSensor Data Mainframe
External
Data
System Logs
Data
Integration
Speed Layer Batch Layer
Data
Management
Data Lake Data Warehouse
Business Intelligence Dashboards Query ToolsData
Access
In Memory Cache
Data Serving Layer
©2015 Couchbase Inc. 9
Next Generation Data Management Architecture
Enterprise
Applications
Social Media
Web &
Ecommerce
Mobile AppsSensor Data MainframeExternal DataSystem Logs
Speed Layer Batch Layer
Data Lake
Business Intelligence Dashboards Query Tools
In Memory Cache
Data Warehouse
N1QL Query Workbench
Data
Sources
Data
Integration
Data
Management
Data
Access
Data Serving Layer
Real Time
Data Ingestion
©2015 Couchbase Inc. 10
Couchbase Ecosystem
©2015 Couchbase Inc. 11
How Does Couchbase Fit In Big Data?
Couchbase and Hadoop are complementary.
©2015 Couchbase Inc. 12
Couchbase and Hadoop
New Data
Stream
MergedView
All Data
Precompute
Views
(Map Reduce)
Process
Stream
Incremental
Views
Partial
Aggregate
Partial
Aggregate
Partial
Aggregate
Real-Time Data
Batch
Recompute
BatchViews
Real-TimeViews
Real-Time
Increment
Merge
Batch Layer
Serving Layer
Speed Layer
Couchbase Hadoop
Connector (Sqoop)
©2015 Couchbase Inc. 13
Couchbase Hadoop
Connector (Sqoop)
Couchbase and Hadoop
New Data
Stream
MergedView
All Data
Precompute
Views
(Map Reduce)
Process
Stream
Incremental
Views
Partial
Aggregate
Partial
Aggregate
Partial
Aggregate
Real-Time Data
Batch
Recompute
BatchViews
Real-TimeViews
Real-Time
Increment
Merge
Batch Layer
Serving Layer
Speed Layer
Stream / Data
Ingestion
Store
Incremental
Data / Stream
processing
Serving merged
results /
responses
©2015 Couchbase Inc. 14
Couchbase Server on Docker and OrchestrationTechnologies
Official Docker Support with MacOS, Ubuntu is coming
Couchbase & Containers
©2015 Couchbase Inc. 15
Platform as a Service
§ Couchbase runs on PaaS environments
Current Focus Future Plan
©2015 Couchbase Inc. 16
Infrastructure as a Service
Couchbase supports IaaS environments
§ Available in AWS
marketplace
§ BYOL or hourly pricing
§ Available in Azure
marketplace
§ BYOL or hourly pricing
§ Marketplace image in
the works
§ BYOL at the moment
§ Hourly pricing soon
Other providers supported
Couchbase Overview
What is Couchbase?
©2015 Couchbase Inc. 18
Couchbase Server Defined
§ Couchbase Server 4.X is the first NoSQL Database to enable
you to develop with agility and operate at any scale.
Managed Cache Key-Value Store Document Database Embedded Database Sync Management
©2015 Couchbase Inc. 19
The Power of the Flexible JSON Schema
Ability to store data in multiple ways
• Denormalized single document, as opposed to normalizing data across multiple table
• Dynamic Schema to add new values when needed
©2015 Couchbase Inc. 20
Document Fundamentals - Composition
§ Similar to primary keys in relational databases
§ Documents are partitioned based on the
document ID
§ ID based document lookup is extremely fast
§ Must be unique
§ JSON
§ Binary - integers, strings, booleans
§ Common binary values include serialized objects,
compressed XML, compressed text, encrypted
values
Document ID or Key
Value
§ CASValue (unique identifier for concurrency)
§ TTL
§ Flags (optional client library metadata)
§ Revision #
Metadata
Document
Document ID /
Key
MetadataValue
©2015 Couchbase Inc. 21
Storing And Retrieving Documents
©2015 Couchbase Inc. 22
Couchbase Data Access
• Everything is layered on top of KeyValue
• A Document store is a special case of Key-
Value
• Views provide aggregation and real-time
analytics through incremental map-reduce
• Global Secondary Indexes provide low
latency/high throughput indexes
• N1QL is a language that provides a powerful
and expressive way of accessing documents
Couchbase Architecture
Single Node
23
©2015 Couchbase Inc. 24
Couchbase Architecture
• Data Service – builds and
maintains Distributed secondary
indexes (MapReduceViews)
• Indexing Engine – builds and
maintains Global Secondary
Indexes
• Query Engine – plans,
coordinates, and executes queries
against either Global or
Distributed indexes
• Cluster Manager – configuration,
heartbeat, statistics, RESTful
Management interface
©2015 Couchbase Inc. 25
Couchbase Read Operation
APPLICATION SERVER
MANAGED CACHE
DISK
DISK
QUEUE
REPLICATION
QUEUE
DOC 1
GET
DOC 1
DOC 1
©2015 Couchbase Inc. 26
APPLICATION SERVER
MANAGED CACHE
DISK
DISK
QUEUE
REPLICATION
QUEUE
Write Operation
DOC 1
DOC 1DOC 1
©2015 Couchbase Inc. 27
Cache Ejection
APPLICATION SERVER
MANAGED CACHE
DISK
DISK
QUEUE
REPLICATION
QUEUE
DOC 1
DOC 2DOC 3DOC 4DOC 5
DOC 1
DOC 2 DOC 3 DOC 4 DOC 5
©2015 Couchbase Inc. 28
APPLICATION SERVER
MANAGED CACHE
DISK
DISK
QUEUE
REPLICATION
QUEUE
DOC 1
Cache Miss
DOC 2 DOC 3 DOC 4 DOC 5
DOC 2 DOC 3 DOC 4 DOC 5
GET
DOC 1
DOC 1
DOC 1
Couchbase Architecture
Cluster
©2015 Couchbase Inc. 30
Auto sharding – Bucket and vBuckets
vB
Data buckets
vB
1 ….. 1024
Active Virtual buckets
vB vB
1 ….. 1024
Replica Virtual buckets
©2015 Couchbase Inc. 31
Cluster Map
Couchbase Cluster
CLUSTER MAP
Hashing Algorithm
CRC32
vBucket2
vBucket3
vBucket4
vBucket5
vBucket6
vBucket7
vBucket1024
vBucket1
...
Couchbase SDK
Couchbase Cluster
CLUSTER MAP
Hashing Algorithm
CRC32
vBucket2
vBucket3
vBucket4
vBucket5
vBucket6
vBucket7
vBucket1024
vBucket1
...
Couchbase SDK
©2015 Couchbase Inc. 32
ACTIVE ACTIVE ACTIVE
REPLICA REPLICA REPLICA
Couchbase Server 1 Couchbase Server 2 Couchbase Server 3
Basic Operation
SHARD
5
SHARD
2
SHARD
9
SHARD SHARD SHARD
SHARD
4
SHARD
7
SHARD
8
SHARD SHARD SHARD
SHARD
1
SHARD
3
SHARD
6
SHARD SHARD SHARD
SHARD
4
SHARD
1
SHARD
8
SHARD SHARD SHARD
SHARD
6
SHARD
3
SHARD
2
SHARD SHARD SHARD
SHARD
7
SHARD
9
SHARD
5
SHARD SHARD SHARD
©2015 Couchbase Inc. 33
Rebalance
ACTIVE ACTIVE ACTIVE
REPLICA REPLICA REPLICA
Couchbase Server 1 Couchbase Server 2 Couchbase Server 3
ACTIVE ACTIVE
REPLICA REPLICA
Couchbase Server 4 Couchbase Server 5
SHARD
5
SHARD
2
SHARD SHARD
SHARD
4
SHARD SHARD
SHARD
1
SHARD
3
SHARD SHARD
SHARD
4
SHARD
1
SHARD
8
SHARD SHARD SHARD
SHARD
6
SHARD
3
SHARD
2
SHARD SHARD SHARD
SHARD
7
SHARD
9
SHARD
5
SHARD SHARD SHARD
SHARD
7
SHARD
SHARD
6
SHARD
SHARD
8
SHARD
9
SHARD
READ/WRITE/UPDATE
©2015 Couchbase Inc. 34
Fail Over
ACTIVE ACTIVE ACTIVE
REPLICA REPLICA REPLICA
Couchbase Server 1 Couchbase Server 2 Couchbase Server 3
ACTIVE ACTIVE
REPLICA REPLICA
Couchbase Server 4 Couchbase Server 5
SHARD
5
SHARD
2
SHARD SHARD
SHARD
4
SHARD SHARD
SHARD
1
SHARD
3
SHARD SHARD
SHARD
4
SHARD
1
SHARD
8
SHARD SHARD
SHARDSHARD
6
SHARD
2
SHARD SHARD SHARD
SHARD
7
SHARD
9
SHARD
5
SHARD SHARD
SHARD
SHARD
7
SHARD
SHARD
6
SHARDSHARD
8
SHARD
9
SHARD
SHARD
3
SHARD
1
SHARD
3
SHARD
High Availability with Couchbase
35
©2015 Couchbase Inc. 36
Recovering from a Fail Over
ACTIVE ACTIVE ACTIVE
REPLICA REPLICA REPLICA
Couchbase Server 1 Couchbase Server 2 Couchbase Server 3
ACTIVE ACTIVE
REPLICA REPLICA
Couchbase Server 4 Couchbase Server 5
SHARD
5
SHARD
2
SHARD SHARD
SHARD
4
SHARD SHARD
SHARD
1
SHARD
3
SHARD SHARD
SHARD
4
SHARD
1
SHARD
8
SHARD SHARD
SHARDSHARD
6
SHARD
2
SHARD SHARD SHARD
SHARD
7
SHARD
9
SHARD
5
SHARD SHARD
SHARD
SHARD
7
SHARD
SHARD
6
SHARDSHARD
8
SHARD
9
SHARD
SHARD
3
SHARD
1
SHARD
3
SHARD
©2015 Couchbase Inc. 37
Recovering from Failover
Three options:
1. Remove the node
2. Full recovery
3. Delta node recovery
©2015 Couchbase Inc. 38
Delta Node Recovery
Recover Failed Nodes with incremental Catch-up
§ Improve recovery time for nodes with large datasets
§ Add a failed node into cluster and recover data from where it left off
©2015 Couchbase Inc. 39
Rack Zone Awareness – Server Groups
Informs Couchbase as to the
physical distribution of nodes in
racks or availability groups.
The Active vBuckets in Server 1
will have its replica’s in a different
group. Never in the same group.
Couchbase Server 3
Couchbase Server 2
Couchbase Server
6
Couchbase Server 5
Couchbase Server 4
Couchbase Server
9
Couchbase Server
8
Couchbase Server 7
Ensures that replica vBuckets are
distributed across groups
REPLICA
REPLICA
Group: A Nodes 1,2,3
Group: B Nodes 4,5,6
Group: C Nodes 7,8,9
Couchbase Server 1
ACTIVE
LabTime!
Labs 1-4
Cross Datacenter Replication
(XDCR)
41
©2015 Couchbase Inc. 42
Cross Datacenter Replication (XDCR)
TO OTHER NODE
APPLICATION SERVER
MANAGED CACHE
DISK
DISK
QUEUE
REPLICATION
QUEUE
XDCR QUEUE
TO OTHER CLUSTER
DOC 1
DOC 1DOC 1DOC 1
©2015 Couchbase Inc. 43
Cross Datacenter Replication (XDCR)
TO OTHER NODE
APPLICATION SERVER
MANAGED CACHE
DISK
DISK
QUEUE
REPLICATION
QUEUE
XDCR QUEUE
TO OTHER CLUSTER
DOC 1
DOC 1DOC 1DOC 1
Single-node type means easier
administration and scaling
CLUSTER
REPLICATION
vBucket
REPLICAS
©2015 Couchbase Inc. 44
XDCR: Cluster Topology Aware
• Applications can access both Clusters
(active-active)
• Can provide filtered replication
• One-one, one-many, many-one
• Differently sized clusters
• Different HW platforms
• Mixed versions supported (Upgrades)
©2015 Couchbase Inc. 45
Cross Datacenter Replication (XDCR)
Unidirectional or Bidirectional Replication
Unidirectional
§ Hot spare / Disaster Recovery
§ Development/Testing copies
§ Connectors (Solr, Elasticsearch)
§ Integrate to custom consumer
Bidirectional
§ Multiple Active Masters
§ Disaster Recovery
§ Datacenter Locality
Backup and Restore
46
©2015 Couchbase Inc. 47
Key Features
§ Zero downtime backup and restore
§ Single utility to manage multiple clusters
§ Restore from any point, to any bucket or topology
§ Fully differential – merge backups to maintain desired restore points
§ Built-in concurrency control
§ Resume interrupted backups
§ Compaction reduces storage requirements
©2015 Couchbase Inc. 48
Enterprise Backup and Restore
§ >10x Faster Backups
§ Better Data Protection with Enterprise Backup Restore
– Scale to larger datasets
– Fast backups and restores
– Better Consistency in backup data
– Resilient to failures/Topology Changes
288
25
0
50
100
150
200
250
300
350
BackUpMB/Sec
4.5 Backup Speed 4.1 Backup Speed
©2015 Couchbase Inc. 49
Data Import
§ Create backup repo
/opt/couchbase/bin/cbbackupmgr config --archive /tmp/backup --repo demo
§ Import of sample data
/opt/couchbase/bin/cbbackupmgr json --host couchbase://172.23.107.27:8091 --username Administrator --password password
--bucket travel-sample --dataset /opt/couchbase/samples/travel-sample.zip --format sample
§ Import of list data
/opt/couchbase/bin/cbbackupmgr json --host couchbase://172.23.107.27:8091 --username Administrator --password password
--bucket chicago --dataset file:///root/data/companies.json --format list --generate-key %permalink%::#MONO_INCR#
Demo
Security
©2015 Couchbase Inc. 52
Security with Couchbase
§ Administrative Security:
§ Admin user (full access) vs. Read-only user (monitoring, developer access)
§ SSL encryption to REST API and Web UI
§ HTTP access log
§ Data Security:
§ Applications connect via SASL with single user/pass
§ Data-at-Rest encryption via partnership withVormetric
§ SSL encryption for over-the-wire
§ Couchbase 4.0:
§ LDAP integration
§ More extensive administrative action auditing
More at:
http://docs.couchbase.com/admin/admin/security/security-best-practices.html
©2015 Couchbase Inc. 53
Couchbase authentication overview
§ Application authentication
§ Buckets are protected with challenge-response SASL protocol
§ AuthN happens over CRAM-MD5
§ Admin authentication
§ Authentication through admin username and password
§ Authentication through LDAP (New in 4.0)
AUTHENTICATION
©2015 Couchbase Inc. 54
Couchbase authorization overview
§ Application data access
§ Full access to the bucket application is connected to
§ Admin access
§ Full administrator has full privileges on the cluster
§ Read-only administrator cannot change cluster settings
AUTHORIZATION
©2015 Couchbase Inc. 55
Couchbase encryption overview
§ Data-in-motion encryption
§ Client-server communication can be encrypted using SSL
§ Secure admin access using SSL over port 18091
§ Secure view access using SSL over port 18092
§ Secure XDCR for encryption across datacenters
Track all Access
SERVER	3SERVER	1 SERVER	2
Couchbase	Server	– New	York	
SERVER	3SERVER	1 SERVER	2
Couchbase	Server	– London
SSL
Client applications
Secure
XDCR over
SSL
Admin
access
over port
18091
SSL
View
access
over port
18092
SSL
https://couchbase_server:18091/…
https://couchbase_server:18092/…
ENCRYPTION
©2015 Couchbase Inc. 56
Couchbase encryption overview
§ Transparent data-at-rest encryption solution ENCRYPTION
Storage
Database
Application
User
File
Systems
Volume
Managers
DSM
Vormetric
Data Security Manager
on Enterprise premise or in cloud
virtual or physical appliance
• Centrally manage keys and policy
• Virtual and physical appliance
• High-availability with cluster
• Multi-tenant and strong separation of duties
• Proven 10,000+ device and key management scale
• Web, CLI, API Interfaces
• FIPS 140-2 certified
Secure Personally Identifiable Information
• User profile information
• Login Credentials
• IP Addresses
©2015 Couchbase Inc. 57
External identity management using LDAP
Centralized identity management
§ Define multiple read-only admins and full-admins
§ Centralized security policy management for admin accounts for
stronger passwords, password rotation, and auto lockouts
Individual accountability. Simplified compliance.
§ Define UIDs in LDAP, and map UIDs to read-only / full admin role in
Couchbase
§ Comprehensive audit trails with LDAP UIDs in audit records
©2015 Couchbase Inc. 58
New UI for authorizing LDAP administrators
Turn on/off
LDAP
Add UIDs to
read-only admins
Add UIDs to full
admins
Set default behavior
if UID is not mapped
Testing credentials
to verify what level
of access
Plus REST, and CLI integration for programmatic setup
©2015 Couchbase Inc. 59
Admin Auditing in Couchbase
Rich audit events
§ Over 25 different, detailed admin audit events
§ Auditing for tools including backup
Configurable auditing
§ Configurable file target
§ Support for time based log rotation and audit filtering
Easy integration
§ JSON format allows for easy integration with downstream
systems using flume, logstash, and syslogd
©2015 Couchbase Inc. 60
Auditing a successful login
{
"timestamp":"2015-02-20T08:48:49.408-08:00",
"id":8192,
"name":"login success",
"description":"Successful login to couchbase cluster",
"role":"admin",
"real_userid": {
"source":"ns_server",
"user":"bjones”
},
"sessionid":"0fd0b5305d1561ca2b10f9d795819b2e",
"remote":{"ip":"172.23.107.165", "port":59383}
}
WHEN
WHO
WHAT
HOW
LabTime!
Labs 5-7
Lunch
Couchbase SDK
63
©2015 Couchbase Inc. 64
Languages and Interfaces for Couchbase
§ Official SDKs
– Java
– .NET
– Node.js
– Python
§ For each of these we have
– Full Document support
– Interoperability
– Common Programming Model
Others: Erlang, Perl,TCL, Clojure, Scala
- PHP
- C
- Go
- Ruby
JDBC and ODBC
©2015 Couchbase Inc. 65
Interacting with Data
Cluster
Bucket
CRUD
View
Query
N1QL
Query
©2015 Couchbase Inc. 66
Couchbase SDKs
§ What does it mean to be a Couchbase SDK?
Cluster
Bucket
CRUD
Functional
Give the application developer a concurrent
API for basic (k-v) or document management
API
get()
insert()
replace()
upsert()
remove()
©2015 Couchbase Inc. 67
The Document
§ Documents are integral to the SDKs.
§ All SDKs support JSON format
§ In addition: Serialized objects, Unquoted Strings, Binary pass-through
§ A Document contains:
67
Property Description
ID The bucket-unique identifier
Content The value that is stored
Expiry An expiration time
CAS Check-and-Set identifier
©2015 Couchbase Inc. 68
Bucket API – Modifying Documents
§ insert() the document if it does not exist
§ replace() the document if it does exist
§ upsert() the document (insert or replace)
§ remove() the document
§ append() data to the document
§ prepend() data to the document
§ counter() for increment/decrement type operations
©2015 Couchbase Inc. 69
Bucket API – Retrieving Documents
§ get() the document
§ getFromReplica() if the master is not available
§ getAndTouch() to load the document and reset the expiry
§ getAndLock() to load the document and write-lock it
©2015 Couchbase Inc. 70
Unified API – DML, CAS Example
1. Two Clients retrieve the same document "XYZ"
2. Client A retrieves it first.
3. Client B then retrieves XYZ. Both clients will have the same CAS value for document XYZ
4. Client B tries to perform an update to document XYZ. The update succeeds as the CAS value
was unchanged from when Client B initially retrieved the document. Once the update
succeeds, the CAS value for XYZ changes.
5. Client A then tries to perform an update on XYZ immediately after Client B. The update will
fail as Client A's CAS value is out of date. When Client B updated XYZ, the CAS value
changed.
©2014 Couchbase, Inc.
©2015 Couchbase Inc. 71
Durability Options for writes
APPLICATION
SERVER
CACHE
DISK
XDCR QUEUE
TO OTHER CLUSTER
CACHE
DISK DISK
QUEUE
REPLICATION
QUEUE
APPLICATION
SERVER
DISK DISK
QUEUE
CACHE
REPLICATION
QUEUE
DISK
QUEUE
DOC
DOCDOC DOCDOCDOC DOC
DOC
CLUSTER 1
NODE 2
CLUSTER 2
NODE …
CLUSTER 1
NODE 1
DOC
( PUT ) By default, a write operation is successful when the data has been written to the
memory of the node with the active vBucket. Eventually (but pretty quickly), the data will
also be written to persistent storage and to replica vBuckets.
( replicateTo ) write operation is
successful when data has been
written to both the active
vBucket and replica vBuckets.
( persistTo ) write operation is successful when data has been
written to persistent storage
• Can be set to require writes to persistent storage for replicas.
• Using persistTo will slow performance.
©2015 Couchbase Inc. 72
Bucket API – Querying
§ query() is possible for
§ Views
§ N1QL
§ Streams N response rows as they arrive from the server
§ Loads more than one Document based on Criteria
§ Typically used to satisfy secondary and advanced querying use cases
LabTime!
Labs 8-10
GSI andVIEWS
74
©2015 Couchbase Inc. 75
Which to choose – GSI vsViews
Workloads New GSI in v4.X Map/ReduceViews
Complex
Reporting
Just InTime Aggregation Pre-aggregated
Ad-hoc
Querying
Ad-hoc View per Query
Flexible
Indexing Logic
N1QL Functions Javascript
Secondary
Lookups
Faster with
Single Node Lookup
Slower due to
Scatter-Gather
Range
Scans
Faster with
Single Node Lookup
Slower due to
Scatter-Gather
©2015 Couchbase Inc. 76
Comparing GSI andViews
Capabilities Global Secondary Indexes Map/ReduceViews
Partitioning Model Independent – Indexing Service Aligned to Data – Data Service
Scale Model Independently Scale Index Scale with Data Service
Secondary Lookup Single Node Scatter-Gather
Range Scan Single Node Scatter-Gather
Grouping, Aggregates With N1QL Built-in withViews API
Caching Managed Not Managed
Storage ForestDB Couchstore
Availability Identical Indexes load balanced Replica Based
©2015 Couchbase Inc. 77
Indexing Differences
§ Local secondary indexes (Views)
– Co-located with data
– Higher write performance / Lower read performance: scatter-gather
– Map/ReduceViews: programmable indexer for complex reporting and indexing logic.
– SpatialViews: Incremental R-tree indexing for powerful bounding-box queries
– Full partition alignment and paired scalability with Data Service
§ Global secondary indexes (GSI / MOI)
– Independently partitioned and independently scalable indexes in Indexing Service
– Isolated from Key-Value operations
– Low latency queries without compromising on mutation performance (insert/update/delete)
– Higher query performance
– Async writes to a large number of global indexes
– Memory Optimized Indexes (MOI) alternate storage option to standard GSI - small memory
footprint, optimized for lowest latency queries
©2015 Couchbase Inc. 78
Indexing with N1QL
Indexing in N1QL
Global and Local Indexes
IndexingTypes for N1QL
View Based Indexes
• Local Indexes:
• PartitionedAligned to Data
• Auto Partitioning
• Built in Replicas
• Simple Scaling Model
Global Secondary Indexes (GSI)
• Global Indexes:
• Independently Partitioned Indexes
• Predictable High Performance at Scale
• Sophisticated Scaling Model
Controlled with USING VIEW|GSI in CREATE INDEX. Set per Index. Drop and Recreate the index
using DROP INDEX & CREATE INDEX to change Index Type.
Views
79
©2015 Couchbase Inc. 80
A little aboutViews…
§ Using views you can define
– Primary indexes
– Simple secondary indexes (most common use case)
– Complex secondary, tertiary and composite indexes
– Aggregations (reduction)
§ Built using MapReduce technology
– Map and Reduce functions are written in Javascript
©2015 Couchbase Inc. 81
A little aboutViews…
§ Captures user-defined key/value pairs about a document into an index
§ Can execute logic on data during indexing
§ Able to express relationships too cumbersome to maintain in Key/Value
§ Incremental indexing essentially pre-computes query results
§ Higher latency compared to key/value lookups
§ Common Use Cases
– Materialized view: project an alternate view of your document
– Complex aggregates
– Lightweight reporting
©2015 Couchbase Inc. 82
Queries run against stale indexes by default
§ stale=update_after (default if nothing is specified)
• always get fastest response
• can take two queries to read your own writes
§ stale=ok
• auto update will trigger eventually
• might not see your own writes for a few minutes
• least frequent updates -> least resource impact
§ stale=false
• Use with “set with persistence” if data needs to be included in view results
• BUT be aware of delay it adds, only use when really required
©2015 Couchbase Inc. 83
Lightweight Reporting Example
Document:
{
“date”: “2015-08-03T16:38:05.835Z”,
“source”: “192.168.56.101”,
“logtype”: “error”,
“message”: “An error occurred during startup”
}
Map:
function(doc, meta) {
emit(dateToArray(doc.date), doc.logtype);
}
©2015 Couchbase Inc. 84
Lightweight Reporting Example
function(key, values, rereduce) {
var response = {"warning" : 0, "error": 0, "fatal" : 0 };
for(i=0; i<values.length; i++) {
if (rereduce) {
response.warning = response.warning + values[i].warning;
response.error = response.error + values[i].error;
response.fatal = response.fatal + values[i].fatal;
} else {
if (values[i] == "warning")
response.warning++;
if (values[i] == "error" )
response.error++;
if (values[i] == "fatal" )
response.fatal++;
}
}
return response;
}
©2015 Couchbase Inc. 85
Lightweight Reporting Example
Query: ?group_level=2&startkey=[2010,7]&endkey=[2011,4]
{"rows":[
{"key":[2010,7], "value":{"warning":4,"error":2,"fatal":0}},
{"key":[2010,8], "value":{"warning":4,"error":3,"fatal":0}},
{"key":[2010,9], "value":{"warning":4,"error":6,"fatal":0}},
{"key":[2010,10],"value":{"warning":7,"error":6,"fatal":0}},
{"key":[2010,11],"value":{"warning":5,"error":8,"fatal":0}},
{"key":[2010,12],"value":{"warning":2,"error":2,"fatal":0}},
{"key":[2011,1], "value":{"warning":5,"error":1,"fatal":0}},
{"key":[2011,2], "value":{"warning":3,"error":5,"fatal":0}},
{"key":[2011,3], "value":{"warning":4,"error":4,"fatal":0}},
{"key":[2011,4], "value":{"warning":3,"error":6,"fatal":0}}
]
}
Indexing
86
©2015 Couchbase Inc. 87
Data Service
Projector & Router
Indexing Service
Query ServiceIndex Service
Supervisor
Index maintenance &
Scan coordinator
Index#2Index#1
Query Processor
cbq-engine
Bucket#1 Bucket#2
DCP Stream
Index#4Index#3
...
B
u
c
k
e
t
#
2
B
u
c
k
e
t
#
1
Projector and Router:
1 Projector and Router per node
1 stream of changes per bucket per
supervisor
ForestDB
Storage Engine
Supervisor
1 Supervisor per node
Many indexes per Supervisor
MemDB Storage Engine for
MOI
©2015 Couchbase Inc. 88
Types of Indexes
§ Composite Indexes
§ Covering Indexes
§ Filtered Indexes
§ Function Based Indexes
§ Sub-Document Indexes
§ Incremental MapReduceViews
§ SpatialViews
§ FullText Indexes
§ Prepared Statements
§ N1QL Complete SQL CRUD support: Insert, Delete, Merge, Etc.
©2015 Couchbase Inc. 89
create index idx_odspilot on ods(DISTINCT ARRAY p.FILEN in p in PILOT END);
Array Indexing
§ Index only required elements or attributes in the array
§ Benefits are lot more significant for nested arrays/objects
§ Efficient on Index storage & search time
Transportation Company POC
• 422,137 documents.
• Query2: BEFORE array indexing
• Primary index scan
• 38.91 seconds.
• Query2: AFTER array indexing
• Array index scan [DistinctScan]
• 8.51 millisecond
• Improvement of 4572Times
©2015 Couchbase Inc. 90
Step by Step – Building indexes
§ Building and Index
1. Issue “CREATE INDEX …”
2. Place on the “next node” if WITH {“nodes”:[]}not specified
– “next node” picked by round robin
3. Create metadata for the index on the node
– “next node” picked by round robin
4. If deferred build = true
– Mark Index Status = “Pending”
– Wait for “BUILD INDEX ...”
5. Else
– Mark Index Status = “Pending”
– Start DCP Backfill with Projector
– When Done – Mark Index Status = “Online”
©2015 Couchbase Inc. 91
Step by Step – Ingest a Mutation
§ Ingest a Mutation on Data
1. DCP Feed communicates the mutation to Projector on the node.
2. Projector picks up the mutation for a bucket
– Projector strips the mutation to check relevance to existing indexes on each indexer
– Projector Sends stripped mutation to indexers on all index service nodes
3. Indexer receive the mutation on each index service node
– Queue the mutation
– ExtractionWorker Prepares and queues the update to each index.
– Persistence Worker persist the mutation to the index
©2015 Couchbase Inc. 92
Global Secondary Indexes – Storage Options
Global Secondary Index
Predictable low latency with Query and Key Based Operations,
even in presence of large number of indexes
Storage Option for GSI
Standard Global Secondary Indexes
• Optimized for Storage + Memory: efficient spill-
to-disk with ForestDB as the storage engine
• Advanced IO Performance: New circular-writes
that minimize compaction overhead
Memory-Optimized Global Secondary Indexes (MOI)
• Optimized for Memory: small memory footprint,
optimized for lowest latency queries
• Faster Indexing: fresh indexes under heavy mutations with
lock free index maintenance
Controlled with Cluster Settings (Settings Tab). Cluster-wide Setting for all Indexes and
Require removing all GSI indexes and index service nodes to change storage options.
(New in 4.5)
©2015 Couchbase Inc. 93
Memory Optimized (MOI) Global Secondary Indexes
• Optimized for Memory: small memory footprint, optimized for lowest
latency queries
• Faster Indexing: fresh indexes under heavy mutations with lock free
index maintenance
©2015 Couchbase Inc. 94
Which to Choose – Standard vs Memory Optimized GSI
Standard GSI Memory Optimized GSI
Initial Index BuildTimes Slower Faster
Ongoing Index Build
Times
Slower Faster
Ability to Keep up with
Mutation Rate
Lower Higher
Memory Demand for
Larger Indexes
Lower Higher
Behavior on OOM
(out of memory)
Spill to disk Stop processing mutations
©2015 Couchbase Inc. 95
Indexing & HA
§ Mirrored Indexes are load balanced and used for HA
– Size at least 2 indexes for production
– Add more indexes if all requests cannot be handled by a single index to protect against
failures
©2015 Couchbase Inc. 96
Indexes & Partitioning
§ Why Partition Indexes?
– Index may not fit on the node
– Fit index to the nodes you have
– Distribute Index load to many nodes
– Minimize the tree scanned
– Large/Tall indexes will take longer to scan
§ How to Partition Indexes?
– By list of values – great for scan latency
– ... WHERE type = “customer”
– ... WHERE type = “product”
– By range –
– ... WHERE id BETWEEN 10 AND 20
– ... WHERE id BETWEEN 20 AND 30
– By function – no range scan ability
©2015 Couchbase Inc. 97
Efficient IO with Circular Writes in Standard GSI
Standard Global Secondary Indexes
§ Reduced Disk IO Requirements
– Append-OnlyWrites with frequent full compaction (Version 4.1 & Earlier)
– Circular-Reuse Writes with reduced full compactions (New in 4.5: )
– Reused orphaned blocks in the index file
– Reduce the need for frequent full-compactions of the index file
Index
Mutation
Append-OnlyWrite
CircularWrite
File for Global Secondary Indexes
Index
Mutation
Index
Mutation
N1QL - Query
©2015 Couchbase Inc. 99
What is N1QL?
§ N1QL is a new query language that systematically extends SQL to
document-oriented data
§ N1QL extends SQL to handle data that is:
– Nested: Contains nested objects, arrays
– Heterogeneous: Schema-optional, non-uniform
– Distributed: Partitioned across a cluster
©2015 Couchbase Inc. 100
N1QL (EXPRESSIVE)
§ Access to every part of JSON document
§ Scalar & Aggregate functions
§ Issue subquery in any expressions
§ Subqueries
§ Subqueries in the FROM clause
Give developers and enterprises an expressive, powerful, and complete
language for querying, transforming, and manipulating JSON data.
©2015 Couchbase Inc. 101
N1QL (POWERFUL)
§ Access to every part of JSON document
§ JOINS, Aggregations, standard scalar functions
§ Aggregation on arrays
§ NEST & UNNEST operations
§ Covering Index
Give developers and enterprises an expressive, powerful, and complete
language for querying, transforming, and manipulating JSON data.
©2015 Couchbase Inc. 102
N1QL (QUERYING)
§ INSERT
§ UPDATE
§ DELETE
§ MERGE
§ SELECT
§ EXPLAIN
Give developers and enterprises an expressive, powerful, and complete
language for querying, transforming, and manipulating JSON data.
©2015 Couchbase Inc. 103
N1QL (TRANSFORMING & MANIPULATING)
§ FullTransformation of the data via Query.
§ INSERT
§ INSERT single & multiple documents
§ INSERT result a SELECT statement
§ DELETE documents based on complex filter
§ UPDATE any part of JSON document & use complex filter.
§ MERGE two sets of documents using traditional MERGE statement
§ SUBQUERIES
Give developers and enterprises an expressive, powerful, and complete
language for querying, transforming, and manipulating JSON data.
©2015 Couchbase Inc. 104
Optimizing Query Speed
§ There are four options for N1QL queries:
Primary Index
Secondary Index
(GSI or MOI)
Covered Index
“ON KEYS”
©2015 Couchbase Inc. 105
Query Execution Flow
1. Application submits
N1QL query
2. Query is parsed,
analyzed and plan is
created
1
2
©2015 Couchbase Inc. 106
Query Execution Flow
3. Query Service makes
request to Index Service
4. Index Service returns
document keys and data
3
4
©2015 Couchbase Inc. 107
Query Execution Flow
5. If Covering Index, skip
step 6
6. If filtering is required,
fetch documents from
Data Service56
©2015 Couchbase Inc. 108
Query Execution Flow
7. Apply final logic (e.g.
SORT, ORDER BY)
8. Return formatted results
to application
7
8
©2015 Couchbase Inc. 109
Inside a Query Service (without covering index)
Client
FetchParse Plan Join Filter
Pre-Aggregate
Offset Limit ProjectSortAggregateScan
Query Service
Index
Servic
e
Data
Servic
e
Data-parallel — Query is N data streams over N cores*
Memory-based
Pluggable architecture — datastore, index…
Request Response
©2015 Couchbase Inc. 110
Query Consistency
Strict Request-Time
Consistency
(request_plus)
Query execution is delayed until all
indexes process mutations up toT3
RYOW Consistency
(at_plus)
Query execution is delayed until all
indexes process mutations up toT1
T1: insert (k1, v1)
T3: issue query on (k1,v1)
T2: do other business logic computation
…
…
©2015 Couchbase Inc. 111
Joins (Referential)
©2015 Couchbase Inc. 112
Joins (Referential)
©2015 Couchbase Inc. 113
Joins (Referential)
©2015 Couchbase Inc. 114
Joins (Referential)
©2015 Couchbase Inc. 115
Document-oriented Extensions
§ Nested
– Paths—user.profile.email, children[0], children[0:2]
– NEST, UNNEST
– Ranging—EVERY child.age > 5 FOR child IN children END
– Transformations—SELECT {“name”: first_name || last_name}
§ Non-uniform
– IS MISSING
– Type checking and conversion
§ Distributed
– Direct lookup—USE KEYS
– Efficient joins—ON KEYS
©2015 Couchbase Inc. 116
SELECT statement
SELECT customers.id,
customers.NAME.lastname,
customers.NAME.firstname
Sum(orderline.amount)
FROM orders UNNEST orders.lineitems AS orderline
JOIN customers ON KEYS orders.custid
WHERE customers.state = 'NY'
GROUP BY customers.id,
customers.NAME.lastname
HAVING sum(orderline.amount) > 10000
ORDER BY sum(orderline.amount) DESC
Dotted sub-document reference
Names are CASE-SENSITIVE
UNNEST to flatten the arrays
JOINS with Document KEY of
customers
©2015 Couchbase Inc. 117
UNNEST example: Customer Document
{
"C_ZIP" : "828011111",
"C_STATE" : "vt",
"C_FIRST" : "ykfdbqku",
"C_CREDIT" : "GC",
"C_DELIVERY_CNT" : 0,
"C_W_ID" : 1,
"C_CITY" : "quhpismkzumehqhr",
"C_STREET_1" : "rmtxadlsxqefdcwf",
"C_D_ID" : 1,
"ORDERS" : [
{
"ORDER_LINE" : [
{
"OL_AMOUNT" : 0,
"OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z",
"OL_DIST_INFO" : "yptiwgjdelfxmathbjzirvye",
"OL_I_ID" : 35828,
"OL_SUPPLY_W_ID" : 1,
"OL_QUANTITY" : 5
},
{
"OL_AMOUNT" : 0,
"OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z",
"OL_DIST_INFO" : "dxhqulhcgksjgqsicujzqhdb",
"OL_I_ID" : 26024,
"OL_SUPPLY_W_ID" : 1,
"OL_QUANTITY" : 5
},
}
….
©2015 Couchbase Inc. 118
UNNEST example: N1QL Code
{
"C_ZIP" : "828011111",
"C_STATE" : "vt",
"C_FIRST" : "ykfdbqku",
"C_CREDIT" : "GC",
"C_DELIVERY_CNT" : 0,
"C_W_ID" : 1,
"C_CITY" : "quhpismkzumehqhr",
"C_STREET_1" : "rmtxadlsxqefdcwf",
"C_D_ID" : 1,
"ORDERS" : [
{
"ORDER_LINE" : [
{
"OL_AMOUNT" : 0,
"OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z",
"OL_DIST_INFO" : "yptiwgjdelfxmathbjzirvye",
"OL_I_ID" : 35828,
"OL_SUPPLY_W_ID" : 1,
"OL_QUANTITY" : 5
},
{
"OL_AMOUNT" : 0,
"OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z",
"OL_DIST_INFO" : "dxhqulhcgksjgqsicujzqhdb",
"OL_I_ID" : 26024,
"OL_SUPPLY_W_ID" : 1,
"OL_QUANTITY" : 5
},
}
….
SELECT COUNT(my_order_line)AS total_orders,
MAX(my_order_line.ol_delivery_d)AS max_delivery_date,
MAX(my_order_line.ol_quantity)AS max_order_quantity,
MAX(my_orders.o_entry_d) AS max_customer_entry,
MAX(my_orders.o_ol_cnt) AS max_orderline_entry,
COUNT(customer)AS total_customers
FROM CUSTOMER MY_CUSTOMER
UNNEST ORDERS AS my_orders
UNNEST my_orders.order_line AS my_order_line
;
©2015 Couchbase Inc. 119
Named Prepared Statement
url="http://localhost:8093/query"
s = requests.Session()
s.keep_alive = True
s.auth = ('Administrator','password')
query = {'statement':’prepare select * from `beer-sample` where type=’beer’
and name = 'Guinness’}
r = s.post(url, data=query, stream=False)
prepared = str(r.json()['results'][0]['name'])
query = {'prepared': '"' + prepared + '"' }
for i in range (0, 5000):
r = s.post(url, data=query, stream=False)
print i, r.json()['metrics']['executionTime']
©2015 Couchbase Inc. 120
Named Prepared Statement
url="http://localhost:8093/query"
s = requests.Session()
s.keep_alive = True
s.auth = ('Administrator','password')
query = {'statement':'prepare select * from `beer-sample` where name = [$1]’}
r = s.post(url, data=query, stream=False)
prepared = str(r.json()['results'][0]['name'])
for i in range (0, 5):
query={'prepared': '"' + prepared + '"', 'args': '["old_hat_brewery"]' }
r = s.post(url, data=query, stream=False)
print i, r.json()['metrics']['executionTime']
Prepare Once
Bind Values Many Times
©2015 Couchbase Inc. 121
Query Workbench – Query Editing
Query Editor
Autocomplete
Syntax highlighting
Multi-line formatting
History
Create, edit, save, run
Results
JSON /Table /Tree
©2015 Couchbase Inc. 122
Query Workbench – Schema Browsing
Schema
Inferred
Document types
Element types
Frequency
Sample data
Bucket
Schema
Indexes
©2015 Couchbase Inc. 123
Query Workbench – Query Monitoring
Catalogs
Vitals
Active Requests
Prepared Statements
Completed Requests
Interfaces
QueryWorkbench
CLI (Query Shell)
REST API
©2015 Couchbase Inc. 124
Monitoring: Active requests
§ List / Delete requests currently being run by the query service
§ Through N1QL
– SELECT * FROM system:active_requests
– DELETE FROM system:active_requests WHERE…
§ Through REST
– GET http://localhost:8093/admin/active_requests
– GET http://localhost:8093/admin/active_requests/<request_id>
– DELETE http://localhost:8093/admin/active_requests/<request_id>
©2015 Couchbase Inc. 125
Monitoring: Prepared statements
§ List / Delete requests prepared on the query node
§ Through N1QL
– SELECT * FROM system:prepareds
– DELETE FROM system:prepareds WHERE…
§ Through REST
– GET http://localhost:8093/admin/prepareds
– GET http://localhost:8093/admin/prepareds/<request_id>
– DELETE http://localhost:8093/admin/prepareds/<request_id>
©2015 Couchbase Inc. 126
Monitoring: Completed requests
§ List / Delete completed requests deemed to be of high cost
§ Through N1QL
– SELECT * FROM system:completed_requests
– DELETE FROM system:completed_requests where…
§ Through REST
– GET http://localhost:8093/admin/completed_requests
– GET http://localhost:8093/admin/completed_requests/<request_id>
– DELETE http://localhost:8093/admin/completed_requests/<request_id>
§ Provide an overall health picture of the query service
– Using REST: GET http://localhost:8093/admin/vitals
LabTime!
Labs 10-12
Couchbase Mobile
Introduction
128
©2015 Couchbase Inc. 129
Key Challenges When Building Mobile Apps
According to study done by Bock & Company Enterprise Developers Rank Critical Requirements for Success in the Coming Mobile App Explosion
©2015 Couchbase Inc. 130
What is Couchbase Mobile
• Removed continual network dependency
• Faster development cycles
• Less long term maintenance than
traditional solutions
• Enterprise class mobile/embedded NoSQL
database + sync platform
• Fast and consistent access to data
Built-in enterprise level security throughout the entire stack includes user authentication, user and
role based data access control (RBAC), secure transport (TLS), and 256-bit AES full database
encryption.
SECURITY
©2015 Couchbase Inc. 131
Couchbase Lite Overview
§ Cross-platform support for all major
operating systems and platforms
§ Built native from the ground up
§ 500kb for most platforms
§ 256-bit AES full database encryption
131
Couchbase Lite
Embedded Database
©2015 Couchbase Inc. 132
Sync Gateway Overview
§ Synchronize data between Couchbase Lite
and Couchbase Server
§ REST, Stream, Batch, and Event APIs
§ Pluggable authentication
§ Fine grained user and role based access
control
§ Elastically scalable in real-time
132
Sync Gateway
Synchronization
©2015 Couchbase Inc. 133
Couchbase Server Overview
§ Scale easily to thousands of nodes
§ Consistent high performance that supports
millions of concurrent users
§ Flexible JSON data model
§ 24x365 always-on availability
133
Couchbase Server
Database Server
©2015 Couchbase Inc. 134
End-to-End Security
ü Pluggable authentication
ü Fine grained user and role based access control
ü Transport layer security (TLS)
ü 256-bit AES full database encryption on device
ü File system encryption in the cloud
Security
©2015 Couchbase Inc. 135
Who s using Couchbase Mobile today
©2015 Couchbase Inc. 136
Common Mobile Use CasesCommon Mobile Use Cases
©2015 Couchbase Inc. 137
Offline Data Access
The Problem
• When an app doesn’t work offline, users are cut off from important transactions
• Mobile apps need to work regardless of network connection
How Couchbase Mobile helps
• Couchbase Lite stores data locally so your app isn’t dependent on the network
• If a network connection is lost, the database continues to operate and is automatically
synced with the cloud when the network is restored
©2015 Couchbase Inc. 138
Local Caching
The Problem
• Today’s mobile applications require fast access to data
• Slow access to data results in slow mobile apps, unhappy users and loss of
productivity
How Couchbase Mobile helps
• By storing and caching application data locally in the embedded Couchbase Lite
database, you eliminate the need to constantly request data from the server
• You can synchronize data automatically with Sync Gateway
©2015 Couchbase Inc. 139
Digitization of Paper Assets
The Problem
• Reducing operational time and costs is critical for any business, and mobile
application deployments are a key component of making it happen
• By digitizing paper assets, you save time and resources, reduce storage, and cut
logistics costs
How Couchbase Mobile helps
• Store paper assets with Couchbase Mobile, both locally and in the cloud
• Your data is securely synced between devices and the cloud
©2015 Couchbase Inc. 140
Content Delivery & Storage
The Problem
• Guaranteed delivery and storage of assets is crucial for a great user experience
• Users need real-time data updates
How Couchbase Mobile helps
• Couchbase Mobile gives you the ability to store and access data locally so content is
always available
• Data can be synced between the cloud and device, allowing business-critical
updates to be reflected in real-time
©2015 Couchbase Inc. 141
Real-time Asset Tracking
The Problem
• Real-time asset tracking is a key requirement in mobile applications across many
industries
• Tracking, storing, and delivering real-time updates can be tricky to manage
How Couchbase Mobile helps
• Asset tracking data can be shared with supervisors and/or across field employees
• Deliver updates on shipments, routing, service orders, ETAs, or anything else in real-
time with Couchbase Mobile
©2015 Couchbase Inc. 142
Peer-to-Peer Usage
The Problem
• Without a network connection, devices can’t talk to each other
• In isolated environments like retail stores, airplanes, the field, or any other places
where the network isn’t reliable, this can cause lost revenue and productivity
How Couchbase Mobile helps
• With Couchbase Mobile, connect devices directly to each other with peer-to-peer
replication
• Apps can connect to exchange data and will continue to work regardless of network
availability
©2015 Couchbase Inc. 143
User Data/Preferences Storage
The Problem
• Storing user data and preferences across devices and the cloud is complex for
games, CRM systems, e-commerce apps, or any other app
• Making sure user information is secure, both on-device and in transport, is difficult
How Couchbase Mobile helps
• Couchbase Mobile gives your users a consistent experience across all of their
devices
• Securely store and sync user data like preferences, profiles, sign-in, game state and
more across devices
LabTime!
Bonus Labs
©2015 Couchbase Inc. 145
Couchbase Server and Intel’s high-performance processors and storage
subsystems combine to power millions of operations/sec for the world’s
largest customer 360 systems and profile stores, popular online games, and
more. Additional information about Couchbase and Intel can be found here:
http://www.couchbase.com/partners/intel
Power with Intel
©2015 Couchbase Inc. 146
Consulting and Expert Services
Packaged Services
– Quick Start
– Architecture Reviews
– Health Checks
– Upgrade Services
– Managed Services
Custom Consulting
– Migration
– Application Integration
– Big-Data Integration, Analytics, Reporting
– Others
Email inquiries: Services@couchbase.com OR Contact your Account Representative
©2015 Couchbase Inc. 147
Couchbase Hands-OnTraining
For System Admins:
§ CS300 Couchbase NoSQL Server Administration, 4-day
For Developers:
§ CD220 Developing Couchbase NoSQL Applications, 3-day
For Anyone:
§ Free Online On-Demand Courses: http://training.couchbase.com/online
Email inquiries: training@couchbase.com
©2015 Couchbase Inc. 148
Additional Resources
148
§ Getting Started: http://www.couchbase.com/download
§ Couchbase Labs: http://github.com/couchbaselabs
§ Developer Portal: http://developer.couchbase.com
§ General Docs: http://docs.couchbase.com
§ Query Portal: http://query.couchbase.com
§ Blog: http://blog.couchbase.com
§ Forum: http://forums.couchbase.com
§ Sample Applications:
§ https://github.com/couchbaselabs?utf8=%E2%9C%93&query=try
§ https://github.com/couchbaselabs?utf8=%E2%9C%93&query=beer
Couchbase Day

Mais conteúdo relacionado

Mais procurados

Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisArnab Mitra
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
 
Integrating Big Data Technologies
Integrating Big Data TechnologiesIntegrating Big Data Technologies
Integrating Big Data TechnologiesDATAVERSITY
 
Apache sqoop with an use case
Apache sqoop with an use caseApache sqoop with an use case
Apache sqoop with an use caseDavin Abraham
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012Jay Patel
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesNeo4j
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Araf Karsh Hamid
 
Data Mesh at Nordea with Kafka and Hadoop
Data Mesh at Nordea with Kafka and HadoopData Mesh at Nordea with Kafka and Hadoop
Data Mesh at Nordea with Kafka and HadoopRaduDragusin1
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결confluent
 
Hci solution with VxRail
Hci solution with VxRailHci solution with VxRail
Hci solution with VxRailAnton An
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Severalnines
 
Sqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionSqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionDataWorks Summit
 
The Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewThe Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewNeo4j
 
Reddit/Quora Software System Design
Reddit/Quora Software System DesignReddit/Quora Software System Design
Reddit/Quora Software System DesignElia Ahadi
 
Getting Started with HBase
Getting Started with HBaseGetting Started with HBase
Getting Started with HBaseCarol McDonald
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveDataWorks Summit
 
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...DataStax
 

Mais procurados (20)

Introduction to Amazon DynamoDB
Introduction to Amazon DynamoDBIntroduction to Amazon DynamoDB
Introduction to Amazon DynamoDB
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
 
Integrating Big Data Technologies
Integrating Big Data TechnologiesIntegrating Big Data Technologies
Integrating Big Data Technologies
 
Apache sqoop with an use case
Apache sqoop with an use caseApache sqoop with an use case
Apache sqoop with an use case
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
 
Data Mesh at Nordea with Kafka and Hadoop
Data Mesh at Nordea with Kafka and HadoopData Mesh at Nordea with Kafka and Hadoop
Data Mesh at Nordea with Kafka and Hadoop
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결
 
Hci solution with VxRail
Hci solution with VxRailHci solution with VxRail
Hci solution with VxRail
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
 
Sqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionSqoop on Spark for Data Ingestion
Sqoop on Spark for Data Ingestion
 
The Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewThe Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j Overview
 
Reddit/Quora Software System Design
Reddit/Quora Software System DesignReddit/Quora Software System Design
Reddit/Quora Software System Design
 
Getting Started with HBase
Getting Started with HBaseGetting Started with HBase
Getting Started with HBase
 
Sqoop
SqoopSqoop
Sqoop
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep Dive
 
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
 

Destaque

Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Couchbase Chennai meetup #3 What's new in Couchbase Server & Couchbase Mobile
Couchbase Chennai meetup #3  What's new in Couchbase Server & Couchbase MobileCouchbase Chennai meetup #3  What's new in Couchbase Server & Couchbase Mobile
Couchbase Chennai meetup #3 What's new in Couchbase Server & Couchbase MobileKarthik Babu Sekar
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseCecile Le Pape
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingKeshav Murthy
 
Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesKeshav Murthy
 
Query in Couchbase. N1QL: SQL for JSON
Query in Couchbase.  N1QL: SQL for JSONQuery in Couchbase.  N1QL: SQL for JSON
Query in Couchbase. N1QL: SQL for JSONKeshav Murthy
 
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLBringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLKeshav Murthy
 
N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.Keshav Murthy
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesKeshav Murthy
 
Deep dive into N1QL: SQL for JSON: Internals and power features.
Deep dive into N1QL: SQL for JSON: Internals and power features.Deep dive into N1QL: SQL for JSON: Internals and power features.
Deep dive into N1QL: SQL for JSON: Internals and power features.Keshav Murthy
 
Couchbase @ Big Data France 2016
Couchbase @ Big Data France 2016Couchbase @ Big Data France 2016
Couchbase @ Big Data France 2016Cecile Le Pape
 
Couchbase Performance Benchmarking
Couchbase Performance BenchmarkingCouchbase Performance Benchmarking
Couchbase Performance BenchmarkingRenat Khasanshyn
 
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
 

Destaque (15)

Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Couchbase Data Pipeline
Couchbase Data PipelineCouchbase Data Pipeline
Couchbase Data Pipeline
 
Couchbase Chennai meetup #3 What's new in Couchbase Server & Couchbase Mobile
Couchbase Chennai meetup #3  What's new in Couchbase Server & Couchbase MobileCouchbase Chennai meetup #3  What's new in Couchbase Server & Couchbase Mobile
Couchbase Chennai meetup #3 What's new in Couchbase Server & Couchbase Mobile
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and Couchbase
 
Drilling on JSON
Drilling on JSONDrilling on JSON
Drilling on JSON
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and Indexing
 
Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune Queries
 
Query in Couchbase. N1QL: SQL for JSON
Query in Couchbase.  N1QL: SQL for JSONQuery in Couchbase.  N1QL: SQL for JSON
Query in Couchbase. N1QL: SQL for JSON
 
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLBringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
 
N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & Queries
 
Deep dive into N1QL: SQL for JSON: Internals and power features.
Deep dive into N1QL: SQL for JSON: Internals and power features.Deep dive into N1QL: SQL for JSON: Internals and power features.
Deep dive into N1QL: SQL for JSON: Internals and power features.
 
Couchbase @ Big Data France 2016
Couchbase @ Big Data France 2016Couchbase @ Big Data France 2016
Couchbase @ Big Data France 2016
 
Couchbase Performance Benchmarking
Couchbase Performance BenchmarkingCouchbase Performance Benchmarking
Couchbase Performance Benchmarking
 
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
 

Semelhante a Couchbase Day

Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
 Migration and Coexistence between Relational and NoSQL Databases by Manuel H... Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...Big Data Spain
 
Under the Hood - Couchbase Server Architecture - June 2015
Under the Hood - Couchbase Server Architecture - June 2015Under the Hood - Couchbase Server Architecture - June 2015
Under the Hood - Couchbase Server Architecture - June 2015Cihan Biyikoglu
 
Real time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and CouchbaseReal time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and CouchbaseWill Gardella
 
Couchbase and Apache Spark
Couchbase and Apache SparkCouchbase and Apache Spark
Couchbase and Apache SparkMatt Ingenthron
 
Real Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseReal Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseManuel Hurtado
 
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part20812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2Raul Chong
 
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !! Karthik Babu Sekar
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraVictor Coustenoble
 
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easyKarthik Babu Sekar
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...confluent
 
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...MongoDB
 
Building Fast Applications for Streaming Data
Building Fast Applications for Streaming DataBuilding Fast Applications for Streaming Data
Building Fast Applications for Streaming Datafreshdatabos
 
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020HostedbyConfluent
 
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?brianlangbecker
 
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...MongoDB
 
The Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical ApproachThe Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical ApproachDATAVERSITY
 
Interactive Analytics with the Starburst Presto + Alluxio stack for the Cloud
Interactive Analytics with the Starburst Presto + Alluxio stack for the CloudInteractive Analytics with the Starburst Presto + Alluxio stack for the Cloud
Interactive Analytics with the Starburst Presto + Alluxio stack for the CloudAlluxio, Inc.
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 

Semelhante a Couchbase Day (20)

Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
 Migration and Coexistence between Relational and NoSQL Databases by Manuel H... Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
 
Under the Hood - Couchbase Server Architecture - June 2015
Under the Hood - Couchbase Server Architecture - June 2015Under the Hood - Couchbase Server Architecture - June 2015
Under the Hood - Couchbase Server Architecture - June 2015
 
Real time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and CouchbaseReal time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and Couchbase
 
Couchbase and Apache Spark
Couchbase and Apache SparkCouchbase and Apache Spark
Couchbase and Apache Spark
 
Real Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseReal Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & Couchbase
 
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part20812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
 
IBM - Introduction to Cloudant
IBM - Introduction to CloudantIBM - Introduction to Cloudant
IBM - Introduction to Cloudant
 
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
 
Introduction to Couchbase
Introduction to CouchbaseIntroduction to Couchbase
Introduction to Couchbase
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache Cassandra
 
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easy
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
 
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
 
Building Fast Applications for Streaming Data
Building Fast Applications for Streaming DataBuilding Fast Applications for Streaming Data
Building Fast Applications for Streaming Data
 
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
 
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
 
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
 
The Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical ApproachThe Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical Approach
 
Interactive Analytics with the Starburst Presto + Alluxio stack for the Cloud
Interactive Analytics with the Starburst Presto + Alluxio stack for the CloudInteractive Analytics with the Starburst Presto + Alluxio stack for the Cloud
Interactive Analytics with the Starburst Presto + Alluxio stack for the Cloud
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 

Mais de Idan Tohami

Simplify Your Security with Cybowall
Simplify Your Security with CybowallSimplify Your Security with Cybowall
Simplify Your Security with CybowallIdan Tohami
 
AML Transaction Monitoring Tuning Webinar
AML Transaction Monitoring Tuning WebinarAML Transaction Monitoring Tuning Webinar
AML Transaction Monitoring Tuning WebinarIdan Tohami
 
Robotic Process Automation (RPA) Webinar - By Matrix-IFS
Robotic Process Automation (RPA) Webinar - By Matrix-IFSRobotic Process Automation (RPA) Webinar - By Matrix-IFS
Robotic Process Automation (RPA) Webinar - By Matrix-IFSIdan Tohami
 
Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...
Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...
Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...Idan Tohami
 
Robotic Automation Process (RPA) Webinar - By Matrix-IFS
Robotic Automation Process (RPA) Webinar - By Matrix-IFSRobotic Automation Process (RPA) Webinar - By Matrix-IFS
Robotic Automation Process (RPA) Webinar - By Matrix-IFSIdan Tohami
 
Robotic Automation Process (RPA) Brochure - By Matrix-IFS
Robotic Automation Process (RPA) Brochure - By Matrix-IFSRobotic Automation Process (RPA) Brochure - By Matrix-IFS
Robotic Automation Process (RPA) Brochure - By Matrix-IFSIdan Tohami
 
The Journey to the Hybrid Multi Cloud
The Journey to the Hybrid Multi CloudThe Journey to the Hybrid Multi Cloud
The Journey to the Hybrid Multi CloudIdan Tohami
 
Introdction to Cloud Regulation for Enterprise by 2Bsecure
Introdction to Cloud Regulation for Enterprise by 2BsecureIntrodction to Cloud Regulation for Enterprise by 2Bsecure
Introdction to Cloud Regulation for Enterprise by 2BsecureIdan Tohami
 
Enterprise Journey to the Cloud - Opening Remarks
Enterprise Journey to the Cloud  - Opening RemarksEnterprise Journey to the Cloud  - Opening Remarks
Enterprise Journey to the Cloud - Opening RemarksIdan Tohami
 
Ready.Set.Cloud - Enterprise Cloud Migration Framework
Ready.Set.Cloud - Enterprise Cloud Migration FrameworkReady.Set.Cloud - Enterprise Cloud Migration Framework
Ready.Set.Cloud - Enterprise Cloud Migration FrameworkIdan Tohami
 
Journey to the Public Cloud
Journey to the Public CloudJourney to the Public Cloud
Journey to the Public CloudIdan Tohami
 
Google Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneGoogle Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneIdan Tohami
 
HDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite ActivityHDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite ActivityIdan Tohami
 
Cloud Regulations and Security Standards by Ran Adler
Cloud Regulations and Security Standards by Ran AdlerCloud Regulations and Security Standards by Ran Adler
Cloud Regulations and Security Standards by Ran AdlerIdan Tohami
 
Azure Logic Apps by Gil Gross, CloudZone
Azure Logic Apps by Gil Gross, CloudZoneAzure Logic Apps by Gil Gross, CloudZone
Azure Logic Apps by Gil Gross, CloudZoneIdan Tohami
 
AWS Fundamentals @Back2School by CloudZone
AWS Fundamentals @Back2School by CloudZoneAWS Fundamentals @Back2School by CloudZone
AWS Fundamentals @Back2School by CloudZoneIdan Tohami
 
Cloud Accelerated Genomics
Cloud Accelerated GenomicsCloud Accelerated Genomics
Cloud Accelerated GenomicsIdan Tohami
 
Achieving HIPAA on GCP
Achieving HIPAA on GCPAchieving HIPAA on GCP
Achieving HIPAA on GCPIdan Tohami
 
Microsoft Azure and Couchbase
Microsoft Azure and CouchbaseMicrosoft Azure and Couchbase
Microsoft Azure and CouchbaseIdan Tohami
 

Mais de Idan Tohami (20)

Simplify Your Security with Cybowall
Simplify Your Security with CybowallSimplify Your Security with Cybowall
Simplify Your Security with Cybowall
 
AML Transaction Monitoring Tuning Webinar
AML Transaction Monitoring Tuning WebinarAML Transaction Monitoring Tuning Webinar
AML Transaction Monitoring Tuning Webinar
 
Robotic Process Automation (RPA) Webinar - By Matrix-IFS
Robotic Process Automation (RPA) Webinar - By Matrix-IFSRobotic Process Automation (RPA) Webinar - By Matrix-IFS
Robotic Process Automation (RPA) Webinar - By Matrix-IFS
 
Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...
Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...
Open Banking / PSD2 & GDPR Regulations and How They Are Changing Fraud & Fina...
 
Robotic Automation Process (RPA) Webinar - By Matrix-IFS
Robotic Automation Process (RPA) Webinar - By Matrix-IFSRobotic Automation Process (RPA) Webinar - By Matrix-IFS
Robotic Automation Process (RPA) Webinar - By Matrix-IFS
 
Robotic Automation Process (RPA) Brochure - By Matrix-IFS
Robotic Automation Process (RPA) Brochure - By Matrix-IFSRobotic Automation Process (RPA) Brochure - By Matrix-IFS
Robotic Automation Process (RPA) Brochure - By Matrix-IFS
 
The Journey to the Hybrid Multi Cloud
The Journey to the Hybrid Multi CloudThe Journey to the Hybrid Multi Cloud
The Journey to the Hybrid Multi Cloud
 
Introdction to Cloud Regulation for Enterprise by 2Bsecure
Introdction to Cloud Regulation for Enterprise by 2BsecureIntrodction to Cloud Regulation for Enterprise by 2Bsecure
Introdction to Cloud Regulation for Enterprise by 2Bsecure
 
Enterprise Journey to the Cloud - Opening Remarks
Enterprise Journey to the Cloud  - Opening RemarksEnterprise Journey to the Cloud  - Opening Remarks
Enterprise Journey to the Cloud - Opening Remarks
 
Vmware on aws
Vmware on awsVmware on aws
Vmware on aws
 
Ready.Set.Cloud - Enterprise Cloud Migration Framework
Ready.Set.Cloud - Enterprise Cloud Migration FrameworkReady.Set.Cloud - Enterprise Cloud Migration Framework
Ready.Set.Cloud - Enterprise Cloud Migration Framework
 
Journey to the Public Cloud
Journey to the Public CloudJourney to the Public Cloud
Journey to the Public Cloud
 
Google Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneGoogle Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZone
 
HDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite ActivityHDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite Activity
 
Cloud Regulations and Security Standards by Ran Adler
Cloud Regulations and Security Standards by Ran AdlerCloud Regulations and Security Standards by Ran Adler
Cloud Regulations and Security Standards by Ran Adler
 
Azure Logic Apps by Gil Gross, CloudZone
Azure Logic Apps by Gil Gross, CloudZoneAzure Logic Apps by Gil Gross, CloudZone
Azure Logic Apps by Gil Gross, CloudZone
 
AWS Fundamentals @Back2School by CloudZone
AWS Fundamentals @Back2School by CloudZoneAWS Fundamentals @Back2School by CloudZone
AWS Fundamentals @Back2School by CloudZone
 
Cloud Accelerated Genomics
Cloud Accelerated GenomicsCloud Accelerated Genomics
Cloud Accelerated Genomics
 
Achieving HIPAA on GCP
Achieving HIPAA on GCPAchieving HIPAA on GCP
Achieving HIPAA on GCP
 
Microsoft Azure and Couchbase
Microsoft Azure and CouchbaseMicrosoft Azure and Couchbase
Microsoft Azure and Couchbase
 

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Couchbase Day

  • 1. Wi-Fi: Network – Matrix | Password - 11223344
  • 2. ©2015 Couchbase Inc. 2 Today’s Agenda Registration and Continental Breakfast § Labs and Environment Setup Introduction to NoSQL § Why NoSQL? § Introduction to Couchbase Couchbase Architecture § Single Node Operations § Cluster Operations Break HA and DR § Availability and XDCR § Backup/Restore § Security 12:00 – Lunch Break Developing with Couchbase § Couchbase SDKs Couchbase Indexing § Couchbase GSI andViews § Views Overview Break Indexing and Query § Couchbase Indexes (GSI/MOI) § Couchbase Query (N1QL) Couchbase Mobile § Overview Adjourn § Close
  • 4. ©2015 Couchbase Inc. 4 Why companies need a new database solution § What are the biggest problems with Relational Databases that are driving adoption of NoSQL? LACKOFFLEXIBILITY/ HASRIGIDSCHEMAS INABILITY TOSCALEOUT PERFORMANCE CHALLENGES 49% 69% 50% 47% 44% COST ALLOFTHEABOVE 35% 29% 16% 12%
  • 5. ©2015 Couchbase Inc. 5 Dynamo October 2007 Cassandra August 2008 Bigtable November 2006 Voldemort February 2009 Very few organizations want to (fewer can) build and maintain database software technology. But every organization participating in the digital economy needs this technology. Why NoSQL? New data solutions to address emerging needs: § Performance and Scalability § High Availability with Data Synchronization (multi-datacenter) § Flexible Schema to accommodate frequent changes § Transparent/Auto-Sharding without application participation § Distributed System for Querying § Managed Cache
  • 6. ©2015 Couchbase Inc. 6Scaling out flattens the cost and performance curves NoSQL Database Scales Out Cost and performance mirrors app tier Users NoSQL Distributed Data Store Web/App Server Tier Application Scales Out Just add more commodity web servers Users System Cost Application Performance Application Performance System Cost Why NoSQL
  • 7. ©2015 Couchbase Inc. 7 How has Couchbase Server evolved beyond NoSQL? § Discreet, scalable services (data, index, query) § Filtering for cross data center replication § SQL-based query language and secondary indexing § Geospatial search and indexing § CRUD, prepared statements, and covering indexes § Memory-optimized Indexes § Array Indexing within Nested JSON § Graphical QueryW0rkbench § Sub-Document API § LDAP integration and auditing; RBAC, X-509 Certificates
  • 8. ©2015 Couchbase Inc. 8 Next Generation Data Management Architecture Data Sources Enterprise Applications Social Media Web & Ecommerce Mobile AppsSensor Data Mainframe External Data System Logs Data Integration Speed Layer Batch Layer Data Management Data Lake Data Warehouse Business Intelligence Dashboards Query ToolsData Access In Memory Cache Data Serving Layer
  • 9. ©2015 Couchbase Inc. 9 Next Generation Data Management Architecture Enterprise Applications Social Media Web & Ecommerce Mobile AppsSensor Data MainframeExternal DataSystem Logs Speed Layer Batch Layer Data Lake Business Intelligence Dashboards Query Tools In Memory Cache Data Warehouse N1QL Query Workbench Data Sources Data Integration Data Management Data Access Data Serving Layer Real Time Data Ingestion
  • 10. ©2015 Couchbase Inc. 10 Couchbase Ecosystem
  • 11. ©2015 Couchbase Inc. 11 How Does Couchbase Fit In Big Data? Couchbase and Hadoop are complementary.
  • 12. ©2015 Couchbase Inc. 12 Couchbase and Hadoop New Data Stream MergedView All Data Precompute Views (Map Reduce) Process Stream Incremental Views Partial Aggregate Partial Aggregate Partial Aggregate Real-Time Data Batch Recompute BatchViews Real-TimeViews Real-Time Increment Merge Batch Layer Serving Layer Speed Layer Couchbase Hadoop Connector (Sqoop)
  • 13. ©2015 Couchbase Inc. 13 Couchbase Hadoop Connector (Sqoop) Couchbase and Hadoop New Data Stream MergedView All Data Precompute Views (Map Reduce) Process Stream Incremental Views Partial Aggregate Partial Aggregate Partial Aggregate Real-Time Data Batch Recompute BatchViews Real-TimeViews Real-Time Increment Merge Batch Layer Serving Layer Speed Layer Stream / Data Ingestion Store Incremental Data / Stream processing Serving merged results / responses
  • 14. ©2015 Couchbase Inc. 14 Couchbase Server on Docker and OrchestrationTechnologies Official Docker Support with MacOS, Ubuntu is coming Couchbase & Containers
  • 15. ©2015 Couchbase Inc. 15 Platform as a Service § Couchbase runs on PaaS environments Current Focus Future Plan
  • 16. ©2015 Couchbase Inc. 16 Infrastructure as a Service Couchbase supports IaaS environments § Available in AWS marketplace § BYOL or hourly pricing § Available in Azure marketplace § BYOL or hourly pricing § Marketplace image in the works § BYOL at the moment § Hourly pricing soon Other providers supported
  • 18. ©2015 Couchbase Inc. 18 Couchbase Server Defined § Couchbase Server 4.X is the first NoSQL Database to enable you to develop with agility and operate at any scale. Managed Cache Key-Value Store Document Database Embedded Database Sync Management
  • 19. ©2015 Couchbase Inc. 19 The Power of the Flexible JSON Schema Ability to store data in multiple ways • Denormalized single document, as opposed to normalizing data across multiple table • Dynamic Schema to add new values when needed
  • 20. ©2015 Couchbase Inc. 20 Document Fundamentals - Composition § Similar to primary keys in relational databases § Documents are partitioned based on the document ID § ID based document lookup is extremely fast § Must be unique § JSON § Binary - integers, strings, booleans § Common binary values include serialized objects, compressed XML, compressed text, encrypted values Document ID or Key Value § CASValue (unique identifier for concurrency) § TTL § Flags (optional client library metadata) § Revision # Metadata Document Document ID / Key MetadataValue
  • 21. ©2015 Couchbase Inc. 21 Storing And Retrieving Documents
  • 22. ©2015 Couchbase Inc. 22 Couchbase Data Access • Everything is layered on top of KeyValue • A Document store is a special case of Key- Value • Views provide aggregation and real-time analytics through incremental map-reduce • Global Secondary Indexes provide low latency/high throughput indexes • N1QL is a language that provides a powerful and expressive way of accessing documents
  • 24. ©2015 Couchbase Inc. 24 Couchbase Architecture • Data Service – builds and maintains Distributed secondary indexes (MapReduceViews) • Indexing Engine – builds and maintains Global Secondary Indexes • Query Engine – plans, coordinates, and executes queries against either Global or Distributed indexes • Cluster Manager – configuration, heartbeat, statistics, RESTful Management interface
  • 25. ©2015 Couchbase Inc. 25 Couchbase Read Operation APPLICATION SERVER MANAGED CACHE DISK DISK QUEUE REPLICATION QUEUE DOC 1 GET DOC 1 DOC 1
  • 26. ©2015 Couchbase Inc. 26 APPLICATION SERVER MANAGED CACHE DISK DISK QUEUE REPLICATION QUEUE Write Operation DOC 1 DOC 1DOC 1
  • 27. ©2015 Couchbase Inc. 27 Cache Ejection APPLICATION SERVER MANAGED CACHE DISK DISK QUEUE REPLICATION QUEUE DOC 1 DOC 2DOC 3DOC 4DOC 5 DOC 1 DOC 2 DOC 3 DOC 4 DOC 5
  • 28. ©2015 Couchbase Inc. 28 APPLICATION SERVER MANAGED CACHE DISK DISK QUEUE REPLICATION QUEUE DOC 1 Cache Miss DOC 2 DOC 3 DOC 4 DOC 5 DOC 2 DOC 3 DOC 4 DOC 5 GET DOC 1 DOC 1 DOC 1
  • 30. ©2015 Couchbase Inc. 30 Auto sharding – Bucket and vBuckets vB Data buckets vB 1 ….. 1024 Active Virtual buckets vB vB 1 ….. 1024 Replica Virtual buckets
  • 31. ©2015 Couchbase Inc. 31 Cluster Map Couchbase Cluster CLUSTER MAP Hashing Algorithm CRC32 vBucket2 vBucket3 vBucket4 vBucket5 vBucket6 vBucket7 vBucket1024 vBucket1 ... Couchbase SDK Couchbase Cluster CLUSTER MAP Hashing Algorithm CRC32 vBucket2 vBucket3 vBucket4 vBucket5 vBucket6 vBucket7 vBucket1024 vBucket1 ... Couchbase SDK
  • 32. ©2015 Couchbase Inc. 32 ACTIVE ACTIVE ACTIVE REPLICA REPLICA REPLICA Couchbase Server 1 Couchbase Server 2 Couchbase Server 3 Basic Operation SHARD 5 SHARD 2 SHARD 9 SHARD SHARD SHARD SHARD 4 SHARD 7 SHARD 8 SHARD SHARD SHARD SHARD 1 SHARD 3 SHARD 6 SHARD SHARD SHARD SHARD 4 SHARD 1 SHARD 8 SHARD SHARD SHARD SHARD 6 SHARD 3 SHARD 2 SHARD SHARD SHARD SHARD 7 SHARD 9 SHARD 5 SHARD SHARD SHARD
  • 33. ©2015 Couchbase Inc. 33 Rebalance ACTIVE ACTIVE ACTIVE REPLICA REPLICA REPLICA Couchbase Server 1 Couchbase Server 2 Couchbase Server 3 ACTIVE ACTIVE REPLICA REPLICA Couchbase Server 4 Couchbase Server 5 SHARD 5 SHARD 2 SHARD SHARD SHARD 4 SHARD SHARD SHARD 1 SHARD 3 SHARD SHARD SHARD 4 SHARD 1 SHARD 8 SHARD SHARD SHARD SHARD 6 SHARD 3 SHARD 2 SHARD SHARD SHARD SHARD 7 SHARD 9 SHARD 5 SHARD SHARD SHARD SHARD 7 SHARD SHARD 6 SHARD SHARD 8 SHARD 9 SHARD READ/WRITE/UPDATE
  • 34. ©2015 Couchbase Inc. 34 Fail Over ACTIVE ACTIVE ACTIVE REPLICA REPLICA REPLICA Couchbase Server 1 Couchbase Server 2 Couchbase Server 3 ACTIVE ACTIVE REPLICA REPLICA Couchbase Server 4 Couchbase Server 5 SHARD 5 SHARD 2 SHARD SHARD SHARD 4 SHARD SHARD SHARD 1 SHARD 3 SHARD SHARD SHARD 4 SHARD 1 SHARD 8 SHARD SHARD SHARDSHARD 6 SHARD 2 SHARD SHARD SHARD SHARD 7 SHARD 9 SHARD 5 SHARD SHARD SHARD SHARD 7 SHARD SHARD 6 SHARDSHARD 8 SHARD 9 SHARD SHARD 3 SHARD 1 SHARD 3 SHARD
  • 35. High Availability with Couchbase 35
  • 36. ©2015 Couchbase Inc. 36 Recovering from a Fail Over ACTIVE ACTIVE ACTIVE REPLICA REPLICA REPLICA Couchbase Server 1 Couchbase Server 2 Couchbase Server 3 ACTIVE ACTIVE REPLICA REPLICA Couchbase Server 4 Couchbase Server 5 SHARD 5 SHARD 2 SHARD SHARD SHARD 4 SHARD SHARD SHARD 1 SHARD 3 SHARD SHARD SHARD 4 SHARD 1 SHARD 8 SHARD SHARD SHARDSHARD 6 SHARD 2 SHARD SHARD SHARD SHARD 7 SHARD 9 SHARD 5 SHARD SHARD SHARD SHARD 7 SHARD SHARD 6 SHARDSHARD 8 SHARD 9 SHARD SHARD 3 SHARD 1 SHARD 3 SHARD
  • 37. ©2015 Couchbase Inc. 37 Recovering from Failover Three options: 1. Remove the node 2. Full recovery 3. Delta node recovery
  • 38. ©2015 Couchbase Inc. 38 Delta Node Recovery Recover Failed Nodes with incremental Catch-up § Improve recovery time for nodes with large datasets § Add a failed node into cluster and recover data from where it left off
  • 39. ©2015 Couchbase Inc. 39 Rack Zone Awareness – Server Groups Informs Couchbase as to the physical distribution of nodes in racks or availability groups. The Active vBuckets in Server 1 will have its replica’s in a different group. Never in the same group. Couchbase Server 3 Couchbase Server 2 Couchbase Server 6 Couchbase Server 5 Couchbase Server 4 Couchbase Server 9 Couchbase Server 8 Couchbase Server 7 Ensures that replica vBuckets are distributed across groups REPLICA REPLICA Group: A Nodes 1,2,3 Group: B Nodes 4,5,6 Group: C Nodes 7,8,9 Couchbase Server 1 ACTIVE
  • 42. ©2015 Couchbase Inc. 42 Cross Datacenter Replication (XDCR) TO OTHER NODE APPLICATION SERVER MANAGED CACHE DISK DISK QUEUE REPLICATION QUEUE XDCR QUEUE TO OTHER CLUSTER DOC 1 DOC 1DOC 1DOC 1
  • 43. ©2015 Couchbase Inc. 43 Cross Datacenter Replication (XDCR) TO OTHER NODE APPLICATION SERVER MANAGED CACHE DISK DISK QUEUE REPLICATION QUEUE XDCR QUEUE TO OTHER CLUSTER DOC 1 DOC 1DOC 1DOC 1 Single-node type means easier administration and scaling CLUSTER REPLICATION vBucket REPLICAS
  • 44. ©2015 Couchbase Inc. 44 XDCR: Cluster Topology Aware • Applications can access both Clusters (active-active) • Can provide filtered replication • One-one, one-many, many-one • Differently sized clusters • Different HW platforms • Mixed versions supported (Upgrades)
  • 45. ©2015 Couchbase Inc. 45 Cross Datacenter Replication (XDCR) Unidirectional or Bidirectional Replication Unidirectional § Hot spare / Disaster Recovery § Development/Testing copies § Connectors (Solr, Elasticsearch) § Integrate to custom consumer Bidirectional § Multiple Active Masters § Disaster Recovery § Datacenter Locality
  • 47. ©2015 Couchbase Inc. 47 Key Features § Zero downtime backup and restore § Single utility to manage multiple clusters § Restore from any point, to any bucket or topology § Fully differential – merge backups to maintain desired restore points § Built-in concurrency control § Resume interrupted backups § Compaction reduces storage requirements
  • 48. ©2015 Couchbase Inc. 48 Enterprise Backup and Restore § >10x Faster Backups § Better Data Protection with Enterprise Backup Restore – Scale to larger datasets – Fast backups and restores – Better Consistency in backup data – Resilient to failures/Topology Changes 288 25 0 50 100 150 200 250 300 350 BackUpMB/Sec 4.5 Backup Speed 4.1 Backup Speed
  • 49. ©2015 Couchbase Inc. 49 Data Import § Create backup repo /opt/couchbase/bin/cbbackupmgr config --archive /tmp/backup --repo demo § Import of sample data /opt/couchbase/bin/cbbackupmgr json --host couchbase://172.23.107.27:8091 --username Administrator --password password --bucket travel-sample --dataset /opt/couchbase/samples/travel-sample.zip --format sample § Import of list data /opt/couchbase/bin/cbbackupmgr json --host couchbase://172.23.107.27:8091 --username Administrator --password password --bucket chicago --dataset file:///root/data/companies.json --format list --generate-key %permalink%::#MONO_INCR#
  • 50. Demo
  • 52. ©2015 Couchbase Inc. 52 Security with Couchbase § Administrative Security: § Admin user (full access) vs. Read-only user (monitoring, developer access) § SSL encryption to REST API and Web UI § HTTP access log § Data Security: § Applications connect via SASL with single user/pass § Data-at-Rest encryption via partnership withVormetric § SSL encryption for over-the-wire § Couchbase 4.0: § LDAP integration § More extensive administrative action auditing More at: http://docs.couchbase.com/admin/admin/security/security-best-practices.html
  • 53. ©2015 Couchbase Inc. 53 Couchbase authentication overview § Application authentication § Buckets are protected with challenge-response SASL protocol § AuthN happens over CRAM-MD5 § Admin authentication § Authentication through admin username and password § Authentication through LDAP (New in 4.0) AUTHENTICATION
  • 54. ©2015 Couchbase Inc. 54 Couchbase authorization overview § Application data access § Full access to the bucket application is connected to § Admin access § Full administrator has full privileges on the cluster § Read-only administrator cannot change cluster settings AUTHORIZATION
  • 55. ©2015 Couchbase Inc. 55 Couchbase encryption overview § Data-in-motion encryption § Client-server communication can be encrypted using SSL § Secure admin access using SSL over port 18091 § Secure view access using SSL over port 18092 § Secure XDCR for encryption across datacenters Track all Access SERVER 3SERVER 1 SERVER 2 Couchbase Server – New York SERVER 3SERVER 1 SERVER 2 Couchbase Server – London SSL Client applications Secure XDCR over SSL Admin access over port 18091 SSL View access over port 18092 SSL https://couchbase_server:18091/… https://couchbase_server:18092/… ENCRYPTION
  • 56. ©2015 Couchbase Inc. 56 Couchbase encryption overview § Transparent data-at-rest encryption solution ENCRYPTION Storage Database Application User File Systems Volume Managers DSM Vormetric Data Security Manager on Enterprise premise or in cloud virtual or physical appliance • Centrally manage keys and policy • Virtual and physical appliance • High-availability with cluster • Multi-tenant and strong separation of duties • Proven 10,000+ device and key management scale • Web, CLI, API Interfaces • FIPS 140-2 certified Secure Personally Identifiable Information • User profile information • Login Credentials • IP Addresses
  • 57. ©2015 Couchbase Inc. 57 External identity management using LDAP Centralized identity management § Define multiple read-only admins and full-admins § Centralized security policy management for admin accounts for stronger passwords, password rotation, and auto lockouts Individual accountability. Simplified compliance. § Define UIDs in LDAP, and map UIDs to read-only / full admin role in Couchbase § Comprehensive audit trails with LDAP UIDs in audit records
  • 58. ©2015 Couchbase Inc. 58 New UI for authorizing LDAP administrators Turn on/off LDAP Add UIDs to read-only admins Add UIDs to full admins Set default behavior if UID is not mapped Testing credentials to verify what level of access Plus REST, and CLI integration for programmatic setup
  • 59. ©2015 Couchbase Inc. 59 Admin Auditing in Couchbase Rich audit events § Over 25 different, detailed admin audit events § Auditing for tools including backup Configurable auditing § Configurable file target § Support for time based log rotation and audit filtering Easy integration § JSON format allows for easy integration with downstream systems using flume, logstash, and syslogd
  • 60. ©2015 Couchbase Inc. 60 Auditing a successful login { "timestamp":"2015-02-20T08:48:49.408-08:00", "id":8192, "name":"login success", "description":"Successful login to couchbase cluster", "role":"admin", "real_userid": { "source":"ns_server", "user":"bjones” }, "sessionid":"0fd0b5305d1561ca2b10f9d795819b2e", "remote":{"ip":"172.23.107.165", "port":59383} } WHEN WHO WHAT HOW
  • 62. Lunch
  • 64. ©2015 Couchbase Inc. 64 Languages and Interfaces for Couchbase § Official SDKs – Java – .NET – Node.js – Python § For each of these we have – Full Document support – Interoperability – Common Programming Model Others: Erlang, Perl,TCL, Clojure, Scala - PHP - C - Go - Ruby JDBC and ODBC
  • 65. ©2015 Couchbase Inc. 65 Interacting with Data Cluster Bucket CRUD View Query N1QL Query
  • 66. ©2015 Couchbase Inc. 66 Couchbase SDKs § What does it mean to be a Couchbase SDK? Cluster Bucket CRUD Functional Give the application developer a concurrent API for basic (k-v) or document management API get() insert() replace() upsert() remove()
  • 67. ©2015 Couchbase Inc. 67 The Document § Documents are integral to the SDKs. § All SDKs support JSON format § In addition: Serialized objects, Unquoted Strings, Binary pass-through § A Document contains: 67 Property Description ID The bucket-unique identifier Content The value that is stored Expiry An expiration time CAS Check-and-Set identifier
  • 68. ©2015 Couchbase Inc. 68 Bucket API – Modifying Documents § insert() the document if it does not exist § replace() the document if it does exist § upsert() the document (insert or replace) § remove() the document § append() data to the document § prepend() data to the document § counter() for increment/decrement type operations
  • 69. ©2015 Couchbase Inc. 69 Bucket API – Retrieving Documents § get() the document § getFromReplica() if the master is not available § getAndTouch() to load the document and reset the expiry § getAndLock() to load the document and write-lock it
  • 70. ©2015 Couchbase Inc. 70 Unified API – DML, CAS Example 1. Two Clients retrieve the same document "XYZ" 2. Client A retrieves it first. 3. Client B then retrieves XYZ. Both clients will have the same CAS value for document XYZ 4. Client B tries to perform an update to document XYZ. The update succeeds as the CAS value was unchanged from when Client B initially retrieved the document. Once the update succeeds, the CAS value for XYZ changes. 5. Client A then tries to perform an update on XYZ immediately after Client B. The update will fail as Client A's CAS value is out of date. When Client B updated XYZ, the CAS value changed. ©2014 Couchbase, Inc.
  • 71. ©2015 Couchbase Inc. 71 Durability Options for writes APPLICATION SERVER CACHE DISK XDCR QUEUE TO OTHER CLUSTER CACHE DISK DISK QUEUE REPLICATION QUEUE APPLICATION SERVER DISK DISK QUEUE CACHE REPLICATION QUEUE DISK QUEUE DOC DOCDOC DOCDOCDOC DOC DOC CLUSTER 1 NODE 2 CLUSTER 2 NODE … CLUSTER 1 NODE 1 DOC ( PUT ) By default, a write operation is successful when the data has been written to the memory of the node with the active vBucket. Eventually (but pretty quickly), the data will also be written to persistent storage and to replica vBuckets. ( replicateTo ) write operation is successful when data has been written to both the active vBucket and replica vBuckets. ( persistTo ) write operation is successful when data has been written to persistent storage • Can be set to require writes to persistent storage for replicas. • Using persistTo will slow performance.
  • 72. ©2015 Couchbase Inc. 72 Bucket API – Querying § query() is possible for § Views § N1QL § Streams N response rows as they arrive from the server § Loads more than one Document based on Criteria § Typically used to satisfy secondary and advanced querying use cases
  • 75. ©2015 Couchbase Inc. 75 Which to choose – GSI vsViews Workloads New GSI in v4.X Map/ReduceViews Complex Reporting Just InTime Aggregation Pre-aggregated Ad-hoc Querying Ad-hoc View per Query Flexible Indexing Logic N1QL Functions Javascript Secondary Lookups Faster with Single Node Lookup Slower due to Scatter-Gather Range Scans Faster with Single Node Lookup Slower due to Scatter-Gather
  • 76. ©2015 Couchbase Inc. 76 Comparing GSI andViews Capabilities Global Secondary Indexes Map/ReduceViews Partitioning Model Independent – Indexing Service Aligned to Data – Data Service Scale Model Independently Scale Index Scale with Data Service Secondary Lookup Single Node Scatter-Gather Range Scan Single Node Scatter-Gather Grouping, Aggregates With N1QL Built-in withViews API Caching Managed Not Managed Storage ForestDB Couchstore Availability Identical Indexes load balanced Replica Based
  • 77. ©2015 Couchbase Inc. 77 Indexing Differences § Local secondary indexes (Views) – Co-located with data – Higher write performance / Lower read performance: scatter-gather – Map/ReduceViews: programmable indexer for complex reporting and indexing logic. – SpatialViews: Incremental R-tree indexing for powerful bounding-box queries – Full partition alignment and paired scalability with Data Service § Global secondary indexes (GSI / MOI) – Independently partitioned and independently scalable indexes in Indexing Service – Isolated from Key-Value operations – Low latency queries without compromising on mutation performance (insert/update/delete) – Higher query performance – Async writes to a large number of global indexes – Memory Optimized Indexes (MOI) alternate storage option to standard GSI - small memory footprint, optimized for lowest latency queries
  • 78. ©2015 Couchbase Inc. 78 Indexing with N1QL Indexing in N1QL Global and Local Indexes IndexingTypes for N1QL View Based Indexes • Local Indexes: • PartitionedAligned to Data • Auto Partitioning • Built in Replicas • Simple Scaling Model Global Secondary Indexes (GSI) • Global Indexes: • Independently Partitioned Indexes • Predictable High Performance at Scale • Sophisticated Scaling Model Controlled with USING VIEW|GSI in CREATE INDEX. Set per Index. Drop and Recreate the index using DROP INDEX & CREATE INDEX to change Index Type.
  • 80. ©2015 Couchbase Inc. 80 A little aboutViews… § Using views you can define – Primary indexes – Simple secondary indexes (most common use case) – Complex secondary, tertiary and composite indexes – Aggregations (reduction) § Built using MapReduce technology – Map and Reduce functions are written in Javascript
  • 81. ©2015 Couchbase Inc. 81 A little aboutViews… § Captures user-defined key/value pairs about a document into an index § Can execute logic on data during indexing § Able to express relationships too cumbersome to maintain in Key/Value § Incremental indexing essentially pre-computes query results § Higher latency compared to key/value lookups § Common Use Cases – Materialized view: project an alternate view of your document – Complex aggregates – Lightweight reporting
  • 82. ©2015 Couchbase Inc. 82 Queries run against stale indexes by default § stale=update_after (default if nothing is specified) • always get fastest response • can take two queries to read your own writes § stale=ok • auto update will trigger eventually • might not see your own writes for a few minutes • least frequent updates -> least resource impact § stale=false • Use with “set with persistence” if data needs to be included in view results • BUT be aware of delay it adds, only use when really required
  • 83. ©2015 Couchbase Inc. 83 Lightweight Reporting Example Document: { “date”: “2015-08-03T16:38:05.835Z”, “source”: “192.168.56.101”, “logtype”: “error”, “message”: “An error occurred during startup” } Map: function(doc, meta) { emit(dateToArray(doc.date), doc.logtype); }
  • 84. ©2015 Couchbase Inc. 84 Lightweight Reporting Example function(key, values, rereduce) { var response = {"warning" : 0, "error": 0, "fatal" : 0 }; for(i=0; i<values.length; i++) { if (rereduce) { response.warning = response.warning + values[i].warning; response.error = response.error + values[i].error; response.fatal = response.fatal + values[i].fatal; } else { if (values[i] == "warning") response.warning++; if (values[i] == "error" ) response.error++; if (values[i] == "fatal" ) response.fatal++; } } return response; }
  • 85. ©2015 Couchbase Inc. 85 Lightweight Reporting Example Query: ?group_level=2&startkey=[2010,7]&endkey=[2011,4] {"rows":[ {"key":[2010,7], "value":{"warning":4,"error":2,"fatal":0}}, {"key":[2010,8], "value":{"warning":4,"error":3,"fatal":0}}, {"key":[2010,9], "value":{"warning":4,"error":6,"fatal":0}}, {"key":[2010,10],"value":{"warning":7,"error":6,"fatal":0}}, {"key":[2010,11],"value":{"warning":5,"error":8,"fatal":0}}, {"key":[2010,12],"value":{"warning":2,"error":2,"fatal":0}}, {"key":[2011,1], "value":{"warning":5,"error":1,"fatal":0}}, {"key":[2011,2], "value":{"warning":3,"error":5,"fatal":0}}, {"key":[2011,3], "value":{"warning":4,"error":4,"fatal":0}}, {"key":[2011,4], "value":{"warning":3,"error":6,"fatal":0}} ] }
  • 87. ©2015 Couchbase Inc. 87 Data Service Projector & Router Indexing Service Query ServiceIndex Service Supervisor Index maintenance & Scan coordinator Index#2Index#1 Query Processor cbq-engine Bucket#1 Bucket#2 DCP Stream Index#4Index#3 ... B u c k e t # 2 B u c k e t # 1 Projector and Router: 1 Projector and Router per node 1 stream of changes per bucket per supervisor ForestDB Storage Engine Supervisor 1 Supervisor per node Many indexes per Supervisor MemDB Storage Engine for MOI
  • 88. ©2015 Couchbase Inc. 88 Types of Indexes § Composite Indexes § Covering Indexes § Filtered Indexes § Function Based Indexes § Sub-Document Indexes § Incremental MapReduceViews § SpatialViews § FullText Indexes § Prepared Statements § N1QL Complete SQL CRUD support: Insert, Delete, Merge, Etc.
  • 89. ©2015 Couchbase Inc. 89 create index idx_odspilot on ods(DISTINCT ARRAY p.FILEN in p in PILOT END); Array Indexing § Index only required elements or attributes in the array § Benefits are lot more significant for nested arrays/objects § Efficient on Index storage & search time Transportation Company POC • 422,137 documents. • Query2: BEFORE array indexing • Primary index scan • 38.91 seconds. • Query2: AFTER array indexing • Array index scan [DistinctScan] • 8.51 millisecond • Improvement of 4572Times
  • 90. ©2015 Couchbase Inc. 90 Step by Step – Building indexes § Building and Index 1. Issue “CREATE INDEX …” 2. Place on the “next node” if WITH {“nodes”:[]}not specified – “next node” picked by round robin 3. Create metadata for the index on the node – “next node” picked by round robin 4. If deferred build = true – Mark Index Status = “Pending” – Wait for “BUILD INDEX ...” 5. Else – Mark Index Status = “Pending” – Start DCP Backfill with Projector – When Done – Mark Index Status = “Online”
  • 91. ©2015 Couchbase Inc. 91 Step by Step – Ingest a Mutation § Ingest a Mutation on Data 1. DCP Feed communicates the mutation to Projector on the node. 2. Projector picks up the mutation for a bucket – Projector strips the mutation to check relevance to existing indexes on each indexer – Projector Sends stripped mutation to indexers on all index service nodes 3. Indexer receive the mutation on each index service node – Queue the mutation – ExtractionWorker Prepares and queues the update to each index. – Persistence Worker persist the mutation to the index
  • 92. ©2015 Couchbase Inc. 92 Global Secondary Indexes – Storage Options Global Secondary Index Predictable low latency with Query and Key Based Operations, even in presence of large number of indexes Storage Option for GSI Standard Global Secondary Indexes • Optimized for Storage + Memory: efficient spill- to-disk with ForestDB as the storage engine • Advanced IO Performance: New circular-writes that minimize compaction overhead Memory-Optimized Global Secondary Indexes (MOI) • Optimized for Memory: small memory footprint, optimized for lowest latency queries • Faster Indexing: fresh indexes under heavy mutations with lock free index maintenance Controlled with Cluster Settings (Settings Tab). Cluster-wide Setting for all Indexes and Require removing all GSI indexes and index service nodes to change storage options. (New in 4.5)
  • 93. ©2015 Couchbase Inc. 93 Memory Optimized (MOI) Global Secondary Indexes • Optimized for Memory: small memory footprint, optimized for lowest latency queries • Faster Indexing: fresh indexes under heavy mutations with lock free index maintenance
  • 94. ©2015 Couchbase Inc. 94 Which to Choose – Standard vs Memory Optimized GSI Standard GSI Memory Optimized GSI Initial Index BuildTimes Slower Faster Ongoing Index Build Times Slower Faster Ability to Keep up with Mutation Rate Lower Higher Memory Demand for Larger Indexes Lower Higher Behavior on OOM (out of memory) Spill to disk Stop processing mutations
  • 95. ©2015 Couchbase Inc. 95 Indexing & HA § Mirrored Indexes are load balanced and used for HA – Size at least 2 indexes for production – Add more indexes if all requests cannot be handled by a single index to protect against failures
  • 96. ©2015 Couchbase Inc. 96 Indexes & Partitioning § Why Partition Indexes? – Index may not fit on the node – Fit index to the nodes you have – Distribute Index load to many nodes – Minimize the tree scanned – Large/Tall indexes will take longer to scan § How to Partition Indexes? – By list of values – great for scan latency – ... WHERE type = “customer” – ... WHERE type = “product” – By range – – ... WHERE id BETWEEN 10 AND 20 – ... WHERE id BETWEEN 20 AND 30 – By function – no range scan ability
  • 97. ©2015 Couchbase Inc. 97 Efficient IO with Circular Writes in Standard GSI Standard Global Secondary Indexes § Reduced Disk IO Requirements – Append-OnlyWrites with frequent full compaction (Version 4.1 & Earlier) – Circular-Reuse Writes with reduced full compactions (New in 4.5: ) – Reused orphaned blocks in the index file – Reduce the need for frequent full-compactions of the index file Index Mutation Append-OnlyWrite CircularWrite File for Global Secondary Indexes Index Mutation Index Mutation
  • 99. ©2015 Couchbase Inc. 99 What is N1QL? § N1QL is a new query language that systematically extends SQL to document-oriented data § N1QL extends SQL to handle data that is: – Nested: Contains nested objects, arrays – Heterogeneous: Schema-optional, non-uniform – Distributed: Partitioned across a cluster
  • 100. ©2015 Couchbase Inc. 100 N1QL (EXPRESSIVE) § Access to every part of JSON document § Scalar & Aggregate functions § Issue subquery in any expressions § Subqueries § Subqueries in the FROM clause Give developers and enterprises an expressive, powerful, and complete language for querying, transforming, and manipulating JSON data.
  • 101. ©2015 Couchbase Inc. 101 N1QL (POWERFUL) § Access to every part of JSON document § JOINS, Aggregations, standard scalar functions § Aggregation on arrays § NEST & UNNEST operations § Covering Index Give developers and enterprises an expressive, powerful, and complete language for querying, transforming, and manipulating JSON data.
  • 102. ©2015 Couchbase Inc. 102 N1QL (QUERYING) § INSERT § UPDATE § DELETE § MERGE § SELECT § EXPLAIN Give developers and enterprises an expressive, powerful, and complete language for querying, transforming, and manipulating JSON data.
  • 103. ©2015 Couchbase Inc. 103 N1QL (TRANSFORMING & MANIPULATING) § FullTransformation of the data via Query. § INSERT § INSERT single & multiple documents § INSERT result a SELECT statement § DELETE documents based on complex filter § UPDATE any part of JSON document & use complex filter. § MERGE two sets of documents using traditional MERGE statement § SUBQUERIES Give developers and enterprises an expressive, powerful, and complete language for querying, transforming, and manipulating JSON data.
  • 104. ©2015 Couchbase Inc. 104 Optimizing Query Speed § There are four options for N1QL queries: Primary Index Secondary Index (GSI or MOI) Covered Index “ON KEYS”
  • 105. ©2015 Couchbase Inc. 105 Query Execution Flow 1. Application submits N1QL query 2. Query is parsed, analyzed and plan is created 1 2
  • 106. ©2015 Couchbase Inc. 106 Query Execution Flow 3. Query Service makes request to Index Service 4. Index Service returns document keys and data 3 4
  • 107. ©2015 Couchbase Inc. 107 Query Execution Flow 5. If Covering Index, skip step 6 6. If filtering is required, fetch documents from Data Service56
  • 108. ©2015 Couchbase Inc. 108 Query Execution Flow 7. Apply final logic (e.g. SORT, ORDER BY) 8. Return formatted results to application 7 8
  • 109. ©2015 Couchbase Inc. 109 Inside a Query Service (without covering index) Client FetchParse Plan Join Filter Pre-Aggregate Offset Limit ProjectSortAggregateScan Query Service Index Servic e Data Servic e Data-parallel — Query is N data streams over N cores* Memory-based Pluggable architecture — datastore, index… Request Response
  • 110. ©2015 Couchbase Inc. 110 Query Consistency Strict Request-Time Consistency (request_plus) Query execution is delayed until all indexes process mutations up toT3 RYOW Consistency (at_plus) Query execution is delayed until all indexes process mutations up toT1 T1: insert (k1, v1) T3: issue query on (k1,v1) T2: do other business logic computation … …
  • 111. ©2015 Couchbase Inc. 111 Joins (Referential)
  • 112. ©2015 Couchbase Inc. 112 Joins (Referential)
  • 113. ©2015 Couchbase Inc. 113 Joins (Referential)
  • 114. ©2015 Couchbase Inc. 114 Joins (Referential)
  • 115. ©2015 Couchbase Inc. 115 Document-oriented Extensions § Nested – Paths—user.profile.email, children[0], children[0:2] – NEST, UNNEST – Ranging—EVERY child.age > 5 FOR child IN children END – Transformations—SELECT {“name”: first_name || last_name} § Non-uniform – IS MISSING – Type checking and conversion § Distributed – Direct lookup—USE KEYS – Efficient joins—ON KEYS
  • 116. ©2015 Couchbase Inc. 116 SELECT statement SELECT customers.id, customers.NAME.lastname, customers.NAME.firstname Sum(orderline.amount) FROM orders UNNEST orders.lineitems AS orderline JOIN customers ON KEYS orders.custid WHERE customers.state = 'NY' GROUP BY customers.id, customers.NAME.lastname HAVING sum(orderline.amount) > 10000 ORDER BY sum(orderline.amount) DESC Dotted sub-document reference Names are CASE-SENSITIVE UNNEST to flatten the arrays JOINS with Document KEY of customers
  • 117. ©2015 Couchbase Inc. 117 UNNEST example: Customer Document { "C_ZIP" : "828011111", "C_STATE" : "vt", "C_FIRST" : "ykfdbqku", "C_CREDIT" : "GC", "C_DELIVERY_CNT" : 0, "C_W_ID" : 1, "C_CITY" : "quhpismkzumehqhr", "C_STREET_1" : "rmtxadlsxqefdcwf", "C_D_ID" : 1, "ORDERS" : [ { "ORDER_LINE" : [ { "OL_AMOUNT" : 0, "OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z", "OL_DIST_INFO" : "yptiwgjdelfxmathbjzirvye", "OL_I_ID" : 35828, "OL_SUPPLY_W_ID" : 1, "OL_QUANTITY" : 5 }, { "OL_AMOUNT" : 0, "OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z", "OL_DIST_INFO" : "dxhqulhcgksjgqsicujzqhdb", "OL_I_ID" : 26024, "OL_SUPPLY_W_ID" : 1, "OL_QUANTITY" : 5 }, } ….
  • 118. ©2015 Couchbase Inc. 118 UNNEST example: N1QL Code { "C_ZIP" : "828011111", "C_STATE" : "vt", "C_FIRST" : "ykfdbqku", "C_CREDIT" : "GC", "C_DELIVERY_CNT" : 0, "C_W_ID" : 1, "C_CITY" : "quhpismkzumehqhr", "C_STREET_1" : "rmtxadlsxqefdcwf", "C_D_ID" : 1, "ORDERS" : [ { "ORDER_LINE" : [ { "OL_AMOUNT" : 0, "OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z", "OL_DIST_INFO" : "yptiwgjdelfxmathbjzirvye", "OL_I_ID" : 35828, "OL_SUPPLY_W_ID" : 1, "OL_QUANTITY" : 5 }, { "OL_AMOUNT" : 0, "OL_DELIVERY_D" : "2015-02-11T14:55:25.480Z", "OL_DIST_INFO" : "dxhqulhcgksjgqsicujzqhdb", "OL_I_ID" : 26024, "OL_SUPPLY_W_ID" : 1, "OL_QUANTITY" : 5 }, } …. SELECT COUNT(my_order_line)AS total_orders, MAX(my_order_line.ol_delivery_d)AS max_delivery_date, MAX(my_order_line.ol_quantity)AS max_order_quantity, MAX(my_orders.o_entry_d) AS max_customer_entry, MAX(my_orders.o_ol_cnt) AS max_orderline_entry, COUNT(customer)AS total_customers FROM CUSTOMER MY_CUSTOMER UNNEST ORDERS AS my_orders UNNEST my_orders.order_line AS my_order_line ;
  • 119. ©2015 Couchbase Inc. 119 Named Prepared Statement url="http://localhost:8093/query" s = requests.Session() s.keep_alive = True s.auth = ('Administrator','password') query = {'statement':’prepare select * from `beer-sample` where type=’beer’ and name = 'Guinness’} r = s.post(url, data=query, stream=False) prepared = str(r.json()['results'][0]['name']) query = {'prepared': '"' + prepared + '"' } for i in range (0, 5000): r = s.post(url, data=query, stream=False) print i, r.json()['metrics']['executionTime']
  • 120. ©2015 Couchbase Inc. 120 Named Prepared Statement url="http://localhost:8093/query" s = requests.Session() s.keep_alive = True s.auth = ('Administrator','password') query = {'statement':'prepare select * from `beer-sample` where name = [$1]’} r = s.post(url, data=query, stream=False) prepared = str(r.json()['results'][0]['name']) for i in range (0, 5): query={'prepared': '"' + prepared + '"', 'args': '["old_hat_brewery"]' } r = s.post(url, data=query, stream=False) print i, r.json()['metrics']['executionTime'] Prepare Once Bind Values Many Times
  • 121. ©2015 Couchbase Inc. 121 Query Workbench – Query Editing Query Editor Autocomplete Syntax highlighting Multi-line formatting History Create, edit, save, run Results JSON /Table /Tree
  • 122. ©2015 Couchbase Inc. 122 Query Workbench – Schema Browsing Schema Inferred Document types Element types Frequency Sample data Bucket Schema Indexes
  • 123. ©2015 Couchbase Inc. 123 Query Workbench – Query Monitoring Catalogs Vitals Active Requests Prepared Statements Completed Requests Interfaces QueryWorkbench CLI (Query Shell) REST API
  • 124. ©2015 Couchbase Inc. 124 Monitoring: Active requests § List / Delete requests currently being run by the query service § Through N1QL – SELECT * FROM system:active_requests – DELETE FROM system:active_requests WHERE… § Through REST – GET http://localhost:8093/admin/active_requests – GET http://localhost:8093/admin/active_requests/<request_id> – DELETE http://localhost:8093/admin/active_requests/<request_id>
  • 125. ©2015 Couchbase Inc. 125 Monitoring: Prepared statements § List / Delete requests prepared on the query node § Through N1QL – SELECT * FROM system:prepareds – DELETE FROM system:prepareds WHERE… § Through REST – GET http://localhost:8093/admin/prepareds – GET http://localhost:8093/admin/prepareds/<request_id> – DELETE http://localhost:8093/admin/prepareds/<request_id>
  • 126. ©2015 Couchbase Inc. 126 Monitoring: Completed requests § List / Delete completed requests deemed to be of high cost § Through N1QL – SELECT * FROM system:completed_requests – DELETE FROM system:completed_requests where… § Through REST – GET http://localhost:8093/admin/completed_requests – GET http://localhost:8093/admin/completed_requests/<request_id> – DELETE http://localhost:8093/admin/completed_requests/<request_id> § Provide an overall health picture of the query service – Using REST: GET http://localhost:8093/admin/vitals
  • 129. ©2015 Couchbase Inc. 129 Key Challenges When Building Mobile Apps According to study done by Bock & Company Enterprise Developers Rank Critical Requirements for Success in the Coming Mobile App Explosion
  • 130. ©2015 Couchbase Inc. 130 What is Couchbase Mobile • Removed continual network dependency • Faster development cycles • Less long term maintenance than traditional solutions • Enterprise class mobile/embedded NoSQL database + sync platform • Fast and consistent access to data Built-in enterprise level security throughout the entire stack includes user authentication, user and role based data access control (RBAC), secure transport (TLS), and 256-bit AES full database encryption. SECURITY
  • 131. ©2015 Couchbase Inc. 131 Couchbase Lite Overview § Cross-platform support for all major operating systems and platforms § Built native from the ground up § 500kb for most platforms § 256-bit AES full database encryption 131 Couchbase Lite Embedded Database
  • 132. ©2015 Couchbase Inc. 132 Sync Gateway Overview § Synchronize data between Couchbase Lite and Couchbase Server § REST, Stream, Batch, and Event APIs § Pluggable authentication § Fine grained user and role based access control § Elastically scalable in real-time 132 Sync Gateway Synchronization
  • 133. ©2015 Couchbase Inc. 133 Couchbase Server Overview § Scale easily to thousands of nodes § Consistent high performance that supports millions of concurrent users § Flexible JSON data model § 24x365 always-on availability 133 Couchbase Server Database Server
  • 134. ©2015 Couchbase Inc. 134 End-to-End Security ü Pluggable authentication ü Fine grained user and role based access control ü Transport layer security (TLS) ü 256-bit AES full database encryption on device ü File system encryption in the cloud Security
  • 135. ©2015 Couchbase Inc. 135 Who s using Couchbase Mobile today
  • 136. ©2015 Couchbase Inc. 136 Common Mobile Use CasesCommon Mobile Use Cases
  • 137. ©2015 Couchbase Inc. 137 Offline Data Access The Problem • When an app doesn’t work offline, users are cut off from important transactions • Mobile apps need to work regardless of network connection How Couchbase Mobile helps • Couchbase Lite stores data locally so your app isn’t dependent on the network • If a network connection is lost, the database continues to operate and is automatically synced with the cloud when the network is restored
  • 138. ©2015 Couchbase Inc. 138 Local Caching The Problem • Today’s mobile applications require fast access to data • Slow access to data results in slow mobile apps, unhappy users and loss of productivity How Couchbase Mobile helps • By storing and caching application data locally in the embedded Couchbase Lite database, you eliminate the need to constantly request data from the server • You can synchronize data automatically with Sync Gateway
  • 139. ©2015 Couchbase Inc. 139 Digitization of Paper Assets The Problem • Reducing operational time and costs is critical for any business, and mobile application deployments are a key component of making it happen • By digitizing paper assets, you save time and resources, reduce storage, and cut logistics costs How Couchbase Mobile helps • Store paper assets with Couchbase Mobile, both locally and in the cloud • Your data is securely synced between devices and the cloud
  • 140. ©2015 Couchbase Inc. 140 Content Delivery & Storage The Problem • Guaranteed delivery and storage of assets is crucial for a great user experience • Users need real-time data updates How Couchbase Mobile helps • Couchbase Mobile gives you the ability to store and access data locally so content is always available • Data can be synced between the cloud and device, allowing business-critical updates to be reflected in real-time
  • 141. ©2015 Couchbase Inc. 141 Real-time Asset Tracking The Problem • Real-time asset tracking is a key requirement in mobile applications across many industries • Tracking, storing, and delivering real-time updates can be tricky to manage How Couchbase Mobile helps • Asset tracking data can be shared with supervisors and/or across field employees • Deliver updates on shipments, routing, service orders, ETAs, or anything else in real- time with Couchbase Mobile
  • 142. ©2015 Couchbase Inc. 142 Peer-to-Peer Usage The Problem • Without a network connection, devices can’t talk to each other • In isolated environments like retail stores, airplanes, the field, or any other places where the network isn’t reliable, this can cause lost revenue and productivity How Couchbase Mobile helps • With Couchbase Mobile, connect devices directly to each other with peer-to-peer replication • Apps can connect to exchange data and will continue to work regardless of network availability
  • 143. ©2015 Couchbase Inc. 143 User Data/Preferences Storage The Problem • Storing user data and preferences across devices and the cloud is complex for games, CRM systems, e-commerce apps, or any other app • Making sure user information is secure, both on-device and in transport, is difficult How Couchbase Mobile helps • Couchbase Mobile gives your users a consistent experience across all of their devices • Securely store and sync user data like preferences, profiles, sign-in, game state and more across devices
  • 145. ©2015 Couchbase Inc. 145 Couchbase Server and Intel’s high-performance processors and storage subsystems combine to power millions of operations/sec for the world’s largest customer 360 systems and profile stores, popular online games, and more. Additional information about Couchbase and Intel can be found here: http://www.couchbase.com/partners/intel Power with Intel
  • 146. ©2015 Couchbase Inc. 146 Consulting and Expert Services Packaged Services – Quick Start – Architecture Reviews – Health Checks – Upgrade Services – Managed Services Custom Consulting – Migration – Application Integration – Big-Data Integration, Analytics, Reporting – Others Email inquiries: Services@couchbase.com OR Contact your Account Representative
  • 147. ©2015 Couchbase Inc. 147 Couchbase Hands-OnTraining For System Admins: § CS300 Couchbase NoSQL Server Administration, 4-day For Developers: § CD220 Developing Couchbase NoSQL Applications, 3-day For Anyone: § Free Online On-Demand Courses: http://training.couchbase.com/online Email inquiries: training@couchbase.com
  • 148. ©2015 Couchbase Inc. 148 Additional Resources 148 § Getting Started: http://www.couchbase.com/download § Couchbase Labs: http://github.com/couchbaselabs § Developer Portal: http://developer.couchbase.com § General Docs: http://docs.couchbase.com § Query Portal: http://query.couchbase.com § Blog: http://blog.couchbase.com § Forum: http://forums.couchbase.com § Sample Applications: § https://github.com/couchbaselabs?utf8=%E2%9C%93&query=try § https://github.com/couchbaselabs?utf8=%E2%9C%93&query=beer