我想獲得一個處理在AppEngine的BlobStore中存儲一個blob所需的數據開銷。假設我保存了一個1KB的Blob,那麼在BlobStore和DataStore中分別需要多少字節呢?每個條目的AppEngine BlobStore元數據有多大?
換句話說:一個實體在值得移植到BlobStore之前需要多大?
我想獲得一個處理在AppEngine的BlobStore中存儲一個blob所需的數據開銷。假設我保存了一個1KB的Blob,那麼在BlobStore和DataStore中分別需要多少字節呢?每個條目的AppEngine BlobStore元數據有多大?
換句話說:一個實體在值得移植到BlobStore之前需要多大?
這個問題的答案沒有記錄,但你可以做一些猜測工作來獲得每個blob的最小開銷。
創建的每個blob都需要blob信息和blob密鑰。我相信blob密鑰是500字節。 blob-info有一個content_type(字符串),創建時間(日期時間),文件名(字符串)和大小(整數)。我們可以假設each string uses 1 more byte than their length。另外,假設您不使用可選的文件名或內容類型字段。然後blob-info項將分別爲大約1個字節,8個字節,1個字節和8個字節,總共18個字節。
因此,blob項目的最小可能開銷至少爲每個blob 518字節,存儲在數據存儲中。但是我們還沒有完成,我們仍然需要找出最佳定價。
定價爲每月團塊店將是:
= $0.13/G * blob_file_size + 518 bytes * $0.24/gig
= blob_file_size/1024/1024*.13 + 0.00011856079
而完全在數據存儲定價存儲是:
= blob_file_size/1024/1024*.24
的盈虧平衡點,其中兩個花費相同的數量是1130.2字節。再次,blobstore會更便宜,而且數據存儲會更便宜。當然,這是基於518字節的最小開銷,我敢打賭,開銷通常會更高,所以也許經驗法則是2kb。
我喜歡這種方法。它可能會更大一點,因爲我認爲blobinfo存儲某種數據哈希,也可能是谷歌內部的東西,他們更有效地檢索blob。所以,我認爲你對2KB的估計聽起來非常合理,而且如果沒有實際的文檔,這可能是最好的。謝謝! –
這裏有一些關於數據存儲元數據的信息:https://developers.google.com/appengine/articles/storage_breakdown#anc-entitiestable –
你想存儲什麼樣的數據?選擇blobstore或數據存儲是一個功能考慮因素。我優先使用數據存儲來獲得較小的屬性。但是,當您使用Blobstore存儲小圖像(圖標)時,您可以使用Blobstore提供的高性能圖像。 – voscausa
@Adam:感謝您的鏈接,但不幸的是它似乎沒有談論BlobStore。 –