如图,Oceanbase数据库的存储引擎基于LSM Tree(结构日志合并) 架构。
从名字上来看,说明它是基于日志,有序存放的。
动态增量数据(放在MemTable中),还有个名词时memstore,在租户中,包括memstore和KVcache。
memtable可以理解为存放的时候是基于表的存放,是一种增量的数据
如:DML操作,在OB中update 有自己的特点与PG有相同点。
在PG中做update操作会先删除再插入,但数据不会真正删除,会标记为delete状态。
OB中做update操作与PG类似,直接插入一条新的数据,然后带上一条时间戳。不会像oracle一样直接在原来的行进行修改。
如上图,数据不会一直放在内存中,会放在静态基线数据,放在SSTable(Sorted String)中,看名字就知道它在底层是以排序好的字符串的形式。
为了持久化考虑,OB的默认事务级别和oracle一样,也是RC,提交后会把日志写到redo log中,在ob中也叫clog&#