2012-10-05 9 views
1

我想獲得一個處理在AppEngine的BlobStore中存儲一個blob所需的數據開銷。假設我保存了一個1KB的Blob,那麼在BlobStore和DataStore中分別需要多少字節呢?每個條目的AppEngine BlobStore元數據有多大?

換句話說:一個實體在值得移植到BlobStore之前需要多大?

+0

這裏有一些關於數據存儲元數據的信息:https://developers.google.com/appengine/articles/storage_breakdown#anc-entitiestable –

+0

你想存儲什麼樣的數據?選擇blobstore或數據存儲是一個功能考慮因素。我優先使用數據存儲來獲得較小的屬性。但是,當您使用Blobstore存儲小圖像(圖標)時,您可以使用Blobstore提供的高性能圖像。 – voscausa

+0

@Adam:感謝您的鏈接,但不幸的是它似乎沒有談論BlobStore。 –

回答

1

這個問題的答案沒有記錄,但你可以做一些猜測工作來獲得每個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。

+0

我喜歡這種方法。它可能會更大一點,因爲我認爲blobinfo存儲某種數據哈希,也可能是谷歌內部的東西,他們更有效地檢索blob。所以,我認爲你對2KB的估計聽起來非常合理,而且如果沒有實際的文檔,這可能是最好的。謝謝! –

相關問題