Skip to content

Instantly share code, notes, and snippets.

@kksh3ll
Last active October 23, 2022 03:41
Show Gist options
  • Select an option

  • Save kksh3ll/ccc7c3ccb247b88cad34752e7b6527fe to your computer and use it in GitHub Desktop.

Select an option

Save kksh3ll/ccc7c3ccb247b88cad34752e7b6527fe to your computer and use it in GitHub Desktop.
基于kine加入适配层后端使用tidb扩展etcd

仓库 地址

RFC: 基于kine加入适配层后端使用tidb扩展etcd

发际线保护协会

李刚、孙兴、路晓梦

项目概述

etcd 天然支持分布式、高可用,支持集群,并且在 K8s 等领域有大量的应用实践。

项目背景

etcd 基于 BoltDB,容量具有上限,这些自身的架构问题,导致etcd在数据存储方面有缺陷。

实现介绍

作为适配中间层,kine项目完整地实现了 etcd 需要支持的 watch 功能,且模拟了 etcd 的 MVCC 特性,支持 Compact。

适配层

  • 事件接受器 通过发送通道,用户可以反馈事件给适配层。

  • 对象监听器 监听服务对每一次的请求进行转发。

后端模块

  • B树实现基础服务后端接口,每一次的变更、写入、更新或者删除在TiDB 里就是一行数据。
  • 每行数据的主键就是 etcd 的 Revision,也就是计数器,记录最新变更的次数。
  • 通过这种方式, 实现了多版本的支持

配置中心

  • 配置文件 数据库的安全证书及配置项,连接配置文件,配置更改应用。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment