From da5b6c04e5aa877f52fba28ef94805d0a3eafa0f Mon Sep 17 00:00:00 2001 From: kevinyao0901 Date: Mon, 23 Dec 2024 14:46:14 +0800 Subject: [PATCH] Update Readme.md --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 07a128a..a964ac3 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,9 @@ - [六,问题与解决方案](#六问题与解决方案) - [总结](#总结) +--- + + ## 一,实验目的 @@ -46,6 +49,9 @@ --- + + + ## 二,项目背景概述 #### 1. **背景与需求** @@ -78,6 +84,9 @@ name:Customer#000000002-k_2 : k_2 --- + + + ## 三,`LevelDB`二级索引设计思路 #### 1. **设计结构** @@ -209,6 +218,9 @@ lessCopy code 主数据库 (DBImpl) ------ + + + ## 四,具体实现 ### 1. **DBImpl 类的设计** @@ -473,6 +485,10 @@ Status DBImpl::Delete(const WriteOptions& options, const Slice& key) { 这种设计确保了主数据库和二级索引数据库的一致性,即便在部分写入或删除操作失败的情况下,仍能通过回滚机制保证数据的完整性和原子性。 --- + + + + ## 五,性能测试 ### 1.测试流程 @@ -553,6 +569,9 @@ Level Files Size(MB) Time(sec) Read(MB) Write(MB) --- + + + ## 六,问题与解决方案 ### 1. **问题:如何避免** `**indexDb_**` **的递归调用?** @@ -625,5 +644,8 @@ if (!s.ok()) { --- + + + ## 总结 本实验通过在 `DBImpl` 中集成索引管理功能,实现了对二级索引的创建、查询和删除。二级索引数据存储在独立的 `indexDb_` 中,通过高效的键值映射提升了字段值查询的效率。