17#include "common/sys/rc.h"
18#include "common/lang/vector.h"
19#include "common/lang/string.h"
20#include "common/lang/unordered_map.h"
21#include "common/lang/memory.h"
22#include "common/lang/span.h"
23#include "sql/parser/parse_defs.h"
24#include "storage/buffer/disk_buffer_pool.h"
25#include "storage/clog/disk_log_handler.h"
26#include "storage/buffer/double_write_buffer.h"
27#include "oblsm/include/ob_lsm.h"
59 RC
init(
const char *
name,
const char *dbpath,
const char *trx_kit_name,
const char *log_handler_name);
67 RC
create_table(
const char *table_name, span<const AttrInfoSqlNode> attributes,
68 const StorageFormat storage_format = StorageFormat::ROW_FORMAT,
69 const StorageEngine storage_engine = StorageEngine::HEAP);
81 const char *
name()
const;
84 void all_tables(vector<string> &table_names)
const;
101 string path()
const {
return path_; }
BufferPool的管理类
Definition: disk_buffer_pool.h:322
一个DB实例负责管理一批表
Definition: db.h:46
RC open_all_tables()
打开所有的表。在数据库初始化的时候会执行
Definition: db.cpp:193
LogHandler & log_handler()
获取当前数据库的日志处理器
Definition: db.cpp:410
string name_
数据库名称
Definition: db.h:120
oceanbase::ObLsm * lsm_
当前数据库的 LSM-Tree 存储引擎
Definition: db.h:126
RC init_dblwr_buffer()
初始化数据库的double buffer pool
Definition: db.cpp:398
unique_ptr< TrxKit > trx_kit_
当前数据库的事务管理器
Definition: db.h:125
RC init(const char *name, const char *dbpath, const char *trx_kit_name, const char *log_handler_name)
初始化一个数据库实例
Definition: db.cpp:48
RC init_meta()
初始化元数据。在数据库初始化的时候,加载元数据
Definition: db.cpp:313
RC create_table(const char *table_name, span< const AttrInfoSqlNode > attributes, const StorageFormat storage_format=StorageFormat::ROW_FORMAT, const StorageEngine storage_engine=StorageEngine::HEAP)
创建一个表
Definition: db.cpp:147
unordered_map< string, Table * > opened_tables_
当前所有打开的表
Definition: db.h:122
BufferPoolManager & buffer_pool_manager()
获取当前数据库的buffer pool管理器
Definition: db.cpp:411
unique_ptr< BufferPoolManager > buffer_pool_manager_
当前数据库的buffer pool管理器
Definition: db.h:123
RC flush_meta()
刷新数据库的元数据到磁盘中。每次执行sync时会执行此操作
Definition: db.cpp:353
LSN check_point_lsn_
当前数据库的检查点LSN。会记录到磁盘中。
Definition: db.h:131
TrxKit & trx_kit()
获取当前数据库的事务管理器
Definition: db.cpp:412
string path_
数据库文件存放的目录
Definition: db.h:121
const char * name() const
当前数据库的名称
Definition: db.cpp:232
unique_ptr< LogHandler > log_handler_
当前数据库的日志处理器
Definition: db.h:124
Table * find_table(const char *table_name) const
根据表名查找表
Definition: db.cpp:174
void all_tables(vector< string > &table_names) const
列出所有的表
Definition: db.cpp:234
RC recover()
恢复数据。在数据库初始化的时候运行。
Definition: db.cpp:280
int32_t next_table_id_
给每个table都分配一个ID,用来记录日志。这里假设所有的DDL都不会并发操作,所以相关的数据都不上锁
Definition: db.h:129
RC sync()
将所有内存中的数据,刷新到磁盘中。
Definition: db.cpp:241
对外提供服务的CLog模块
Definition: log_handler.h:40
事务管理器
Definition: trx.h:99
ObLsm is a key-value storage engine for educational purpose. ObLsm learned a lot about design from le...
Definition: ob_lsm.h:27