为什么 Microsoft Azure 网站使用块 blob 而不是附加 blob 用于日志
Why is Microsoft Azure Websites using block blobs instead of append blobs for logs
我很困惑为什么 Microsoft Azure 更喜欢 'block blob' 而不是 'append blob' 用于应用程序日志记录。
据我了解,使用 'append blob' 客户端可以简单地将一行文本附加到 blob,而无需将任何块下载到客户端。
附加到 'block blob' 涉及下载 blockid 或内容并附加到该客户端,然后将其写回 blob。涉及更多工作。
为什么 Microsoft Azure 没有在自己的实现中使用预期的写入日志的方法?使用 'append blob' 进行日志记录有什么注意事项吗?
确切地说,附加 blob 是相当新的,而带有块 blob 的日志记录解决方案可以追溯到很久以前。由于该遗留问题和它引入的所有当前依赖项,现在很难更改它。
根据我的经验,追加 blob 会产生一些开销
以及可以附加多少次的限制。
典型的日志有很多行一行一行地添加。
当追加数量变得不平凡时,读取变得非常慢。
显然 append blob 在内部是某种链表。
总而言之,更新块或页 blob 的实际字节有利于提高性能。
此外,Append blob 较新,日志可能是 Azure 的首批功能之一。
如果有一些 public API 或者图书馆的话会很有用
这可以通过更新 blob 来隐藏模拟追加的复杂性。
我很困惑为什么 Microsoft Azure 更喜欢 'block blob' 而不是 'append blob' 用于应用程序日志记录。
据我了解,使用 'append blob' 客户端可以简单地将一行文本附加到 blob,而无需将任何块下载到客户端。
附加到 'block blob' 涉及下载 blockid 或内容并附加到该客户端,然后将其写回 blob。涉及更多工作。
为什么 Microsoft Azure 没有在自己的实现中使用预期的写入日志的方法?使用 'append blob' 进行日志记录有什么注意事项吗?
确切地说,附加 blob 是相当新的,而带有块 blob 的日志记录解决方案可以追溯到很久以前。由于该遗留问题和它引入的所有当前依赖项,现在很难更改它。
根据我的经验,追加 blob 会产生一些开销 以及可以附加多少次的限制。 典型的日志有很多行一行一行地添加。
当追加数量变得不平凡时,读取变得非常慢。 显然 append blob 在内部是某种链表。 总而言之,更新块或页 blob 的实际字节有利于提高性能。
此外,Append blob 较新,日志可能是 Azure 的首批功能之一。
如果有一些 public API 或者图书馆的话会很有用 这可以通过更新 blob 来隐藏模拟追加的复杂性。