1

AppEngine の BlobStore にブロブを格納するために必要なデータ オーバーヘッドを処理しようとしています。

1KB の BLOB を保存するとします。BlobStore と DataStore でそれぞれ何バイトのコストがかかりますか?

言い換えれば、エンティティを BlobStore に移動する価値がある前に、エンティティはどのくらいの大きさである必要がありますか?

4

1 に答える 1

1

この質問への回答は文書化されていませんが、少し推測して、ブロブごとのオーバーヘッドを最小限に抑えることができます。

作成された各 BLOB には、BLOB 情報と BLOB キーが必要です。blob キーは 500 バイトだと思います。blob-info には、content_type (文字列)、作成時刻 (datetime)、ファイル名 (文字列)、およびサイズ (整数) があります。各文字列は、その長さよりも 1 バイト多いと想定できます。また、オプションのファイル名またはコンテンツ タイプ フィールドを使用しないと仮定します。この場合、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

2 つのコストが同じになる損益分岐点は 1130.2 バイトです。それ以上にするとブロブストアが安くなり、少なくするとデータストアが安くなります。もちろん、これは 518 バイトの最小オーバーヘッドに基づいており、多くの場合、オーバーヘッドが高くなることは間違いないので、経験則としては 2kb になるでしょう。

于 2012-10-22T13:31:22.623 に答える