Dear CB team ,
Lot of CB blog and other technical materials and some forums threads makes me very confused on all those definitions. I am new to CB and learning to get the grip on the fundamentals. Can you please help to clarify this with clarity ?
Read through below but still unclear few things:
This is what I assume correct term . please correct me inline if this is NOT correct understanding.
- Namespace is logical group of Buckets. and how the ‘default’ namespace edited to different name ?
- Buckets are nothing but Keyspaces . 1 Keyspace is equivalent to 1 table in relational world. 1 keyspace is not 1 relational record and neither one documents inside bucket.
- One Bucket can contain multiple different Keyspaces ? or is this a simple one to one relationship ? Keyspaces are not same as keys ?
- Multiple Keyspaces can mapped to vBuckets using CB internal HASH Key maintained by CB internal Hashing algorithm .
- vBuckets are conceptual and can’t be accessed programatically or using any SDK either ?
- vBuckets will be replicated in cluster nodes and each vBucket must present to every cluster node
- vBucket are mapped to each server in cluster nodes using CB internal mapping algorithm and using Cluster map lookup .
- each bucket can have 1024 max vBuckets ? not matter how big the storage for the cluster nodes
Also in all above definitions what is logical and physical ?
One a separate question , what is the best practice of defining keys in documents ? Can we use :: as separator if we want multiple column values to be part of key ? or is this key should be as relational world surrogate key ?
Thanks for help