couchabse - sailing2014/Web-API-Guideline GitHub Wiki
Couchbase
Introduction
Benefits
-
Flexible Data Model - 灵活的数据模型
-
Easy Scalability - 易于大规模扩展
-
Consistent High Performance - 一致的高性能
-
Always online - 永久在线 (永不掉线)
Concepts
-
JSON Document = record
- Couchbase 被设计成存储 JSON documents. Every thing is document.
- The documents (records) can be indexed and queried with Views.
-
Data Buckets = database
- 功能上等同于关系数据库的 database
-
Key & Metadata
-
Document: 所有的数据都被以 document 的方式存放
- Key: Document ID, 每一个 document 都有一个用于唯一识别的 key, 功能上等同 RDB 中的 Primary Key. 一般是唯一识别的字符串。
- Value: JSON document or binary data
-
Metadata
- CAS: 是一个唯一识别的 ID,在 a document 发生修改或删除时,可用于提供数据保护,以免并发下的数据紊乱
- TTL: Time to Live, 过期时间(秒),缺省没有过期时间,即永久保存,除非显示地删除
- Flag: SDK-specific optional, 即 SDK 定义的可选项
-
-
Couchbase SDKs = Client Library
-
Nodes & Clusters
-
Node: A single instance couchbase server.
-
Cluster: A group of several servers. 所有在同一个集群中的节点,彼此是同等的,没有类似父子的层级关系。
- The topology 等集群相关信息,由 SDK 自动的获取,客户端无需过多关心。
-
View
- 用于对 Document 进行索引和查询
- 通过 Javascript 编写运行代码
- 在何时被执行?
Other Features
- Rebalancing
- Failover
Example
- Service
- Whole year - Invariable time: 12 Hours
- Portal
- Page Response Time (second)
Runtime | 200 Parallel | 1000 Parallel |
---|---|---|
Max | < 3 | < 3 |
Max(Internal) | < 1.5 | < 3 |
Mean | < 1 | < 1 |
- External Services API
- Response Time (second)
Runtime | 200 Parallel | 1000 Parallel |
---|---|---|
Max | < 3 | < 3 |
Max(Internal) | < 1 | < 1 |
Mean | < 0.1 | < 0.1 |
- Search API
- Max Supported QPS : 300 (response time < 1)
- Success Rate
- Average : 99% (99.9%)
- Result number (internal)
- Average : more than 5500000
- Have result : 95%
- Response Time (second) < 3
- Average : 0.3 (0.1)
- < 0.1 : 78.6% (80%)
- < 1 : 98.7% (99%)
- < 3 : 99.88% (99.99%)