SlideShare a Scribd company logo
1 of 32
Download to read offline
N1QL : COUCHBASE 5.5 FEATURES
Couchbase Query & Indexing Team
AGENDA
02
03
N1QL & GSI Features in Spark (5.0)
N1QL & GSI Features in Vulcan (5.5)
01 N1QL Overview for newbees
1 N1QL: OVERVIEW
4
ResultSet
Relations/Tuples
5
{
"Name" : "Jane Smith",
"DOB" : "1990-01-30",
"Billing" : [
{
"type" : "visa",
"cardnum" :
"5827-2842-2847-3909",
"expiry" : "2019-03"
},
{
"type" : "master",
"cardnum" :
"6274-2842-2847-3909",
"expiry" : "2019-03"
}
],
"Connections" : [
{
"CustId" : "XYZ987",
"Name" : "Joe Smith"
},
{
"CustId" : "PQR823",
"Name" : "Dylan Smith"
}
{
"CustId" : "PQR823",
"Name" : "Dylan Smith"
}
],
"Purchases" : [
{ "id":12, item: "mac", "amt":
2823.52 }
{ "id":19, item: "ipad2", "amt":
623.52 }
]
}
LoyaltyInfo
Results
Orders
CUSTOMER
•  NoSQL systems provide specialized APIs
•  Key-Value get and set
•  Each task requires custom built program
•  Should test & maintain it
6
Find High-Value Customers with Orders > $10000
Query customer
objects from
database
•  Complex codes and logic
•  Inefficient processing on client side
For each customer
object
Find all the order
objects for the
customer
Calculate the total
amount for each
order
Sum up the grand
total amount for all
orders
If grand total
amount > $10000,
Extract customer
data
Add customer to
the high-value
customer list
Sort the high-value
customer list
LOOPING OVER MILLIONS OF CUSTOMERS IN APPLICATION!!!
7
{
"Name" : "Jane Smith",
"DOB" : "1990-01-30",
"Billing" : [
{
"type" : "visa",
"cardnum" :
"5827-2842-2847-3909",
"expiry" : "2019-03"
},
{
"type" : "master",
"cardnum" :
"6274-2842-2847-3909",
"expiry" : "2019-03"
}
],
"Connections" : [
{
"CustId" : "XYZ987",
"Name" : "Joe Smith"
},
{
"CustId" : "PQR823",
"Name" : "Dylan Smith"
}
{
"CustId" : "PQR823",
"Name" : "Dylan Smith"
}
],
"Purchases" : [
{ "id":12, item: "mac", "amt": 2823.52 }
{ "id":19, item: "ipad2", "amt": 623.52 }
]
}
LoyaltyInfo
ResultDocuments
Orders
CUSTOMER
8
N1QL = SQL + JSON
Give developers and enterprises an
expressive, powerful, and complete
language for querying, transforming, and
manipulating JSON data.
9
Why SQL for NoSQL?
10
N1QL: Inside the Query Service
Client
FetchParse Plan Join Filter
Pre-Aggregate
Offset Limit ProjectSortAggregateScan
Query Service
Index
Service
Data
Service
11
11	
Couchbase	4.0:	N1QL	GA	
Query	language	for	JSON,	Integrated	Query	Service,	
Global	Secondary	Index,	REST	API,	
Simba	ODBC,	JDBC	Drivers	
Couchbase	4.1:	
INSERT,	UPDATE,	DELETE,	MERGE	
Covering	Index	OpJmizaJon	
Couchbase	4.1.1:		
Index	JOINs	
Couchbase	4.5:		
Array	Indexes,	Workbench,	CBQ	Shell++,	INFER	
Memory	OpJmized	Index,	IndexScanCount	
YCSB	Performance	OpJmizaJons++,	Language++	
Couchbase	4.5.1:		
PreRy=false;	Fetch;	SUFFIXES;	
Index	SelecJon;	UPDATE	
improvement	
Oct	2015	
Dec	2015	
March	2016	
June	2016	
Sep	2016	
N1QL features in
Couchbase releases
12
N1QL features in Couchbase releases.
12	
Couchbase	4.6.1:	
TOKENS	(Simple	Search/Faster	LIKE),	OpJmizer	improvements	
Couchbase 5.0:
Subqueries	over	nested	data	;	PaginaJon;	RBAC;	Curl,	Super	Charged	
Indexing;	Monitoring	&	Profiling;	New	workbench,	UI,	monitoring,	
profiler,	visual	EXPLAIN	Performance++,	Bitwise	funcJons	
Q1	2017	
3Q	2017		
Couchbase	4.6.2:	
OpJmizer	improvements,	intersect	scan	performance	
Q2	2017	
Couchbase 5.5 (Developer Build NOW!):
ANSI	JOIN,	HASH	JOIN,	N1QL	AudiJng,	TCO	Improvements,	Index	
Grouping	and	AggregaJon,	Index	ParJJoning,		PREPARE	
Infrastructure,	IPV6,	X.509,	ALTER	INDEX	placement	of	replicas,		
Query	sehngs	through	UI,	Query	Workbench	Improvements,	
Performance	Improvements	
3Q	2018(GA)
2 N1QL: FEATURES IN 5.0
14
Couchbase N1QL and GSI features in 5.0
Query-Indexing Features
•  Large Indexing Keysize
•  Index key collation: ASC, DESC on each key
•  Index replicas, just like data replication
•  New storage engine: Plasma
Query Language & Infrastructure
•  Subquery Expressions
•  Additional Date & time functions
•  Bitwise functions
•  CURL() within N1QL
Query Optimizer
•  Complex Filters Pushdown
•  Pagination optimization
•  Optimization for ASC, DESC keys
•  Query-Index API optimization (projection, etc.)
•  Index projections, Intersect scans
•  Adaptive Indexes
Security, Administration & Functionality
•  Security: RBAC: Statement level security
•  Query Monitoring, Profiling with UI
•  Query work bench and UI: Fully upgraded
•  Query UI: Visual Explain
•  Query on Ephemeral buckets
•  Application Continuity, Seamless Upgrade
Performance
•  Core daily workload
•  YCSB
•  YCSB-JSON for Engagement Database
http://query.couchbase.com
3 FEATURES IN VULCAN(5.5)
16
Couchbase N1QL and GSI features in Couchbase 5.5
Query-Indexing Features
•  Backfill settings
•  ALTER INDEX changing placement of replica (EE)
•  Grouping and aggregation Performance (EE)
•  Index Partitioning (EE)
Query Workbench
•  Auto-Explain / Visual Explain (EE)
•  High perf tabular view
•  Positional & Named Parameters
•  Tabular document editor
Query + Optimizer
•  ANSI JOINs
•  HASH JOIN (EE)
Security, Administration & Functionality
•  N1QL Auditing (EE)
•  PREPARE infrastructure
•  X.509 support
•  IPV6 support
Performance
•  Plasma improvements for DGM use cases (EE).
•  Query workload – TCO improvement
•  Aggregate & ANSI join workload
•  YCSB
•  YCSB-JSON for Engagement Database
http://query.couchbase.com
17
Couchbase 5.5: BACKFILL SETTING
CUSTOMER PROBLEM OR SCENARIO
•  Results from index scan come back faster than query can consume.
•  These results are saved in a temporary file, known as backfill
•  In 5.0, this location was /tmp by default.
•  Customers can (and have) run out of space.
•  Make the backfill location configurable.
•  Settable in Web console or REST API
•  By default the path is /tmp – this is now settable
•  By default the Quota is
•  If set to -1 it means unlimited
•  If set to 0 then backfill is disabled
•  There is no upper limit, it depends on user system
SOLUTION
18
Couchbase 5.5: ALTER INDEX
CUSTOMER PROBLEM OR SCENARIO
•  An imbalance occurs due to a particular index growing faster than expected and
is needed on a different node.
•  An imbalance occurs due to a cluster of indexes being dropped on a single
node.
•  A machine is scheduled for removal, so its indexes need to move off its current
node.
•  The automated process of rebalancing does not give the expected results.
SOLUTION
Alter Index support to change the placement of an existing index or replica among different GSI
nodes.
For example, if a node fails and you need to move it from node 172.23.130.24 to node
172.23.130.25
ALTER INDEX `travel-sample`.idx1 WITH {"action":"move","nodes": ["172.23.120.25:8091"]}
19
Couchbase 5.5: Grouping and Aggregation Performance (EE)
CUSTOMER PROBLEM OR SCENARIO
•  Grouping and Aggregation are
expensive operations
•  Latencies are high and cluster is not
scaling
BENEFITS
•  High scalability
•  Low query latencies
•  Low TCO
•  Automatic: No changes to query or
index
SOLUTION
•  If query is covered by index, Let Indexer
perform Grouping and Aggregation.
•  Eliminate network transportation and disk
I/0 due to backfill. These are slowest
operations.
EXAMPLE:
•  CREATE INDEX ttype ON `travel-
sample`(type);
•  SELECT type, COUNT(1) AS cnt
FROM `travel-sample`
WHERE type IS NOT NULL
GROUP BY type;
20
Couchbase 5.5: Index Partitioning
Manageability: Scale out GSI Index
create index route on bucket(airline, flight, source_airport, destination_airport)
partition by hash(airline)
•  Scale out partitions as cluster size grows
•  Partition key must be immutable -- meta().id, immutable secondary key (e.g.
airline)
Performance: Partition Elimination
Select flight from bucket where airline is not missing and source_airport = “SFO”
•  Scatter-gather across all partitions
Select flight from bucket where airline in [“UA”, “AA”] and source_airport = “SFO”
•  Partition Elimination when predicate contains partition key : Only scan the
partitions specified in predicate for faster range query response
Performance: Parallelize Aggregate Scan
Select count(flight) from bucket where airline is not missing group by
source_airport, destination_airport
•  Ability to parallelize scan on aggregate query across partitions
21
Couchbase 5.5: Index Partitioning
Scan availability: Index scan can span partitions across replica
create index route on bucket(airline, flight, source_airport, destination_airport)
partition by hash(airline) with {“num_replica”:1}
•  A single index scan can pick any available partition across all replica
Manageability: Repair Lost Partition
•  If partitions are lost due to node failover, those partitions can be repaired (rebuilt)
on remaining nodes during rebalancing
Performance: Scan Load Balancing
•  Scan traffic is load balanced on partitioned index across replica
•  Partition of a replica can be skipped if it is falling behind from other replica
22
Couchbase 5.5: ANSI JOIN
What?
•  ANSI standard for SQL join specification
•  Supported in all major relational databases
Why?
•  Lowering barrier for migration to Couchbase
•  Especially from relational databases
•  Address limitation of N1QL joins
•  Lookup join and index join requires joining on document key
•  Parent-child or child-parent join only
•  Only equi-join
•  Proprietary syntax
How?
•  ON-clause to specify join condition, which can be any expression
23
Couchbase 5.5: HASH JOIN (EE ONLY)
•  Enterprise Edition only
•  ANSI JOIN query only
•  Only considered when (new) USE HASH hint is specified
•  USE HASH(build) or USE HASH(probe)
•  Specify USE HASH hint on right-hand side keyspace
•  Can combine USE HASH with USE INDEX or USE KEYS
•  Requires equality join predicate(s)
•  Hash join is preferred when USE HASH is specified, however, if hash join cannot be
generated for some reason, nested-loop join is considered
•  Beneficial for “large” joins
SELECT DISTINCT route.destinationairport
FROM `travel-sample` airport JOIN `travel-sample` route USE HASH(probe)
INDEX(route_airports)
    ON airport.faa = route.sourceairport AND route.type = "route"
WHERE airport.type = "airport" AND airport.city = "San Jose" AND airport.country = "United
States";
24
Couchbase 5.5: Query Workbench Improvements
Auto Explain / Visual Explain
•  EXPLAIN is automatically run before every query
•  User can check plans to see why query ran slow or fast
•  Improved Query Plan Visualization
•  Layout in any direction, better panning/zooming
•  Easier to read
•  Improved tooltips
High Performance Tabular View
•  Tabular results view used to get slow with 750kb data
•  Now scales to > 100MB
•  Column headers always visible
Export/Copy as Tab-separated Text
•  Send results to Excel by exporting or copying as tab-
separated values.
Copy button
25
Couchbase 5.5: Query Workbench Improvements
Positional and Named Parameters
•  Run prepared queries
•  Parameters specified in Preferences dialog
Tabular Document Editor, with N1QL!
•  Previous document editor text only
•  Only supported searching by document key
•  New version:
•  Shows document in editable table
•  Can filter documents with N1QL WHERE clause
•  One button to copy, delete, edit, save document
26
Couchbase 5.5: N1QL Auditing
•  Problem: no idea who is doing what in the system.
•  Solution: N1QL auditing
•  Auditing available for all statement types
•  SELECT, INSERT, UPDATE, …
•  Auditing also available for all API endpoints of query engine.
•  /admin/stats, /admin/config, /admin/prepareds, …
•  Configurable from UI
•  Security/Audit tab
•  Selectable
•  Choose what query types to audit
•  Whitelist of trusted users who will not be audited
•  Cost varies depending on query type and how much to audit
•  Worst case: many small queries, everything audited (approx 20% throughput loss)
27
Vulcan Features : Prepared Statement
•  Prepared statements now automatically distributed across
N1QL nodes
•  Both in push and pull configuration
•  N1QL service monitors resource usage prior of execution
•  Statements silently prepared again if indexes or keyspaces change
•  …and automatically distributed to other nodes if reprepared
28
Couchbase 5.5: X.509
•  Couchbase Server uses X.509 certificates to encrypt its client-
server communication
•  Query service automatically refreshes certificates when server
certificates are updated
•  Query doesn’t mandate the presence of authorization headers
•  It supports client certificate authorization
•  To run a query successfully with client certificates –
curl --cacert ./root/ca.pem --cert-type PEM --cert ./client/client/
chain.pem --key-type PEM –key ./client/client/client.key 
https://localhost:18093/query/service -d "statement=select * from
system:keyspaces"
29
Couchbase 5.5: IPv6
•  Make query IPv6 compliant.
•  Server passes in --ipv6 to query which takes the value true or false. This
determines the mode in which the query service needs to operate. The
default value is false (IPv4).
•  IPv6 equivalents of 127.0.0.1 and 0.0.0.0 is ‘::1’ and ‘::’ respectively.
•  Construction of URLs
•  If we are using hostnames or fully qualified domain names there will be
no difference.
•  For constructing URLs with raw IPv6 addresses –
•  the IPv6 address must be enclosed within ‘[‘ and ‘]’ brackets.  When we
construct urls using localhost for example. For example:
http://[::1]:8091/pools/default
•  CBQ shell also supports connection to IPV6 addresses.
30
Couchbase 5.5: Curl Whitelist
CUSTOMER PROBLEM OR SCENARIO
•  The curl_whitelist.json file needed to be created on every query node in … /var/lib/
couchbase/n1qlcerts/ by the user
•  Could have different values for each query node
•  Needed to be part of cbcollect info
SOLUTION
•  UI now supports setting curl whitelist.
•  This is propagated to all query nodes
31
Couchbase 5.5: PERFORMANCE
Query workload - TCO Improvement Queries/Sec
•  Average N1QL throughput improved by 50%+
•  Latency improved by 20% in performance test bed
•  Memory consumption reduced substantially
•  Faster document loading from KV
•  Memory and CPU usage improvements in projector as well
Index grouping and aggregation
•  Latency 5 times to 10 times lower
•  Throughput 10 times to 20 times higher
Workload 5.0 5.5 Improvement
USE KEYS 33K 64K 95%
Equality
predicate
22K 33K 55%
!
DOWNLOAD 5.5 DB BUILD
HTTP://COUCHBASE.COM
READ:
DOCS.COUCHBASE.COM
BLOG.COUCHBASE.COM

More Related Content

What's hot

What's hot (20)

Parallel SQL and Analytics with Solr: Presented by Yonik Seeley, Cloudera
Parallel SQL and Analytics with Solr: Presented by Yonik Seeley, ClouderaParallel SQL and Analytics with Solr: Presented by Yonik Seeley, Cloudera
Parallel SQL and Analytics with Solr: Presented by Yonik Seeley, Cloudera
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionality
 
Drill / SQL / Optiq
Drill / SQL / OptiqDrill / SQL / Optiq
Drill / SQL / Optiq
 
SQL on Big Data using Optiq
SQL on Big Data using OptiqSQL on Big Data using Optiq
SQL on Big Data using Optiq
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21
 
How to integrate Splunk with any data solution
How to integrate Splunk with any data solutionHow to integrate Splunk with any data solution
How to integrate Splunk with any data solution
 
Webinar: What's New in Solr 6
Webinar: What's New in Solr 6Webinar: What's New in Solr 6
Webinar: What's New in Solr 6
 
Creating New Streams: Presented by Dennis Gove, Bloomberg LP
Creating New Streams: Presented by Dennis Gove, Bloomberg LPCreating New Streams: Presented by Dennis Gove, Bloomberg LP
Creating New Streams: Presented by Dennis Gove, Bloomberg LP
 
Native Code, Off-Heap Data & JSON Facet API for Solr (Heliosearch)
Native Code, Off-Heap Data & JSON Facet API for Solr (Heliosearch)Native Code, Off-Heap Data & JSON Facet API for Solr (Heliosearch)
Native Code, Off-Heap Data & JSON Facet API for Solr (Heliosearch)
 
Drilling Cyber Security Data With Apache Drill
Drilling Cyber Security Data With Apache DrillDrilling Cyber Security Data With Apache Drill
Drilling Cyber Security Data With Apache Drill
 
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
 
Importing Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowImporting Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflow
 
Data Exploration with Apache Drill: Day 1
Data Exploration with Apache Drill:  Day 1Data Exploration with Apache Drill:  Day 1
Data Exploration with Apache Drill: Day 1
 
A smarter Pig: Building a SQL interface to Apache Pig using Apache Calcite
A smarter Pig: Building a SQL interface to Apache Pig using Apache CalciteA smarter Pig: Building a SQL interface to Apache Pig using Apache Calcite
A smarter Pig: Building a SQL interface to Apache Pig using Apache Calcite
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2
 
Indexing and Performance Tuning
Indexing and Performance TuningIndexing and Performance Tuning
Indexing and Performance Tuning
 
Mentor Your Indexes
Mentor Your IndexesMentor Your Indexes
Mentor Your Indexes
 
Optimizer percona live_ams2015
Optimizer percona live_ams2015Optimizer percona live_ams2015
Optimizer percona live_ams2015
 
Updates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI IndexesUpdates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI Indexes
 
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
 

Similar to Couchbase 5.5: N1QL and Indexing features

MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
Morgan Tocker
 
Developers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman OracleDevelopers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman Oracle
mCloud
 
1 extreme performance - part i
1   extreme performance - part i1   extreme performance - part i
1 extreme performance - part i
sqlserver.co.il
 

Similar to Couchbase 5.5: N1QL and Indexing features (20)

MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats new
 
MySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer GuideMySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer Guide
 
Enterprise Architect's view of Couchbase 4.0 with N1QL
Enterprise Architect's view of Couchbase 4.0 with N1QLEnterprise Architect's view of Couchbase 4.0 with N1QL
Enterprise Architect's view of Couchbase 4.0 with N1QL
 
Top 10 tips for Oracle performance
Top 10 tips for Oracle performanceTop 10 tips for Oracle performance
Top 10 tips for Oracle performance
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
 
Introduction 6.1 01_architecture_overview
Introduction 6.1 01_architecture_overviewIntroduction 6.1 01_architecture_overview
Introduction 6.1 01_architecture_overview
 
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
 
MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
 
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
 
Developers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman OracleDevelopers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman Oracle
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document Store
 
Optimizer overviewoow2014
Optimizer overviewoow2014Optimizer overviewoow2014
Optimizer overviewoow2014
 
What's New in MySQL 5.7
What's New in MySQL 5.7What's New in MySQL 5.7
What's New in MySQL 5.7
 
Qubole - Big data in cloud
Qubole - Big data in cloudQubole - Big data in cloud
Qubole - Big data in cloud
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
 
What's new in SQL Server Integration Services 2012?
What's new in SQL Server Integration Services 2012?What's new in SQL Server Integration Services 2012?
What's new in SQL Server Integration Services 2012?
 
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
 
1 extreme performance - part i
1   extreme performance - part i1   extreme performance - part i
1 extreme performance - part i
 
Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019
 
cPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven FeaturescPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven Features
 

More from Keshav 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 NoSQL
Keshav Murthy
 

More from Keshav Murthy (20)

Couchbase Tutorial: Big data Open Source Systems: VLDB2018
Couchbase Tutorial: Big data Open Source Systems: VLDB2018Couchbase Tutorial: Big data Open Source Systems: VLDB2018
Couchbase Tutorial: Big data Open Source Systems: VLDB2018
 
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
 
From SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONFrom SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSON
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & Queries
 
Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune Queries
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and Indexing
 
Extended JOIN in Couchbase Server 4.5
Extended JOIN in Couchbase Server 4.5Extended JOIN in Couchbase Server 4.5
Extended JOIN in Couchbase Server 4.5
 
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
 
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
 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
 
Introducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONIntroducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSON
 
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.
 
N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.
 
Drilling on JSON
Drilling on JSONDrilling on JSON
Drilling on JSON
 
Accelerating analytics on the Sensor and IoT Data.
Accelerating analytics on the Sensor and IoT Data. Accelerating analytics on the Sensor and IoT Data.
Accelerating analytics on the Sensor and IoT Data.
 
You know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on InformixYou know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on Informix
 
Informix SQL & NoSQL: Putting it all together
Informix SQL & NoSQL: Putting it all togetherInformix SQL & NoSQL: Putting it all together
Informix SQL & NoSQL: Putting it all together
 
Informix SQL & NoSQL -- for Chat with the labs on 4/22
Informix SQL & NoSQL -- for Chat with the labs on 4/22Informix SQL & NoSQL -- for Chat with the labs on 4/22
Informix SQL & NoSQL -- for Chat with the labs on 4/22
 
NoSQL Deepdive - with Informix NoSQL. IOD 2013
NoSQL Deepdive - with Informix NoSQL. IOD 2013NoSQL Deepdive - with Informix NoSQL. IOD 2013
NoSQL Deepdive - with Informix NoSQL. IOD 2013
 
Informix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveInformix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep dive
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

Couchbase 5.5: N1QL and Indexing features

  • 1. N1QL : COUCHBASE 5.5 FEATURES Couchbase Query & Indexing Team
  • 2. AGENDA 02 03 N1QL & GSI Features in Spark (5.0) N1QL & GSI Features in Vulcan (5.5) 01 N1QL Overview for newbees
  • 5. 5 { "Name" : "Jane Smith", "DOB" : "1990-01-30", "Billing" : [ { "type" : "visa", "cardnum" : "5827-2842-2847-3909", "expiry" : "2019-03" }, { "type" : "master", "cardnum" : "6274-2842-2847-3909", "expiry" : "2019-03" } ], "Connections" : [ { "CustId" : "XYZ987", "Name" : "Joe Smith" }, { "CustId" : "PQR823", "Name" : "Dylan Smith" } { "CustId" : "PQR823", "Name" : "Dylan Smith" } ], "Purchases" : [ { "id":12, item: "mac", "amt": 2823.52 } { "id":19, item: "ipad2", "amt": 623.52 } ] } LoyaltyInfo Results Orders CUSTOMER •  NoSQL systems provide specialized APIs •  Key-Value get and set •  Each task requires custom built program •  Should test & maintain it
  • 6. 6 Find High-Value Customers with Orders > $10000 Query customer objects from database •  Complex codes and logic •  Inefficient processing on client side For each customer object Find all the order objects for the customer Calculate the total amount for each order Sum up the grand total amount for all orders If grand total amount > $10000, Extract customer data Add customer to the high-value customer list Sort the high-value customer list LOOPING OVER MILLIONS OF CUSTOMERS IN APPLICATION!!!
  • 7. 7 { "Name" : "Jane Smith", "DOB" : "1990-01-30", "Billing" : [ { "type" : "visa", "cardnum" : "5827-2842-2847-3909", "expiry" : "2019-03" }, { "type" : "master", "cardnum" : "6274-2842-2847-3909", "expiry" : "2019-03" } ], "Connections" : [ { "CustId" : "XYZ987", "Name" : "Joe Smith" }, { "CustId" : "PQR823", "Name" : "Dylan Smith" } { "CustId" : "PQR823", "Name" : "Dylan Smith" } ], "Purchases" : [ { "id":12, item: "mac", "amt": 2823.52 } { "id":19, item: "ipad2", "amt": 623.52 } ] } LoyaltyInfo ResultDocuments Orders CUSTOMER
  • 8. 8 N1QL = SQL + JSON Give developers and enterprises an expressive, powerful, and complete language for querying, transforming, and manipulating JSON data.
  • 9. 9 Why SQL for NoSQL?
  • 10. 10 N1QL: Inside the Query Service Client FetchParse Plan Join Filter Pre-Aggregate Offset Limit ProjectSortAggregateScan Query Service Index Service Data Service
  • 12. 12 N1QL features in Couchbase releases. 12 Couchbase 4.6.1: TOKENS (Simple Search/Faster LIKE), OpJmizer improvements Couchbase 5.0: Subqueries over nested data ; PaginaJon; RBAC; Curl, Super Charged Indexing; Monitoring & Profiling; New workbench, UI, monitoring, profiler, visual EXPLAIN Performance++, Bitwise funcJons Q1 2017 3Q 2017 Couchbase 4.6.2: OpJmizer improvements, intersect scan performance Q2 2017 Couchbase 5.5 (Developer Build NOW!): ANSI JOIN, HASH JOIN, N1QL AudiJng, TCO Improvements, Index Grouping and AggregaJon, Index ParJJoning, PREPARE Infrastructure, IPV6, X.509, ALTER INDEX placement of replicas, Query sehngs through UI, Query Workbench Improvements, Performance Improvements 3Q 2018(GA)
  • 14. 14 Couchbase N1QL and GSI features in 5.0 Query-Indexing Features •  Large Indexing Keysize •  Index key collation: ASC, DESC on each key •  Index replicas, just like data replication •  New storage engine: Plasma Query Language & Infrastructure •  Subquery Expressions •  Additional Date & time functions •  Bitwise functions •  CURL() within N1QL Query Optimizer •  Complex Filters Pushdown •  Pagination optimization •  Optimization for ASC, DESC keys •  Query-Index API optimization (projection, etc.) •  Index projections, Intersect scans •  Adaptive Indexes Security, Administration & Functionality •  Security: RBAC: Statement level security •  Query Monitoring, Profiling with UI •  Query work bench and UI: Fully upgraded •  Query UI: Visual Explain •  Query on Ephemeral buckets •  Application Continuity, Seamless Upgrade Performance •  Core daily workload •  YCSB •  YCSB-JSON for Engagement Database http://query.couchbase.com
  • 15. 3 FEATURES IN VULCAN(5.5)
  • 16. 16 Couchbase N1QL and GSI features in Couchbase 5.5 Query-Indexing Features •  Backfill settings •  ALTER INDEX changing placement of replica (EE) •  Grouping and aggregation Performance (EE) •  Index Partitioning (EE) Query Workbench •  Auto-Explain / Visual Explain (EE) •  High perf tabular view •  Positional & Named Parameters •  Tabular document editor Query + Optimizer •  ANSI JOINs •  HASH JOIN (EE) Security, Administration & Functionality •  N1QL Auditing (EE) •  PREPARE infrastructure •  X.509 support •  IPV6 support Performance •  Plasma improvements for DGM use cases (EE). •  Query workload – TCO improvement •  Aggregate & ANSI join workload •  YCSB •  YCSB-JSON for Engagement Database http://query.couchbase.com
  • 17. 17 Couchbase 5.5: BACKFILL SETTING CUSTOMER PROBLEM OR SCENARIO •  Results from index scan come back faster than query can consume. •  These results are saved in a temporary file, known as backfill •  In 5.0, this location was /tmp by default. •  Customers can (and have) run out of space. •  Make the backfill location configurable. •  Settable in Web console or REST API •  By default the path is /tmp – this is now settable •  By default the Quota is •  If set to -1 it means unlimited •  If set to 0 then backfill is disabled •  There is no upper limit, it depends on user system SOLUTION
  • 18. 18 Couchbase 5.5: ALTER INDEX CUSTOMER PROBLEM OR SCENARIO •  An imbalance occurs due to a particular index growing faster than expected and is needed on a different node. •  An imbalance occurs due to a cluster of indexes being dropped on a single node. •  A machine is scheduled for removal, so its indexes need to move off its current node. •  The automated process of rebalancing does not give the expected results. SOLUTION Alter Index support to change the placement of an existing index or replica among different GSI nodes. For example, if a node fails and you need to move it from node 172.23.130.24 to node 172.23.130.25 ALTER INDEX `travel-sample`.idx1 WITH {"action":"move","nodes": ["172.23.120.25:8091"]}
  • 19. 19 Couchbase 5.5: Grouping and Aggregation Performance (EE) CUSTOMER PROBLEM OR SCENARIO •  Grouping and Aggregation are expensive operations •  Latencies are high and cluster is not scaling BENEFITS •  High scalability •  Low query latencies •  Low TCO •  Automatic: No changes to query or index SOLUTION •  If query is covered by index, Let Indexer perform Grouping and Aggregation. •  Eliminate network transportation and disk I/0 due to backfill. These are slowest operations. EXAMPLE: •  CREATE INDEX ttype ON `travel- sample`(type); •  SELECT type, COUNT(1) AS cnt FROM `travel-sample` WHERE type IS NOT NULL GROUP BY type;
  • 20. 20 Couchbase 5.5: Index Partitioning Manageability: Scale out GSI Index create index route on bucket(airline, flight, source_airport, destination_airport) partition by hash(airline) •  Scale out partitions as cluster size grows •  Partition key must be immutable -- meta().id, immutable secondary key (e.g. airline) Performance: Partition Elimination Select flight from bucket where airline is not missing and source_airport = “SFO” •  Scatter-gather across all partitions Select flight from bucket where airline in [“UA”, “AA”] and source_airport = “SFO” •  Partition Elimination when predicate contains partition key : Only scan the partitions specified in predicate for faster range query response Performance: Parallelize Aggregate Scan Select count(flight) from bucket where airline is not missing group by source_airport, destination_airport •  Ability to parallelize scan on aggregate query across partitions
  • 21. 21 Couchbase 5.5: Index Partitioning Scan availability: Index scan can span partitions across replica create index route on bucket(airline, flight, source_airport, destination_airport) partition by hash(airline) with {“num_replica”:1} •  A single index scan can pick any available partition across all replica Manageability: Repair Lost Partition •  If partitions are lost due to node failover, those partitions can be repaired (rebuilt) on remaining nodes during rebalancing Performance: Scan Load Balancing •  Scan traffic is load balanced on partitioned index across replica •  Partition of a replica can be skipped if it is falling behind from other replica
  • 22. 22 Couchbase 5.5: ANSI JOIN What? •  ANSI standard for SQL join specification •  Supported in all major relational databases Why? •  Lowering barrier for migration to Couchbase •  Especially from relational databases •  Address limitation of N1QL joins •  Lookup join and index join requires joining on document key •  Parent-child or child-parent join only •  Only equi-join •  Proprietary syntax How? •  ON-clause to specify join condition, which can be any expression
  • 23. 23 Couchbase 5.5: HASH JOIN (EE ONLY) •  Enterprise Edition only •  ANSI JOIN query only •  Only considered when (new) USE HASH hint is specified •  USE HASH(build) or USE HASH(probe) •  Specify USE HASH hint on right-hand side keyspace •  Can combine USE HASH with USE INDEX or USE KEYS •  Requires equality join predicate(s) •  Hash join is preferred when USE HASH is specified, however, if hash join cannot be generated for some reason, nested-loop join is considered •  Beneficial for “large” joins SELECT DISTINCT route.destinationairport FROM `travel-sample` airport JOIN `travel-sample` route USE HASH(probe) INDEX(route_airports)     ON airport.faa = route.sourceairport AND route.type = "route" WHERE airport.type = "airport" AND airport.city = "San Jose" AND airport.country = "United States";
  • 24. 24 Couchbase 5.5: Query Workbench Improvements Auto Explain / Visual Explain •  EXPLAIN is automatically run before every query •  User can check plans to see why query ran slow or fast •  Improved Query Plan Visualization •  Layout in any direction, better panning/zooming •  Easier to read •  Improved tooltips High Performance Tabular View •  Tabular results view used to get slow with 750kb data •  Now scales to > 100MB •  Column headers always visible Export/Copy as Tab-separated Text •  Send results to Excel by exporting or copying as tab- separated values. Copy button
  • 25. 25 Couchbase 5.5: Query Workbench Improvements Positional and Named Parameters •  Run prepared queries •  Parameters specified in Preferences dialog Tabular Document Editor, with N1QL! •  Previous document editor text only •  Only supported searching by document key •  New version: •  Shows document in editable table •  Can filter documents with N1QL WHERE clause •  One button to copy, delete, edit, save document
  • 26. 26 Couchbase 5.5: N1QL Auditing •  Problem: no idea who is doing what in the system. •  Solution: N1QL auditing •  Auditing available for all statement types •  SELECT, INSERT, UPDATE, … •  Auditing also available for all API endpoints of query engine. •  /admin/stats, /admin/config, /admin/prepareds, … •  Configurable from UI •  Security/Audit tab •  Selectable •  Choose what query types to audit •  Whitelist of trusted users who will not be audited •  Cost varies depending on query type and how much to audit •  Worst case: many small queries, everything audited (approx 20% throughput loss)
  • 27. 27 Vulcan Features : Prepared Statement •  Prepared statements now automatically distributed across N1QL nodes •  Both in push and pull configuration •  N1QL service monitors resource usage prior of execution •  Statements silently prepared again if indexes or keyspaces change •  …and automatically distributed to other nodes if reprepared
  • 28. 28 Couchbase 5.5: X.509 •  Couchbase Server uses X.509 certificates to encrypt its client- server communication •  Query service automatically refreshes certificates when server certificates are updated •  Query doesn’t mandate the presence of authorization headers •  It supports client certificate authorization •  To run a query successfully with client certificates – curl --cacert ./root/ca.pem --cert-type PEM --cert ./client/client/ chain.pem --key-type PEM –key ./client/client/client.key  https://localhost:18093/query/service -d "statement=select * from system:keyspaces"
  • 29. 29 Couchbase 5.5: IPv6 •  Make query IPv6 compliant. •  Server passes in --ipv6 to query which takes the value true or false. This determines the mode in which the query service needs to operate. The default value is false (IPv4). •  IPv6 equivalents of 127.0.0.1 and 0.0.0.0 is ‘::1’ and ‘::’ respectively. •  Construction of URLs •  If we are using hostnames or fully qualified domain names there will be no difference. •  For constructing URLs with raw IPv6 addresses – •  the IPv6 address must be enclosed within ‘[‘ and ‘]’ brackets.  When we construct urls using localhost for example. For example: http://[::1]:8091/pools/default •  CBQ shell also supports connection to IPV6 addresses.
  • 30. 30 Couchbase 5.5: Curl Whitelist CUSTOMER PROBLEM OR SCENARIO •  The curl_whitelist.json file needed to be created on every query node in … /var/lib/ couchbase/n1qlcerts/ by the user •  Could have different values for each query node •  Needed to be part of cbcollect info SOLUTION •  UI now supports setting curl whitelist. •  This is propagated to all query nodes
  • 31. 31 Couchbase 5.5: PERFORMANCE Query workload - TCO Improvement Queries/Sec •  Average N1QL throughput improved by 50%+ •  Latency improved by 20% in performance test bed •  Memory consumption reduced substantially •  Faster document loading from KV •  Memory and CPU usage improvements in projector as well Index grouping and aggregation •  Latency 5 times to 10 times lower •  Throughput 10 times to 20 times higher Workload 5.0 5.5 Improvement USE KEYS 33K 64K 95% Equality predicate 22K 33K 55%
  • 32. ! DOWNLOAD 5.5 DB BUILD HTTP://COUCHBASE.COM READ: DOCS.COUCHBASE.COM BLOG.COUCHBASE.COM