- 在ENV 里面可以把levelDB的结果从写入到本地 改成写入到 hdfs 来实现数据的备份, 复制等操作 具体的做法就是调用hdfs的写入这些库来实现. 这样实现levelDB的分布实话非常方便
- levelDB的VersionSet 是管理者 version. 然后 每一个version 有一个列表, 这个列表是这个version 的对应的所有的SST文件. 所以你要查找某一个Version的数据的时候. 先会在这个VersionSet里面查找一遍包含这个当前快照的一个版本, 然后再从这个version 的这个list里面去具体的文件查找具体的内容
- 在一台机器上面getInstance()出来1000 levelDB的实例的话, 只会有一个compaction线程, 然后一个机器1000 个levelDB 实例和1个机器1个levelDB的实例的话 带来的好处是在机器挂掉得时候recovery的非常的快. 不过这样compaction起来就很费劲
- 在将本地文件写入到hdfs的节点中, 因为hdfs的写入性能比较慢. 所以在本地应该是writrBranch. 然后20ms向hdfs写一次. 这样比较适合.
- levelDB 如何实现原子的getAndSet. 因为levelDB不是再内存层面实现这个对具体某一个key操作. 所以这个levelDB 的getAndSet操作不是通过汇编层面实现的.