为什么Microsoft Azure网站使用块blob而不是为日志添加blob

时间:2016-06-12 07:12:48

标签: azure azure-storage azure-web-sites azure-storage-blobs

我很困惑为什么Microsoft Azure更喜欢'block blob'来'追加blob'来进行应用程序日志记录。

我的理解是,使用'append blob'客户端可以简单地将一行文本附加到blob而无需将任何块下载到客户端。

追加'阻止blob'涉及下载blockid或内容并附加到该客户端,然后将其写回blob。涉及更多工作。

为什么Microsoft Azure没有使用在自己的实现中编写日志的预期方法?是否有使用'append blob'进行记录的警告?

2 个答案:

答案 0 :(得分:1)

确切地说,附加blob是相当新的,而带有块blob的日志记录解决方案又回来了。由于它所引入的遗留和所有当前依赖性,现在很难改变它。

答案 1 :(得分:1)

根据我的经验,Append blob会有一些开销 和限制可以追加多少次。 典型的日志有很多行逐一添加。

当附加次数变得非平凡时,阅读变得非常缓慢。 显然附加blob是内部的某种链表。 总之,更新块或页面blob的实际字节对性能更好。

另外,附加blob更新,日志可能是Azure上的第一个功能之一。

如果有一些公共API或库,它会很有用 这可以通过更新blob隐藏模拟追加的复杂性。