我使用包含有关唱片的信息的测试数据库对CouchDB进行测试。 有关特定时刻数据库的信息如下:
{
"db_name":"pink_floyd",
"doc_count":15,
"doc_del_count":0,
"update_seq":18,
"purge_seq":0,
"compact_running":false,
"disk_size":249967,
"data_size":223234,
"instance_start_time":"1416540541575948",
"disk_format_version":6,
"committed_update_seq":18
}
片刻之后我用curl回复了数据库:
curl -vH 'Content-Type: application/json' -X POST http://127.0.0.1:5984/_replicate -d ' {"source": "pink_floyd", "target": "pink_floyd_replica", "create_target": true, "continuous": true}'
然后(在该时间段内没有任何人使用过任何内容),有关复制数据库的信息是:
{
"db_name":"pink_floyd_replica",
"doc_count":15,
"doc_del_count":0,
"update_seq":15,
"purge_seq":0,
"compact_running":false,
"disk_size":229487,
"data_size":223198,
"instance_start_time":"1416543583594649",
"disk_format_version":6,
"committed_update_seq":15
}
我能理解" disk_size"原始数据库的字段大于复制数据库的同一字段,但我看不出为什么原始数据库" data_size"比新的更大。包括哪些字段和元数据?它是如何计算的?
来自CouchDB docs:
...那么什么是"数据库数据的实际数据大小(以字节为单位)" ?
答案 0 :(得分:2)
data_size
不仅与所有存储文档的摘要大小有关。它还涉及复制检查点(存储在_local docs中),数据库文件头,安全对象和一些其他属性。复制只传输文档(不包括_local文档),所以源和目标data_size
不同并不奇怪。