Project1 StandaloneKV
在这个项目中,我们将会在列族的支持下建立一个独立的 key/value 存储 gRPC 服务。Standalone 意味着只有一个节点,而不是一个分布式系统。列族(CF, Column family)是一个类似 key 命名空间的术语,即同一个 key 在不同列族中的值是不同的。你可以简单地将多个 CF 视为独立的小型数据库。CF 在 Project4 中被用来支持事务模型。
该服务支持四个基本操作:Put/Delete/Get/Scan,它维护了一个简单的 key/value Pairs 的数据库,其中 key and value 都是字符串。
- Put:替换数据库中指定 CF 的某个 key 的 value。
- Delete:删除指定 CF 的 key 的 value。
- Get:获取指定 CF 的某个 key 的当前值。
- Scan:获取指定 CF 的一系列 key 的 current value。
该项目可以分为2个步骤,包括:
- 实现一个独立的存储引擎。
- 实现原始的 key/value 服务处理程序。
代码
gRPC 服务在 kv/main.go 中被初始化,它包含一个 tinykv.Server,它提供了名为 TinyKv 的 g