Skip to content

littlersmall/db-memory-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

db-memory-model

一 内存模型整体结构图

二 sdk和strorage

三 dao和storage

四 DAO

1 Database dao

注:其中的init和save函数因参数和返回值不同,因此无法合并到SqlDb中。

2 Json Dao

五 Storage

1 mm_allocator 内存分配器。

(1)集中分配内存,每次64M

(2)集中释放

(3)标记使用方

(4)打印内存使用情况

2 comm_def

(1) 定义错误码

(2) 定义公用函数

3 table_manager

相当于一个数据库

(1) 载入数据

(2) 设置反向索引

(3) 释放所有内存

4 schema_manager

一个数据库的所有的表结构

(1) 载入所有table的配置文件(配置文件描述了表的结构和主键外键)

(2) 生成每个表的结构,包括列名,类型,外键关系,反向外键关系

5 table_schema

对应于一个表的表结构

(1) 生成每个表的主键,列,外键等关系

(2) 根据每列的顺序,维护一个列名到列id的哈希索引

(3) 并维护每个表的数据的具体位置

6 file_manager

(1) 管理文件名

(2) 遍历一个目录按条件获取文件名,并按照文件名排序

(3) 提供关于文件名的遍历操作

7 table_index

对于于数据库的一个表

(1) 维护一个表关于主键的哈希索引

(2) 提供添加一行数据的操作

(3) 将固定格式的文件数据通过mmap的方式载入内存

8 row_index

对应于数据库的一行

(1) 维护每行数据的真实地址指针

(2) 维护每行的当前状态(正常,被更新,已删除)

(3) 维护每行数据中,每一列数据位置的索引

(4) 维护每行数据的反向索引

(5) 提供修改列数据的接口

About

微型内存数据库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published