SessionStore:边缘的会话感知数据存储
SessionStore: A Session-Aware Datastore for the Edge
摘要
对于设计在边缘数据中心上运行的存储系统来说,通过依赖最终一致的模型复制数据来避免与地理分布相关的高延迟是很常见的。最终一致性适用于许多边缘应用程序,因为只要客户端与相同的副本进行交互,存储系统就可以提供会话一致性。一种更强的一致性模型,它有两个额外的重要属性:(i) read-your-writes,当客户端读取更新过的对象时,将返回更新后的值或更新的值;(ii)monotonic reads单调读取,如果客户端已经看到一个对象的特定值,后续读取将返回相同的值或更新的值。虽然会话一致性不保证不同的客户端会以相同的顺序感知更新,但它仍然呈现给每个单独的客户端一个直观的世界观,与客户端自己的行动是一致的。不幸的是,随着时间的推移,当客户机与位于不同数据中心的多个副本交互时,这些一致性保证就会失效,这可能是由于应用程序分区或客户机或代码迁移的原因。
SessionStore是一种用于雾/边缘计算的数据存储,它确保了在最终一致的副本上的会话一致性。SessionStore通过将相关的数据访问分组到一个会话中,并使用一个会话感知的协调算法,在副本之间切换时,只协调与会话相关的数据,从而实现会话一致性。与完全复制协调相比,这种方法减少了高达90%的数据传输和延迟。
INTRODUCTION
边缘计算用额外的数据中心层扩展了传统的云架构,这些数据中心层提供更接近最终用户或设备的计算和存储。例如,服务于一个国家的广域云数据中心可以通过覆盖城市、社区和建筑级别的数据中心层次来扩大。边缘计算促进了下一代移动和物联网(Internet of Things)应用程序的发展,这些应用程序需要低延迟,或产生可能淹没网络的大量数据。
最新的边缘[3]-[6]存储系统通常依赖于最终一致的[7]、[8]模型来复制数据。这些系统在后台传播更新,并保证如果没有对一个对象进行新的更新,最终所有副本将收敛到相同的值。在许多应用程序中,客户端在会话期间与相同的副本进行交互时,最终一致性有很好的表现。原因是只要客户端与相同的副本交互,存储系统实际上就提供了会话一致性[7]。这是一种更强的一致性模型,具有额外的重要属性:read-your-writes, 后来来读数据的客户端读到的数据是被更新后的数据;monotonic reads单调读取,如果客户端已经看到一个对象的特定值,后续读取将返回相同的值或更新的值。虽然会话一致性不保证不同的客户端会以相同的顺序感知更新,但它仍然呈现给每个单独的客户端一个直观的世界观,与客户端自己的行动是一致的。可以从边缘会话一致性中受益的应用程序示例包括身份验证服务、文件存储应用程序和消息传递应用程序。我们将在第三节中描述更多关于边缘会话一致性的使用场景。
然而,当连续的客户端请求被发送到不同的副本时,会话一致性可能得不到保证。这种情况可能发生在边缘应用中: (i) 移动客户端在边缘[9][10]之间切换