SlideShare a Scribd company logo
1 of 40
Download to read offline
https://docs.microsoft.com/en-us/sql/relational-databases/search/full-text-search
bleve
Text Indexing Text Analysis Query
https://issues.couchbase.com/browse/MB-21018
REST API endpoint list
Viewing Cluster Details
Buckets API
Type Field name Remark
CPU cpu_utilization
SWAP swap_used
Free memory mem_free
Total memory mem_total
Type Field name Remark
disk consumed couch_docs_actual_disk_size the physical memory used in
the node
background fetches ep_bg_fetched data not in the cache and
pulled from disk
Type Field name Remark
Operations Per Second ops This is a fundamental measure of
the total number of gets, sets,
increment, and decrements that
occur for a given bucket.
Cache Miss ep_cache_miss_rate The metric counts the ratio of
requested objects found in the
cache in relation to what is needed
to be fetched from disk;
as close to 0 as possible
Fragmentation couch_docs_fragmentation measure should auto-compaction
be set on a scheduled basis
Type Field name Remark
Working Set ep_bg_fetched /
vb_active_resident_items_ratio
The resident items ratio and
memory headroom metrics to
understand if your bucket has
enough capacity to store the most
requested objects in memory
Disk Drain ep_queue_size to monitor regardless of what
you’re application is doing is the
drain rate.
From a REST standpoint we can
monitor both the queue fill
(ep_diskqueue_fill) and how quickly
the queue is draining
(ep_diskqueue_drain) to track the
trend over time.
cbstats
Monitor Using the cbstats Utility
Indexes for N1QL
Query Execution with
Global Indexes
EXPLAIN
provides information
about the execution plan
for the statement.
API Query Use index
/notebooks findByOwnerOrHaveReadPermission
select count(*) from `dbee` where javaClass =
"com.delta.ssir.dbee.repository.entity.Notebook"
AND LOWER(owner) = "amber.lee"
OR (javaClass = "com.delta.ssir.dbee.repository.entity.Notebook" AND
owner != "amber.lee" AND
ANY per IN permissions SATISFIES per = {"id":"amber.lee", "permission":1,
"role": "1"} END)
CREATE INDEX notebook_owner_permissions
ON `dbee` (owner, ALL permissions)
WHERE javaClass =
"com.delta.ssir.dbee.repository.entity.Notebook"
countBySharedNote
select count(*) from `dbee` where javaClass =
"com.delta.ssir.dbee.repository.entity.Note"
AND shareNote == true
AND owner != "amber.lee"
AND ANY per IN permissions SATISFIES per = {"id":"amber.lee",
"permission":1, "role": "1"} END
CREATE INDEX
note_shareNote_owner_permissions
ON `dbee` (shareNote, owner, ALL permissions)
WHERE javaClass =
"com.delta.ssir.dbee.repository.entity.Note"
0
50
100
150
200
250
300
metric1 metric2 metric3
ElapsedTime(ms)
Metrics -findByOwnerOrHaveReadPermission
N1QL execution time
N1QL
Use Index
0
200
400
600
800
1000
1200
1400
metric1 metric2 metric3
ElapsedTime(ms)
Metrics - countBySharedNote
N1QL execution time
N1QL
Use Index
API Query Use index
/users/info findByName
select * from `dbee` where javaClass =
"com.delta.ssir.dbee.repository.entity.User"
AND name = “rich.lee”
CREATE INDEX user_name
ON `dbee` (name)
WHERE javaClass =
"com.delta.ssir.dbee.repository.entity.User"
countByOwnerAndIsDeletedFalse CREATE INDEX
note_owner_notebookId_isDeleted
ON `dbee` (owner, notebookId, isDeleted)
WHERE javaClass =
"com.delta.ssir.dbee.repository.entity.Note"
countByOwnerIgnoreCase (Notebook) Use notebook_owner_permissions
countByAllNoteSharedWithMe
SELECT COUNT(*) FROM #{#n1ql.bucket} WHERE #{#n1ql.filter} AND
owner != $1
AND ANY per IN permissions SATISFIES per = per = {"id":$1, "permission":$2,
"role": $3} END
Use note_shareNote_owner_permissions
API Query Use index
/markers findByMarkerTypeOrderBySeqAndParentIds
select count(*) from `dbee` where javaClass =
"com.delta.ssir.dbee.repository.entity.Marker”
AND markerType = $1 ORDER BY ARRAY_LENGTH(parentIds), seq
CREATE INDEX marker_markerType_owner
ON `dbee` (markerType, owner)
WHERE javaClass =
"com.delta.ssir.dbee.repository.entity.Marker"
findByOwnerAndMarkerTypeOrderBySeqAndParentIds
select count(*) from `dbee` where javaClass =
"com.delta.ssir.dbee.repository.entity.Marker”
AND owner = $1
AND markerType = $2
ORDER BY ARRAY_LENGTH(parentIds), seq
Use marker_markerType_owner
API Query Use index
/topics findByOwnerIgnoreCase CREATE INDEX topic_owner
ON `dbee` (owner)
WHERE javaClass =
"com.delta.ssir.dbee.repository.entity.Topic"
Array Indexing
Making the most of your Arrays… with N1QL Array Indexing
Indexing JSON in Couchbase
Indexing Best Practices

More Related Content

What's hot

Codeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework ComponentsCodeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework ComponentsAbdul Malik Ikhsan
 
Check username availability with vue.js and PHP
Check username availability with vue.js and PHPCheck username availability with vue.js and PHP
Check username availability with vue.js and PHPYogesh singh
 
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 Connecting Content Silos: One CMS, Many Sites With The WordPress REST API Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Connecting Content Silos: One CMS, Many Sites With The WordPress REST APICaldera Labs
 
Windows power shell and active directory
Windows power shell and active directoryWindows power shell and active directory
Windows power shell and active directoryDan Morrill
 
EPiServer report generation
EPiServer report generationEPiServer report generation
EPiServer report generationPaul Graham
 
An introduction to Laravel Passport
An introduction to Laravel PassportAn introduction to Laravel Passport
An introduction to Laravel PassportMichael Peacock
 
Ruby on Rails For .Net Programmers
Ruby on Rails For .Net ProgrammersRuby on Rails For .Net Programmers
Ruby on Rails For .Net Programmersdaveverwer
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jpToshiaki Maki
 
Using the new WordPress REST API
Using the new WordPress REST APIUsing the new WordPress REST API
Using the new WordPress REST APICaldera Labs
 
Using web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksUsing web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksBruno Rocha
 
Dance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkDance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkMichael Peacock
 

What's hot (20)

Codeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework ComponentsCodeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework Components
 
Phinx talk
Phinx talkPhinx talk
Phinx talk
 
Check username availability with vue.js and PHP
Check username availability with vue.js and PHPCheck username availability with vue.js and PHP
Check username availability with vue.js and PHP
 
Intro to-ant
Intro to-antIntro to-ant
Intro to-ant
 
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 Connecting Content Silos: One CMS, Many Sites With The WordPress REST API Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 
REST API with CakePHP
REST API with CakePHPREST API with CakePHP
REST API with CakePHP
 
My shell
My shellMy shell
My shell
 
Mysql & Php
Mysql & PhpMysql & Php
Mysql & Php
 
19. CodeIgniter imagini in mysql
19. CodeIgniter imagini in mysql19. CodeIgniter imagini in mysql
19. CodeIgniter imagini in mysql
 
Windows power shell and active directory
Windows power shell and active directoryWindows power shell and active directory
Windows power shell and active directory
 
EPiServer report generation
EPiServer report generationEPiServer report generation
EPiServer report generation
 
An introduction to Laravel Passport
An introduction to Laravel PassportAn introduction to Laravel Passport
An introduction to Laravel Passport
 
Ruby on Rails For .Net Programmers
Ruby on Rails For .Net ProgrammersRuby on Rails For .Net Programmers
Ruby on Rails For .Net Programmers
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
 
Diving into php
Diving into phpDiving into php
Diving into php
 
Web2py
Web2pyWeb2py
Web2py
 
Using the new WordPress REST API
Using the new WordPress REST APIUsing the new WordPress REST API
Using the new WordPress REST API
 
Using web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksUsing web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworks
 
Pagination in PHP
Pagination in PHPPagination in PHP
Pagination in PHP
 
Dance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkDance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech Talk
 

Similar to Couchbase & FTS

Entity Query API
Entity Query APIEntity Query API
Entity Query APImarcingy
 
Ruby on Rails Developer - Allerin
Ruby on Rails Developer - AllerinRuby on Rails Developer - Allerin
Ruby on Rails Developer - AllerinLauree R
 
[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화NAVER D2
 
Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperVinay Kumar
 
[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화Henry Jeong
 
Zend framework 03 - singleton factory data mapper caching logging
Zend framework 03 - singleton factory data mapper caching loggingZend framework 03 - singleton factory data mapper caching logging
Zend framework 03 - singleton factory data mapper caching loggingTricode (part of Dept)
 
How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30fiyuer
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your TeamGR8Conf
 
GHC Participant Training
GHC Participant TrainingGHC Participant Training
GHC Participant TrainingAidIQ
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gearsdion
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Hyun-Mook Choi
 
PostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active RecordPostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active RecordDavid Roberts
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 
Rails 3 overview
Rails 3 overviewRails 3 overview
Rails 3 overviewYehuda Katz
 
Building web framework with Rack
Building web framework with RackBuilding web framework with Rack
Building web framework with Racksickill
 
Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...
Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...
Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...DicodingEvent
 
Accelerated data access
Accelerated data accessAccelerated data access
Accelerated data accessgordonyorke
 
Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial EnEjb3 Struts Tutorial En
Ejb3 Struts Tutorial EnAnkur Dongre
 

Similar to Couchbase & FTS (20)

Entity Query API
Entity Query APIEntity Query API
Entity Query API
 
Ruby on Rails Developer - Allerin
Ruby on Rails Developer - AllerinRuby on Rails Developer - Allerin
Ruby on Rails Developer - Allerin
 
[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화
 
Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paper
 
[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화
 
Zend framework 03 - singleton factory data mapper caching logging
Zend framework 03 - singleton factory data mapper caching loggingZend framework 03 - singleton factory data mapper caching logging
Zend framework 03 - singleton factory data mapper caching logging
 
How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
 
GHC Participant Training
GHC Participant TrainingGHC Participant Training
GHC Participant Training
 
8 tune tusc
8 tune tusc8 tune tusc
8 tune tusc
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gears
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
 
PostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active RecordPostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active Record
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
Rails 3 overview
Rails 3 overviewRails 3 overview
Rails 3 overview
 
A Practical Multi-Tenant Cluster
A Practical Multi-Tenant ClusterA Practical Multi-Tenant Cluster
A Practical Multi-Tenant Cluster
 
Building web framework with Rack
Building web framework with RackBuilding web framework with Rack
Building web framework with Rack
 
Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...
Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...
Dicoding Developer Coaching #19: Android | Menyimpan Database Secara Local di...
 
Accelerated data access
Accelerated data accessAccelerated data access
Accelerated data access
 
Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial EnEjb3 Struts Tutorial En
Ejb3 Struts Tutorial En
 

More from Rich Lee

COSCUP 2023 Building Portable and Reliable Applications on Google Cloud
COSCUP 2023 Building Portable and Reliable Applications on Google CloudCOSCUP 2023 Building Portable and Reliable Applications on Google Cloud
COSCUP 2023 Building Portable and Reliable Applications on Google CloudRich Lee
 
2021 JCConf 使用Dapr簡化Java微服務應用開發
2021 JCConf 使用Dapr簡化Java微服務應用開發2021 JCConf 使用Dapr簡化Java微服務應用開發
2021 JCConf 使用Dapr簡化Java微服務應用開發Rich Lee
 
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...Rich Lee
 
JCConf.tw 2020 - Building cloud-native applications with Quarkus
JCConf.tw 2020 - Building cloud-native applications with QuarkusJCConf.tw 2020 - Building cloud-native applications with Quarkus
JCConf.tw 2020 - Building cloud-native applications with QuarkusRich Lee
 
Redis Cache design
Redis Cache designRedis Cache design
Redis Cache designRich Lee
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackRich Lee
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureRich Lee
 
Apache Spark Introduction
Apache Spark IntroductionApache Spark Introduction
Apache Spark IntroductionRich Lee
 
AWS IoT in action
AWS IoT in actionAWS IoT in action
AWS IoT in actionRich Lee
 
Realtime web development
Realtime web developmentRealtime web development
Realtime web developmentRich Lee
 
Event sourcing
Event sourcingEvent sourcing
Event sourcingRich Lee
 

More from Rich Lee (11)

COSCUP 2023 Building Portable and Reliable Applications on Google Cloud
COSCUP 2023 Building Portable and Reliable Applications on Google CloudCOSCUP 2023 Building Portable and Reliable Applications on Google Cloud
COSCUP 2023 Building Portable and Reliable Applications on Google Cloud
 
2021 JCConf 使用Dapr簡化Java微服務應用開發
2021 JCConf 使用Dapr簡化Java微服務應用開發2021 JCConf 使用Dapr簡化Java微服務應用開發
2021 JCConf 使用Dapr簡化Java微服務應用開發
 
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
 
JCConf.tw 2020 - Building cloud-native applications with Quarkus
JCConf.tw 2020 - Building cloud-native applications with QuarkusJCConf.tw 2020 - Building cloud-native applications with Quarkus
JCConf.tw 2020 - Building cloud-native applications with Quarkus
 
Redis Cache design
Redis Cache designRedis Cache design
Redis Cache design
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stack
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Apache Spark Introduction
Apache Spark IntroductionApache Spark Introduction
Apache Spark Introduction
 
AWS IoT in action
AWS IoT in actionAWS IoT in action
AWS IoT in action
 
Realtime web development
Realtime web developmentRealtime web development
Realtime web development
 
Event sourcing
Event sourcingEvent sourcing
Event sourcing
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 

Couchbase & FTS

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 12.
  • 13.
  • 14. bleve
  • 15. Text Indexing Text Analysis Query
  • 16.
  • 18.
  • 19.
  • 20.
  • 21. REST API endpoint list Viewing Cluster Details Buckets API
  • 22. Type Field name Remark CPU cpu_utilization SWAP swap_used Free memory mem_free Total memory mem_total
  • 23. Type Field name Remark disk consumed couch_docs_actual_disk_size the physical memory used in the node background fetches ep_bg_fetched data not in the cache and pulled from disk
  • 24. Type Field name Remark Operations Per Second ops This is a fundamental measure of the total number of gets, sets, increment, and decrements that occur for a given bucket. Cache Miss ep_cache_miss_rate The metric counts the ratio of requested objects found in the cache in relation to what is needed to be fetched from disk; as close to 0 as possible Fragmentation couch_docs_fragmentation measure should auto-compaction be set on a scheduled basis
  • 25. Type Field name Remark Working Set ep_bg_fetched / vb_active_resident_items_ratio The resident items ratio and memory headroom metrics to understand if your bucket has enough capacity to store the most requested objects in memory Disk Drain ep_queue_size to monitor regardless of what you’re application is doing is the drain rate. From a REST standpoint we can monitor both the queue fill (ep_diskqueue_fill) and how quickly the queue is draining (ep_diskqueue_drain) to track the trend over time.
  • 26. cbstats Monitor Using the cbstats Utility
  • 28.
  • 30.
  • 31.
  • 32. EXPLAIN provides information about the execution plan for the statement.
  • 33.
  • 34. API Query Use index /notebooks findByOwnerOrHaveReadPermission select count(*) from `dbee` where javaClass = "com.delta.ssir.dbee.repository.entity.Notebook" AND LOWER(owner) = "amber.lee" OR (javaClass = "com.delta.ssir.dbee.repository.entity.Notebook" AND owner != "amber.lee" AND ANY per IN permissions SATISFIES per = {"id":"amber.lee", "permission":1, "role": "1"} END) CREATE INDEX notebook_owner_permissions ON `dbee` (owner, ALL permissions) WHERE javaClass = "com.delta.ssir.dbee.repository.entity.Notebook" countBySharedNote select count(*) from `dbee` where javaClass = "com.delta.ssir.dbee.repository.entity.Note" AND shareNote == true AND owner != "amber.lee" AND ANY per IN permissions SATISFIES per = {"id":"amber.lee", "permission":1, "role": "1"} END CREATE INDEX note_shareNote_owner_permissions ON `dbee` (shareNote, owner, ALL permissions) WHERE javaClass = "com.delta.ssir.dbee.repository.entity.Note"
  • 35. 0 50 100 150 200 250 300 metric1 metric2 metric3 ElapsedTime(ms) Metrics -findByOwnerOrHaveReadPermission N1QL execution time N1QL Use Index
  • 36. 0 200 400 600 800 1000 1200 1400 metric1 metric2 metric3 ElapsedTime(ms) Metrics - countBySharedNote N1QL execution time N1QL Use Index
  • 37. API Query Use index /users/info findByName select * from `dbee` where javaClass = "com.delta.ssir.dbee.repository.entity.User" AND name = “rich.lee” CREATE INDEX user_name ON `dbee` (name) WHERE javaClass = "com.delta.ssir.dbee.repository.entity.User" countByOwnerAndIsDeletedFalse CREATE INDEX note_owner_notebookId_isDeleted ON `dbee` (owner, notebookId, isDeleted) WHERE javaClass = "com.delta.ssir.dbee.repository.entity.Note" countByOwnerIgnoreCase (Notebook) Use notebook_owner_permissions countByAllNoteSharedWithMe SELECT COUNT(*) FROM #{#n1ql.bucket} WHERE #{#n1ql.filter} AND owner != $1 AND ANY per IN permissions SATISFIES per = per = {"id":$1, "permission":$2, "role": $3} END Use note_shareNote_owner_permissions
  • 38. API Query Use index /markers findByMarkerTypeOrderBySeqAndParentIds select count(*) from `dbee` where javaClass = "com.delta.ssir.dbee.repository.entity.Marker” AND markerType = $1 ORDER BY ARRAY_LENGTH(parentIds), seq CREATE INDEX marker_markerType_owner ON `dbee` (markerType, owner) WHERE javaClass = "com.delta.ssir.dbee.repository.entity.Marker" findByOwnerAndMarkerTypeOrderBySeqAndParentIds select count(*) from `dbee` where javaClass = "com.delta.ssir.dbee.repository.entity.Marker” AND owner = $1 AND markerType = $2 ORDER BY ARRAY_LENGTH(parentIds), seq Use marker_markerType_owner
  • 39. API Query Use index /topics findByOwnerIgnoreCase CREATE INDEX topic_owner ON `dbee` (owner) WHERE javaClass = "com.delta.ssir.dbee.repository.entity.Topic"
  • 40. Array Indexing Making the most of your Arrays… with N1QL Array Indexing Indexing JSON in Couchbase Indexing Best Practices