oceanbase / oceanbase/miniob

内存存储引擎

Open
#345 5 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

feature help wanted
Dominant language
C++
Stars
4.4k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

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设计。

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.