2014-11-24 67 views
2

我正在使用包含有關唱片的信息的測試數據庫與CouchDB一起測試。 關於在特定時刻數據庫中的信息是:複製CouchDB數據庫中的不同data_size

{ 
    "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來自:

  • DATA_SIZE(數字) - 在數據庫中的數據的字節的實際數據的大小。
  • disk_size(number) - 存儲在磁盤上的數據的字節大小。計算中不包括視圖索引。

...什麼是「數據庫數據的實際數據大小(字節數)」

+0

它可能與壓縮階段有關嗎? – Amanda 2014-11-24 13:53:59

回答

2

data_size不僅是關於所有存儲文件的摘要大小。它還涉及複製檢查點(存儲在_local文檔中),數據庫文件頭,安全對象和一些其他屬性。複製只傳輸文件(不包括_local文件),所以源和目標data_size不同,這並不意外。

+0

謝謝@Kxepal。所以數據不僅是實際數據,也是元數據。你知道關於如何管理複製過程的文檔嗎? – Amanda 2014-11-25 08:16:03

+0

您可以查看[複製協議定義](http://docs.couchdb.org/en/latest/replication/protocol.html)。 – Kxepal 2014-11-25 11:35:08

+0

好的@Kxepal,謝謝。 – Amanda 2014-11-25 12:20:06

相關問題