I had an opportunity to attend Couchbase Day to learn about the product. I’ve included my notes below, link to the presentation slides and other resources.
Fail Over
- If a machine was power off by mistake and bought backup and able to read, it will require lighter weight recovery. This feature is in 3.x
- Can configure 0-3 replicas
- Always have 1024 partitions/virtual buckets
- More nodes, more possible failures. That’s why some have more than one replicas.
- Async replication.
- Adding more node = adding more cache
- A possible node configuration: 256 GB of memory
- Sweet spot on cluster size: 5-75 node
Scaling
- Can scale any of the services independently:
- Query Service
- Index Service
- Data Service
- For starting cluster of 5 nodes, a recommended configuration is one of each service on each node.
- Once the cluster grows to a larger size, around 20 nodes, change capacity based on the workload.
Data Modeling
- Does not handle all use cases. A possible alternative is Elastic Search
- Limit: 250 bytes key size
- Recommendation: do not put space in key
- Ideal number of buckets: 1 (Okay if less than 5)
Migrate from rational DB
- Map tables to JSON first
- Pick a top query or top n Queries to optimize for performance
API
- Recommend to implement versioning in application level instead of using non-public interface in the API
- All documents have CAS value. This allows developers to use this value for optimistic concurrency locking.
- Corporative locking
- Locks have timeout
- Applications should have the same traversal of the relationship graph when lock to avoid deadlock
N1QL
- Quey Portal
- query.couchbase.com
- Query Workbench
Mobile
- Can subscribe to a channel to sync only desired data
- Encryption capabilities information not in presentation
- Can sync between devices, only between devices with the same OS
Resources
- Free Online Courses
- Blog
- Forum
- Books
- Pro Couchbase Server Amazon
- Presentation