并发问题和内存数据刷盘问题

【产品名称】

Oceanbase

【产品版本】

社区版

【问题描述】

1、OceanBase数据库是否支持高并发呢?并发读写的性能如何?

2、OceanBase存储数据会先存储在内存中,定时刷盘,那么更新表结构添加字段这种语句执行之后只修改的内存中的数据么?磁盘中的数据是否会及时的添加这字段呢?定时刷盘多久一次?这个频率是否可以配置?

  1. 绝大部分关系数据库都支持并发,OB自然。作为分布式数据库,高并发是基本能力。OB的线性扩展能力决定了 其并发最大能力可以随着机器规模的提升而提升。当然,客户实际业务是否如此还要看业务设计,实际效果会有一些折扣。设计好的话,并发读写能力会很高;设计不好的话,到一定规模就触达某个瓶颈了。
  2. OB的修改只会修改内存中数据,并且是记录变化的增量,而不是在原来数据块上修改。OB事务提交的时候会先生成redo log,然后把redo log发给其他成员,用paxos协议保证redo log在多数派节点都落盘成功。通常磁盘中的数据文件不会发生变化。当OB合并的时候,会把内存中增量对应的磁盘数据文件内容读入到内存中合并,然后再写回磁盘数据文件。这表示磁盘数据文件版本又推进一了。默认每天合并一次。还有一些其他合并触发策略,跟内存大小和转储设置有关。

666