In the edge environment servers are no longer being co-located away from clients, instead they are being co-located with clients away from other servers, focusing on reliable and performant operation. Orchestration platforms, such as Kubernetes, are a key system being transitioned to the edge but they remain unsuited to the environment, stemming primarily from their critical key-value stores. In this work we derive requirements from the edge environment showing that, fundamentally, the design of distributed key-value datastores, such as etcd, is unsuited to meet them. Using these requirements, we explore the design space for distributed key-value datastores and implement two successive mutations of etcd for different points: mergeable-etcd and dismerge, trading linearizability for causal consistency based on CRDTs. mergeable-etcd retains the linear revision history but encounters inherent shortcomings, whilst dismerge embraces the causal model. Both stores are local-first, maintaining reliable performance under network partitions and variability, drastically surpassing etcd's performance, whilst maintaining competitive performance in reliable settings.
翻译:在边缘环境中,服务器不再与客户端分离部署,而是与客户端协同部署、远离其他服务器,其核心需求是可靠且高性能的运行。以Kubernetes为代表的编排平台正被逐步迁移到边缘环境,但由于其依赖的关键键值存储,这些平台仍难以适应边缘场景。本文从边缘环境推导出需求,并证明分布式键值数据存储(如etcd)的设计从根本上无法满足这些需求。基于这些需求,我们探索了分布式键值数据存储的设计空间,对etcd实施了两次连续改造以适配不同场景:mergeable-etcd和dismerge,前者基于CRDT以线性一致性换取因果一致性,后者则完全采用因果模型。两套存储系统均遵循本地优先原则,能在网络分区和波动条件下保持可靠性能,大幅超越etcd的性能表现,同时在可靠环境中仍具备竞争力的性能水平。