FISCO BCOS 1.3 中文文档
内存中数据结构比较简单,一个 ColumnFamily 对应一个唯一的 Memtable 对象,所以 Memtable 主要就是维护一个 ConcurrentSkipListMapColumnFamily> 类型的数据结构,当一 个新的 RowMutation 对象加进来时,Memtable 只要看看这个结构是否 ColumnFamily> 集合已经存在,没有的话就加进来,有的话取 集合已经存在,没有的话就加进来,有的话取 出这个 Key 对应的 ColumnFamily,再把它们的 Column 合并。 Cassandra 的写 的性能很好,好的原因就是因为 Cassandra 写到数据首先被写到 Memtable 中, 而 Memtable 是内存中的数据结构,所以 Cassandra 的写是写内存的,下图基本 上描述了一个 key/value 数据是怎么样写到 Cassandra 中的 Memtable 就会写到磁盘中。 Memtable 的条件满足后,它会创建一个 SSTableWriter 对象,然后取出 Memtable 中所有的 ColumnFamily> 集合,将 ColumnFamily 对 象的序列化结构写到 DataOutputBuffer 中。接下去 SSTableWriter 根据 DecoratedKey 和 DataOutputBuffer 分别写到 0 码力 | 491 页 | 5.72 MB | 1 年前3
共 1 条
- 1