diff --git a/docs/develop/总体设计文档.md b/docs/develop/总体设计文档.md index 0c1c5d7..9aec09e 100644 --- a/docs/develop/总体设计文档.md +++ b/docs/develop/总体设计文档.md @@ -29,8 +29,13 @@ ##### 需求 ##### 数据结构 +###### 底层实现 +通过B+树或一个有序的块状链表实现一个键值数据库,相当于`std::multimap`,一个键值数据库实例拥有恰好一个文件 +###### 逻辑实现 +数据库的一条记录有主键(应当是唯一的)、副键和数据构成,从主键到数据建立multimap,从副键到主键建立multimap,一个数据库实例拥有恰好两个文件。 ##### 文件访问与缓存 +memoryriver类维护一个缓存,简单地缓存高频访问和连续访问;键值数据库根据逻辑缓存最近访问和高频访问;数据库层不设缓存。 ##### 并发安全