簡體   English   中英

雲存儲追加和記錄

[英]Cloud Storage Appending and Logging

哪種雲服務組合將允許存儲具有N個部分的日志,從而使其便宜且易於實現:

  1. 將新條目追加到日志
  2. 從日志中請求部分i -> j ,或至少部分i -> N
  3. 上面的請求是否具有高度一致性(即,在用戶附加條目N + 1之后讀取日志始終會導致條目N + 1可用)
  4. 日志條目可能很大(10 MB到100 MB),因此,假設對於將圖片上傳到某些服務的用戶,我存儲的日志條目為[log and user data | picture content] [log and user data | picture content] 雖然我可以很高興地將log and user datapicture content分開存儲,但是當我檢索日志時,我需要有效地獲取這兩個部分。

我已經有了一些研究和想法:

  • 盡管Google允許可能有用的compose功能,但S3 / Google Cloud Storage似乎不允許修改對象數據。
  • Google Cloud Storage和Windows Azure Storage是高度一致的,但S3可能無法使用數據庫來解決一致性問題。
  • Microsoft Azure可能是最好的選擇,因為它們的Blob似乎允許操縱單個頁面/塊。 但是,即使我可以確定最大Blob大小的上限,我也不確定使用Blob是否能真正滿足上述要求。 例如,要滿足要求2似乎很困難,而又沒有將日志編號與Blob編號相關聯的單獨位置(Blob / DB)。

答案表明我到目前為止提出的最接近最佳的方案還不錯,但我想知道我是否錯過了有關這些存儲提供商的戰略,還是我完全錯過的另一家提供商。 此外,如果我仍然堅持使用DB進行某些數據存儲,那么進行細微調整是否可以使其在多個雲提供商之間高效運行以達到成本和冗余目的就很有趣,盡管那可能只是個白日夢。

您可以考慮將每個日志條目作為單獨的Blob存儲在Azure存儲中。 有了這個解決方案;

  1. 創建一個新的blob
  2. 讀取blob i->j
  3. 通過單個API調用提交整個塊​​Blob內容( 放置塊列表 )后,該內容立即可讀
  4. 單個塊Blob最多可以存儲50K*4MB ,因此您可以將整個日志條目存儲在一個Blob中。

此外, 每個blob在Azure Storage中都有其自己的分區 因此,可以將Blob分布在許多服務器上,以擴展對它們的訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM