SlideShare a Scribd company logo
© Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com
SELA DEVELOPER PRACTICE
JUNE 29 – JULY 3, 2014
David Ostrovsky
- NoSQL for you!
@DavidOstrovsky
Senior Consultant @ Sela
Co-author of:
“Pro Couchbase Server” – Apress
Media 2014
“Essentials of Developing Windows
Store Apps Using C#”
“Advanced Windows Store App
Development Using C#”
CodeHardBlog.azurewebsites.net
Agenda
What is Couchbase Server?
Why should I care?
What is this “document” stuff?
How do I use it?
Where are my documents?
What else can I do with it?
A little history…
Couchbase Server is the progeny of two
products:
Membase - a distributed in-memory cache
Apache CouchDB – a document database
In 2011, the companies behind the two
products merged to form Couchbase Inc. and
created Couchbase Server.
So, what does it do?
Couchbase Server is a document database with
an advanced memory caching layer.
Stores “documents” in JSON format
Indexes the contents of documents
Couchbase automatically distributes (“shards”)
data across the cluster.
Data is replicated multiple times for resilience.
And how does it work?
A Couchbase cluster is made up from multiple
similar nodes.
Nodes are simply installations of Couchbase Server
No special head or configuration nodes
Client applications use an SDK to connect to the
cluster and exchange data.
Official support for: Java, .NET, C, PHP, Python, Ruby
and Node.js
Community support for many more
Client
Cluster Map
Node 1
Bucket1
vBucket 1
Doc 1
vBucket 2
Doc 7
Node 2
Bucket1
vBucket 2
Doc 7
vBucket 3
Doc 13
Node 3
Bucket1
vBucket 3
Doc 13
vBucket 1
Doc 1
Active
Replica
vBucket 1 Node 1
vBucket 2 Node 2
vBucket 3 Node 3
get("Doc 13")
vBucket 1 Node 1
vBucket 2 Node 2
vBucket 3 Node 2
Documents – what’s up with that?
UserId Name Age CityId
01 John 35 002
02 Dave 18 003
{
"name": "John",
"age": 35,
"address": {
"city": "New York",
"street": "…"
}
}
When should I use it?
High performance requirements
Millions of operations per second
Very large-scale systems
Sub-millisecond reads
Serving ads, storing user profiles, etc.
Developer friendliness
Flexible schema
Seamless upgrade of application versions
Simple CRUD
Straightforward administration
Working with documents
Documents are accessed by their key (aka. ID)
Key-based operations are very fast.
On a dedicated cluster, you can expect sub-
millisecond responses.
Items are stored in memory, then written to disk
asynchronously.
Items are retrieved from the memory cache.
CRUD
All operations are exposed by the Couchbase
client object instance.
Add/Set store a document in the database.
Get retrieves a document by key.
Replace updates an existing document.
Bulk versions of operations – depends on SDK.
Demo
Key-based Operations
What database only has one user?
Couchbase supports concurrency through
Check-and-Set operations.
Every item’s metadata has a CAS value, which
gets updated with every change.
Optimistic concurrency works by comparing
client and server CAS values.
Pessimistic concurrency works by locking the
key exclusively for a specific session.
Dude, where is my document?
In addition to keys (primary index), Couchbase
supports secondary indexes, called Views.
Unlike key-based operations, which are served
from memory, vies are served from disk.
File system caches disk reads.
MapReduce in 60 seconds
Views are defined as a MapReduce function.
Map function runs for each document and extracts
the data for the index.
Reduce is optional and can be used for
aggregations, such as grouping by value.
Demo
Using Views
N1QL – How do you pronounce that?
N1QL (aka “Nickel”) is an SQL-like query
language for Couchbase.
Expanded SQL syntax to account for nested
documents, arrays, and cross-bucket joins.
Currently in developer preview, coming in a
future version.
Demo
Was that SQL I just saw?
Great, what else you got?
Cross-Datacenter Replication (XDCR)
Couchbase Mobile
A NoSQL database for mobile apps.
Can be stand-alone or synchronized with Couchbase
Server.
ElasticSearch Integration
Uses ES for querying and Couchbase for retrieval.
Hadoop Connector
Uses sqoop to move data between CB and Hadoop.
Questions

More Related Content

What's hot

Geek Sync | SQL Security Principals and Permissions 101
Geek Sync | SQL Security Principals and Permissions 101Geek Sync | SQL Security Principals and Permissions 101
Geek Sync | SQL Security Principals and Permissions 101IDERA Software
 
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
Microsoft Azure: Opção de Nuvem para Todo o DesenvolvedorMicrosoft Azure: Opção de Nuvem para Todo o Desenvolvedor
Microsoft Azure: Opção de Nuvem para Todo o DesenvolvedorOsvaldo Daibert
 
From SQL to MongoDB
From SQL to MongoDBFrom SQL to MongoDB
From SQL to MongoDBNuxeo
 
Geek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERA
Geek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERAGeek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERA
Geek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERAIDERA Software
 
Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012Einar Ingebrigtsen
 
Higher Productivity With Ase
Higher Productivity With AseHigher Productivity With Ase
Higher Productivity With Asesparkwan
 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDBBrian Ritchie
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.Denis Reznik
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Ike Ellis
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101Ike Ellis
 
SQL Server & SQL Azure Temporal Tables - V2
SQL Server & SQL Azure Temporal Tables - V2SQL Server & SQL Azure Temporal Tables - V2
SQL Server & SQL Azure Temporal Tables - V2Davide Mauri
 

What's hot (20)

Geek Sync | SQL Security Principals and Permissions 101
Geek Sync | SQL Security Principals and Permissions 101Geek Sync | SQL Security Principals and Permissions 101
Geek Sync | SQL Security Principals and Permissions 101
 
iForum 2015: SQL vs. NoSQL
iForum 2015: SQL vs. NoSQLiForum 2015: SQL vs. NoSQL
iForum 2015: SQL vs. NoSQL
 
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
Microsoft Azure: Opção de Nuvem para Todo o DesenvolvedorMicrosoft Azure: Opção de Nuvem para Todo o Desenvolvedor
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
 
SQL & NoSQL
SQL & NoSQLSQL & NoSQL
SQL & NoSQL
 
Drupal 7 unleashed
Drupal 7 unleashedDrupal 7 unleashed
Drupal 7 unleashed
 
From SQL to MongoDB
From SQL to MongoDBFrom SQL to MongoDB
From SQL to MongoDB
 
Geek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERA
Geek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERAGeek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERA
Geek Sync | How to Be the DBA When You Don't Have a DBA - Eric Cobb | IDERA
 
Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012
 
Azure storage
Azure storageAzure storage
Azure storage
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 
Higher Productivity With Ase
Higher Productivity With AseHigher Productivity With Ase
Higher Productivity With Ase
 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDB
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
Introduction to RavenDB
Introduction to RavenDBIntroduction to RavenDB
Introduction to RavenDB
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101
 
Intro to RavenDB
Intro to RavenDBIntro to RavenDB
Intro to RavenDB
 
SQL Server & SQL Azure Temporal Tables - V2
SQL Server & SQL Azure Temporal Tables - V2SQL Server & SQL Azure Temporal Tables - V2
SQL Server & SQL Azure Temporal Tables - V2
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 

Viewers also liked

Question 3
Question 3Question 3
Question 3TBrach
 
Kāpēc KKS nevis bankas
Kāpēc KKS nevis bankasKāpēc KKS nevis bankas
Kāpēc KKS nevis bankasAllazusaime
 
Using Couchbase and ElasticSearch for real-time data analytics
Using Couchbase and ElasticSearch for real-time data analyticsUsing Couchbase and ElasticSearch for real-time data analytics
Using Couchbase and ElasticSearch for real-time data analyticsSirKetchup
 
Question 6 what have you learnt about technologies[1]
Question 6  what have you learnt about technologies[1]Question 6  what have you learnt about technologies[1]
Question 6 what have you learnt about technologies[1]TBrach
 
Who's afraid of graphs
Who's afraid of graphsWho's afraid of graphs
Who's afraid of graphsSirKetchup
 
A Tale of Two Tech Solutions
A Tale of Two Tech SolutionsA Tale of Two Tech Solutions
A Tale of Two Tech SolutionsGreg Turner
 
Question 3
Question 3Question 3
Question 3TBrach
 
Question 6
Question 6 Question 6
Question 6 TBrach
 
To SQL or NoSQL, That is the Question
To SQL or NoSQL, That is the QuestionTo SQL or NoSQL, That is the Question
To SQL or NoSQL, That is the QuestionSirKetchup
 
General Programming on the GPU - Confoo
General Programming on the GPU - ConfooGeneral Programming on the GPU - Confoo
General Programming on the GPU - ConfooSirKetchup
 
Stream Processing Frameworks
Stream Processing FrameworksStream Processing Frameworks
Stream Processing FrameworksSirKetchup
 
App inventor 教學講義 chapter4
App inventor 教學講義 chapter4App inventor 教學講義 chapter4
App inventor 教學講義 chapter4Jerry Wu
 
App inventor 教學講義 chapter2
App inventor 教學講義 chapter2App inventor 教學講義 chapter2
App inventor 教學講義 chapter2Jerry Wu
 
App inventor 教學講義 chapter3
App inventor 教學講義 chapter3App inventor 教學講義 chapter3
App inventor 教學講義 chapter3Jerry Wu
 
App inventor 教學講義 chapter1
App inventor 教學講義 chapter1App inventor 教學講義 chapter1
App inventor 教學講義 chapter1Jerry Wu
 
App inventor 教學講義 chapter6
App inventor 教學講義 chapter6App inventor 教學講義 chapter6
App inventor 教學講義 chapter6Jerry Wu
 

Viewers also liked (17)

Question 3
Question 3Question 3
Question 3
 
Kāpēc KKS nevis bankas
Kāpēc KKS nevis bankasKāpēc KKS nevis bankas
Kāpēc KKS nevis bankas
 
Nacionala banka
Nacionala bankaNacionala banka
Nacionala banka
 
Using Couchbase and ElasticSearch for real-time data analytics
Using Couchbase and ElasticSearch for real-time data analyticsUsing Couchbase and ElasticSearch for real-time data analytics
Using Couchbase and ElasticSearch for real-time data analytics
 
Question 6 what have you learnt about technologies[1]
Question 6  what have you learnt about technologies[1]Question 6  what have you learnt about technologies[1]
Question 6 what have you learnt about technologies[1]
 
Who's afraid of graphs
Who's afraid of graphsWho's afraid of graphs
Who's afraid of graphs
 
A Tale of Two Tech Solutions
A Tale of Two Tech SolutionsA Tale of Two Tech Solutions
A Tale of Two Tech Solutions
 
Question 3
Question 3Question 3
Question 3
 
Question 6
Question 6 Question 6
Question 6
 
To SQL or NoSQL, That is the Question
To SQL or NoSQL, That is the QuestionTo SQL or NoSQL, That is the Question
To SQL or NoSQL, That is the Question
 
General Programming on the GPU - Confoo
General Programming on the GPU - ConfooGeneral Programming on the GPU - Confoo
General Programming on the GPU - Confoo
 
Stream Processing Frameworks
Stream Processing FrameworksStream Processing Frameworks
Stream Processing Frameworks
 
App inventor 教學講義 chapter4
App inventor 教學講義 chapter4App inventor 教學講義 chapter4
App inventor 教學講義 chapter4
 
App inventor 教學講義 chapter2
App inventor 教學講義 chapter2App inventor 教學講義 chapter2
App inventor 教學講義 chapter2
 
App inventor 教學講義 chapter3
App inventor 教學講義 chapter3App inventor 教學講義 chapter3
App inventor 教學講義 chapter3
 
App inventor 教學講義 chapter1
App inventor 教學講義 chapter1App inventor 教學講義 chapter1
App inventor 教學講義 chapter1
 
App inventor 教學講義 chapter6
App inventor 教學講義 chapter6App inventor 教學講義 chapter6
App inventor 教學講義 chapter6
 

Similar to Couchbase - NoSQL for you! (SDP 2014)

Samedi SQL Québec - La plateforme data de Azure
Samedi SQL Québec - La plateforme data de AzureSamedi SQL Québec - La plateforme data de Azure
Samedi SQL Québec - La plateforme data de AzureMSDEVMTL
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamBrian Benz
 
Azure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene PolonichkoAzure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene PolonichkoDimko Zhluktenko
 
Azure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAzure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAlex Tumanoff
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseRobert Lujo
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionKelum Senanayake
 
Workshop "Building Decentralised Chat with Next.js", Oleh Melnychuk
Workshop "Building Decentralised Chat with Next.js",  Oleh MelnychukWorkshop "Building Decentralised Chat with Next.js",  Oleh Melnychuk
Workshop "Building Decentralised Chat with Next.js", Oleh MelnychukFwdays
 
Data Analytics Meetup: Introduction to Azure Data Lake Storage
Data Analytics Meetup: Introduction to Azure Data Lake Storage Data Analytics Meetup: Introduction to Azure Data Lake Storage
Data Analytics Meetup: Introduction to Azure Data Lake Storage CCG
 
A Look at the Future of Storage
A Look at the Future of StorageA Look at the Future of Storage
A Look at the Future of StorageIT Brand Pulse
 
Differentiate Big Data vs Data Warehouse use cases for a cloud solution
Differentiate Big Data vs Data Warehouse use cases for a cloud solutionDifferentiate Big Data vs Data Warehouse use cases for a cloud solution
Differentiate Big Data vs Data Warehouse use cases for a cloud solutionJames Serra
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)James Serra
 
Cosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraCosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraMichał Jankowski
 
nosql [Autosaved].pptx
nosql [Autosaved].pptxnosql [Autosaved].pptx
nosql [Autosaved].pptxIndrani Sen
 
Big Data - Hadoop Ecosystem
Big Data -  Hadoop Ecosystem Big Data -  Hadoop Ecosystem
Big Data - Hadoop Ecosystem nuriadelasheras
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarRTTS
 
Introduction to document db- Global Azure Bootcamp 2016
Introduction to document db- Global Azure Bootcamp 2016Introduction to document db- Global Azure Bootcamp 2016
Introduction to document db- Global Azure Bootcamp 2016Jalpesh Vadgama
 
Building Data Analytics pipelines in the cloud using serverless technology
Building Data Analytics pipelines in the cloud using serverless technologyBuilding Data Analytics pipelines in the cloud using serverless technology
Building Data Analytics pipelines in the cloud using serverless technologyDomino Data Lab
 

Similar to Couchbase - NoSQL for you! (SDP 2014) (20)

Samedi SQL Québec - La plateforme data de Azure
Samedi SQL Québec - La plateforme data de AzureSamedi SQL Québec - La plateforme data de Azure
Samedi SQL Québec - La plateforme data de Azure
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
CouchDB
CouchDBCouchDB
CouchDB
 
Azure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene PolonichkoAzure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene Polonichko
 
Azure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAzure data bricks by Eugene Polonichko
Azure data bricks by Eugene Polonichko
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
 
Workshop "Building Decentralised Chat with Next.js", Oleh Melnychuk
Workshop "Building Decentralised Chat with Next.js",  Oleh MelnychukWorkshop "Building Decentralised Chat with Next.js",  Oleh Melnychuk
Workshop "Building Decentralised Chat with Next.js", Oleh Melnychuk
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
 
Data Analytics Meetup: Introduction to Azure Data Lake Storage
Data Analytics Meetup: Introduction to Azure Data Lake Storage Data Analytics Meetup: Introduction to Azure Data Lake Storage
Data Analytics Meetup: Introduction to Azure Data Lake Storage
 
A Look at the Future of Storage
A Look at the Future of StorageA Look at the Future of Storage
A Look at the Future of Storage
 
Differentiate Big Data vs Data Warehouse use cases for a cloud solution
Differentiate Big Data vs Data Warehouse use cases for a cloud solutionDifferentiate Big Data vs Data Warehouse use cases for a cloud solution
Differentiate Big Data vs Data Warehouse use cases for a cloud solution
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)
 
Cosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraCosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless era
 
nosql [Autosaved].pptx
nosql [Autosaved].pptxnosql [Autosaved].pptx
nosql [Autosaved].pptx
 
Big Data - Hadoop Ecosystem
Big Data -  Hadoop Ecosystem Big Data -  Hadoop Ecosystem
Big Data - Hadoop Ecosystem
 
Symphony Driver Essay
Symphony Driver EssaySymphony Driver Essay
Symphony Driver Essay
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing Webinar
 
Introduction to document db- Global Azure Bootcamp 2016
Introduction to document db- Global Azure Bootcamp 2016Introduction to document db- Global Azure Bootcamp 2016
Introduction to document db- Global Azure Bootcamp 2016
 
Building Data Analytics pipelines in the cloud using serverless technology
Building Data Analytics pipelines in the cloud using serverless technologyBuilding Data Analytics pipelines in the cloud using serverless technology
Building Data Analytics pipelines in the cloud using serverless technology
 

Recently uploaded

De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEJelle | Nordend
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareinfo611746
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationHelp Desk Migration
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessWSO2
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)Max Lee
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandIES VE
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockSkilrock Technologies
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignNeo4j
 

Recently uploaded (20)

De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 

Couchbase - NoSQL for you! (SDP 2014)

  • 1. © Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com SELA DEVELOPER PRACTICE JUNE 29 – JULY 3, 2014 David Ostrovsky - NoSQL for you!
  • 2. @DavidOstrovsky Senior Consultant @ Sela Co-author of: “Pro Couchbase Server” – Apress Media 2014 “Essentials of Developing Windows Store Apps Using C#” “Advanced Windows Store App Development Using C#” CodeHardBlog.azurewebsites.net
  • 3. Agenda What is Couchbase Server? Why should I care? What is this “document” stuff? How do I use it? Where are my documents? What else can I do with it?
  • 4. A little history… Couchbase Server is the progeny of two products: Membase - a distributed in-memory cache Apache CouchDB – a document database In 2011, the companies behind the two products merged to form Couchbase Inc. and created Couchbase Server.
  • 5. So, what does it do? Couchbase Server is a document database with an advanced memory caching layer. Stores “documents” in JSON format Indexes the contents of documents Couchbase automatically distributes (“shards”) data across the cluster. Data is replicated multiple times for resilience.
  • 6. And how does it work? A Couchbase cluster is made up from multiple similar nodes. Nodes are simply installations of Couchbase Server No special head or configuration nodes Client applications use an SDK to connect to the cluster and exchange data. Official support for: Java, .NET, C, PHP, Python, Ruby and Node.js Community support for many more
  • 7. Client Cluster Map Node 1 Bucket1 vBucket 1 Doc 1 vBucket 2 Doc 7 Node 2 Bucket1 vBucket 2 Doc 7 vBucket 3 Doc 13 Node 3 Bucket1 vBucket 3 Doc 13 vBucket 1 Doc 1 Active Replica vBucket 1 Node 1 vBucket 2 Node 2 vBucket 3 Node 3 get("Doc 13") vBucket 1 Node 1 vBucket 2 Node 2 vBucket 3 Node 2
  • 8. Documents – what’s up with that? UserId Name Age CityId 01 John 35 002 02 Dave 18 003 { "name": "John", "age": 35, "address": { "city": "New York", "street": "…" } }
  • 9. When should I use it? High performance requirements Millions of operations per second Very large-scale systems Sub-millisecond reads Serving ads, storing user profiles, etc. Developer friendliness Flexible schema Seamless upgrade of application versions Simple CRUD Straightforward administration
  • 10. Working with documents Documents are accessed by their key (aka. ID) Key-based operations are very fast. On a dedicated cluster, you can expect sub- millisecond responses. Items are stored in memory, then written to disk asynchronously. Items are retrieved from the memory cache.
  • 11. CRUD All operations are exposed by the Couchbase client object instance. Add/Set store a document in the database. Get retrieves a document by key. Replace updates an existing document. Bulk versions of operations – depends on SDK.
  • 13. What database only has one user? Couchbase supports concurrency through Check-and-Set operations. Every item’s metadata has a CAS value, which gets updated with every change. Optimistic concurrency works by comparing client and server CAS values. Pessimistic concurrency works by locking the key exclusively for a specific session.
  • 14. Dude, where is my document? In addition to keys (primary index), Couchbase supports secondary indexes, called Views. Unlike key-based operations, which are served from memory, vies are served from disk. File system caches disk reads.
  • 15. MapReduce in 60 seconds Views are defined as a MapReduce function. Map function runs for each document and extracts the data for the index. Reduce is optional and can be used for aggregations, such as grouping by value.
  • 17. N1QL – How do you pronounce that? N1QL (aka “Nickel”) is an SQL-like query language for Couchbase. Expanded SQL syntax to account for nested documents, arrays, and cross-bucket joins. Currently in developer preview, coming in a future version.
  • 18. Demo Was that SQL I just saw?
  • 19. Great, what else you got? Cross-Datacenter Replication (XDCR) Couchbase Mobile A NoSQL database for mobile apps. Can be stand-alone or synchronized with Couchbase Server. ElasticSearch Integration Uses ES for querying and Couchbase for retrieval. Hadoop Connector Uses sqoop to move data between CB and Hadoop.