Why Couchbase?
Today’s mission-critical applications demand support for millions of interactions with end-users. Traditional databases were built for thousands. Designed for consistency and control, they lack agility, flexibility, and scalability. To execute multiple use cases, organizations are forced to deploy multiple types of databases, resulting in a “database sprawl” – and inefficiency, sluggish time to market, and poor customer experience. Traditional transactional and analytical databases predate today’s cloud-everywhere reality. A cloud-native data management platform offers you a real competitive edge.
Enterprises are realizing that the requirements for extraordinary customer engagement can’t be met just at the app tier. Building a great looking and well-designed app is just a start. The underlying database is what makes the difference. An Engagement Database powers multiple interactions and experiences by liberating the full potential of data, at any scale, across any channel or device, in order to drive a more meaningful relationship.
Couchbase Server is an open source, distributed, NoSQL document-oriented engagement database. It exposes a fast key-value store with managed cache for sub-millisecond data operations, purpose-built indexers for fast queries and a powerful query engine for executing SQL-like queries. For mobile and Internet of Things environments Couchbase also runs natively on-device and manages synchronization to the server.
Couchbase Server is specialized to provide low-latency data management for large-scale interactive web, mobile, and IoT applications. Common requirements that Couchbase Server was designed to satisfy include:
- Unified Programming Interface
- Query
- Search
- Mobile and IoT
- Analytics
- Core database engine
- Scale-out architecture
- Memory-first architecture
- Big data and SQL integrations
- Full-stack security
- Container and Cloud deployments
- High Availability
Couchbase scripts for dbas
Couchbase is also faster in reading and writing than other open source databases.
Upgrade is zero downtime.
Doc for Couchbase
https://docs.couchbase.com/server/6.5/getting-started/start-here.html
Video education for Couchbase
https://learn.couchbase.com/store
Enterprise and Comminity differences
https://www.couchbase.com/products/editions
export JAVA_HOME=/usr/java/jre1.8.0_241-amd64 export PATH=$PATH:$JAVA_HOME/bin export CAUCHBASE_HOME=/opt/couchbase export PATH=$PATH:$CAUCHBASE_HOME/bin export LD_LIBRARY_PATH=/opt/couchbase/lib export CLASSPATH=$CLASSPATH:/opt/couchbase/lib/* export PYTHONPATH=/opt/couchbase/lib/python
#Install cauchbase wget https://packages.couchbase.com/releases/6.0.0/couchbase-server-community-6.0.0-centos7.x86_64.rpm rpm -ivh couchbase-server-community-6.0.0-centos7.x86_64.rpm
#Start couchbase systemctl enable couchbase-server systemctl start couchbase-server systemctl status couchbase-server
#bucket-create couchbase-cli bucket-create --cluster=192.168.56.74:8091 --user Administrator --password password --bucket travel-data --bucket-type couchbase --bucket-ramsize 100 --bucket-replica 1 --compression-mode active
#backup mkdir -p /tmp/cbbackup/ cd /opt/couchbase/bin cbbackup http://192.168.56.74:8091 /tmp/cbbackup/ -u Administrator -p password
#restore
cbrestore /tmp/cbbackup http://192.168.56.74:8091 -u Administrator -p password --bucket-source=travel-data --bucket-destination=travel-data
#Audit setting couchbase-cli setting-audit -c 192.168.56.74:8091 --username Administrator \ --password password --audit-enabled 1 --audit-log-rotate-interval 604800 \ --audit-log-path /opt/couchbase/var/lib/couchbase/logs #List cluster couchbase-cli server-list -c 192.168.56.74:8091 --username Administrator \ --password password
#Couchbase terminal cd /opt/couchbase/bin ./cbq -u Administrator -p password -engine=http://192.168.56.74:8091/
#Dba queries SELECT * FROM system:keyspaces; select active_requests.* from system:active_requests; select * from system:completed_requests; SELECT * FROM system:my_user_info; SELECT * FROM system:user_info; SELECT * FROM system:nodes; SELECT * FROM system:functions; SELECT * FROM system:functions_cache;
#Audit’s effect on performance
Audit is closed with all futures . Stress test :
1000000 row , 10 min, 1.2gb. Bucket has 2 replica. 20persec.
Audit is opened with all futures . Stress test :
1000000 row , 10 min, 1.2gb. Bucket has 2 replica. 20persec. Audit file size = 256kb.
#Sample queries SELECT callsign FROM `travel-sample` LIMIT 5; SELECT * FROM `travel-sample` WHERE type="airport" LIMIT 1; SELECT name FROM `travel-sample` WHERE type="hotel" AND city="Medway" and pets_ok=true LIMIT 10; SELECT name,phone FROM `travel-sample` WHERE type="hotel" AND city="Manchester" and directions IS NOT MISSING ORDER BY name LIMIT 10;
#perf metric data cbstats 192.168.56.74:11210 -j -u Administrator -p password -b travel-data all
#Rebalance status with http protocol as rest api curl --silent -u Administrator:password 192.168.56.74:8091/pools/default/tasks | python -mjson.tool | grep -A1 -B4 rebalance
#Stats on web interface http://192.168.56.74:8091/pools/default/buckets/travel-data/stats
#Data load for stress test
cbworkloadgen -n 192.168.56.74:8091 \ -n 192.168.56.74:8091 \ -u Administrator -p password \ -r .9 -i 1000000 -j \ -s 100 \ -b travel-data \ -t 10
#Cluster server list couchbase-cli server-list -c 192.168.56.74:8091 --username Administrator --password password curl -u Administrator:password -v -X GET http://192.168.56.74:8091/pools/default | jq '.' | grep hostname
#Session time out set curl -X POST -u Administrator:password \ http://192.168.56.74:8091/settings/security \ -d "uiSessionTimeout=600"
#Stats cbstats -b travel-data -u Administrator -p password \ 192.168.56.74:11210 vbucket | grep 1014 Thanks