暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase是内存数据库吗?

原创 MQ4096 2020-01-10
1775

问题描述

OceanBase是内存数据库吗?

专家解答

OceanBase的内存主要有两大块:一部分是block cache,存放从磁盘读入的基线数据,在内存里只读(不修改);另外一部分内存存放增量(memtable)。OceanBase的数据写逻辑是内存里记录增量,所以内存脏块产生速度相比传统数据库而言很慢。当增量内存有一定规模的时候,脏块可以在内存里存放很久不落盘,以及增量内存可以容纳更多的脏块。这就是OceanBase被传为内存数据库的原因。增量内存脏块到一定比例时会发生minor freeze事件,随后部分脏块会临时写到磁盘上数据文件中以释放增量内存。默认每天会触发一次major freeze事件,将增量内存中的增量数据(脏块)和对应的基线数据在内存中合并然后写出到数据文件里,增量内存也释放了很多。

详细参考:《产品模块原理系列 |OceanBase内存管理原理解析》

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论