标签:LevelDB

共 1 篇文章

PhxPaxos 源码阅读笔记(二):存储层

我原以为本篇不需要很多前置内容,但越写越发现还是需要,毕竟存储层存的内容已经和算法及实现息息相关了,所以建议还是先补充前置内容。

类似网络层,PhxPaxos 对存储层也进行了抽象,给用户留下了自行扩展的能力。本篇将对 PhxPaxos 内部实现的默认存储层进行介绍,方便有自行实现需求的用户可以将官方的设计作为参考。我大概理了一遍设计后,发现并不是太复杂,所以篇幅应该不会太长。

接口

在 include/phxpaxos/storage.h 中定义了存储层所需要提供的一些接口,如下:

class LogStorage
{
public:
    virtual ~LogStorage() {}

    virtual const std::string GetLogStorageDirPath(const int iGroupIdx) = 0;

    virtual int Get(const int iGroupIdx, const uint64_t llInstanceID, std::string & sValue) = 0 ...
阅读全文