oceanbase / miniob

MiniOB is a compact database that assists developers in understanding the fundamental workings of a database.

Home Page:https://oceanbase.github.io/miniob/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

内存存储引擎

hnwyllmm opened this issue · comments

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

当前仅支持传统的磁盘存储引擎,为了能够让同学们学习更多的引擎以及使用MiniOB做更多的实验,希望可以支持更多的存储引擎。

ref #264

Describe the solution you'd like
A clear and concise description of what you want to happen.

支持内存存储引擎。
可以分期实现,比如第一个阶段做一个简单的内存存储引擎:

  • 使用页/块组织内存(当前MiniOB已经有内存缓存池,参考mem_pool.h);
  • 支持动态扩展;
  • Hash索引;
  • 引擎访问抽象层:SQL 引擎通过抽象接口访问内存存储引擎、默认引擎;
  • 建表支持指定存储引擎类型

暂时不做:

  • 支持事务;
  • 持久化(比如WAL);
  • 快照;
  • Range索引,比如 B+树

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

此功能比较简单,适合新手。主要挑战是引擎访问抽象层的设计,如何给当前默认的存储引擎以及新引擎提供统一的访问方式,可以参考MySQL的handler设计。

/assign