1. 25 5月, 2023 1 次提交
    • 羽飞's avatar
      简化rc (#184) · 8587eb0f
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #149 
      
      Problem:
      RC return code ,定义的东西太多,不太简洁,并且有很多错误码当前没有使用
      
      ### What is changed and how it works?
      仅使用enum RC 定义错误码,删掉其它枚举定义。
      删除当前没有使用的错误码。
      
      ### Other information
      8587eb0f
  2. 24 5月, 2023 1 次提交
    • 羽飞's avatar
      编译选项增加 Werror (#182) · c3bd02e3
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #91 close #1 
      
      Problem:
      编译时编译器抛出的一些告警信息可以帮我们避免很多问题,但是现在并没有利用这个特性
      
      ### What is changed and how it works?
      CMake中增加-Werror编译选项
      
      ### Other information
      c3bd02e3
  3. 15 5月, 2023 1 次提交
    • 羽飞's avatar
      fix unittest (#9) (#177) · 5017ced9
      羽飞 提交于
      fix unittest;
      add unittest to github action
      
      ### What problem were solved in this pull request?
      
      Issue Number: close #176 close #163 
      
      Problem:
      单元测试执行失败;
      github action 没有单元测试检查
      5017ced9
  4. 09 5月, 2023 1 次提交
    • 羽飞's avatar
      mvcc trx (#156) · 871c9b32
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #155 close #135 
      
      Problem:
      实现了简单的事务处理。
      当前支持并发事务数据.
      
      ### What is changed and how it works?
      - 支持两种事务模式:Vacuous和MVCC。
        Vacuous 事务模式算是没有事务,它的事务接口什么都不做。
      MVCC 是多版本并发控制(Multi-Version Concurrency
      Control),使用多个版本保留记录数据。启动miniob时增加运行时选项 -t mvcc可以选择mvcc。
      
      - MVCC:简单模式的多版本并发控制。
        当前miniob仅包含insert和delete操作,因此数据最多包含两个版本,并且不需要在record中保留版本链表信息;
        不支持持久化;
        没有做垃圾回收;
        遗留一个BUG:在提交时没有保证提交的数据一次性对外可见;
        使用简单的写写冲突策略:检测到要修改的数据当前有人在修改,就回退
      
      - 编译MINIOB时使用 -DCONCURRENCY=ON 才会支持并发
      支持各个模块并发处理,包括buffer pool、bplus、record
      manager。如果编译时没有使用CONCURRENCY选项,则保持原样,不支持并发,保持系统的简单性。
      
      - 编译时增加 -DDEBUG=ON 还会增加并发调试日志与严格的运行时检测(ASSERT语句)
      - 当前版本代码中包含了bplus tree和record manager的并发测试,参考benchmark目录下的代码。
      
      ### Other information
      871c9b32
  5. 29 3月, 2023 1 次提交
    • 羽飞's avatar
      thread-safe buffer pool and btree supported (#145) · 31fa2558
      羽飞 提交于
      Fix problem:
      1. the buffer pool and b tree is not thread safe;
      2. github/workflow/build does not work
      
      ### What is changed and how it works?
      1. thread-safe buffer pool
      - I use a mutex in buffer pool and take a lock in buffer pool operations
      such as allocate frame, dispose frame;
      - The frame is locked while updating/reading the content of frame;
      - Frame manager take a lock when allocate/free pages.
      
      2. thread-safe b+tree
      - Crabing protocol is used to support concurrent
      
      3. github/workflow/build
      - update the submodules;
      - create a build script and run build.sh in build.yaml
      31fa2558
  6. 28 1月, 2023 4 次提交
  7. 09 1月, 2023 1 次提交
    • 羽飞's avatar
      execute plan (#126) · 62af5129
      羽飞 提交于
      logical plan & physical plan;
      explain;
      yacc rewrite;
      join operator(nested loop join);
      simple rewrite rules;
      fix some issues of mysql protocol;
      62af5129
  8. 05 12月, 2022 1 次提交
    • 羽飞's avatar
      mysql communicator (#124) · e279dc7a
      羽飞 提交于
      tested by mariadb ( Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1)
      but failed with obclient
      e279dc7a
  9. 17 10月, 2022 1 次提交
  10. 07 10月, 2022 1 次提交
  11. 20 9月, 2022 1 次提交
  12. 06 9月, 2022 1 次提交
  13. 01 9月, 2022 1 次提交
  14. 12 8月, 2022 1 次提交
  15. 11 7月, 2022 1 次提交
  16. 09 7月, 2022 1 次提交
  17. 08 7月, 2022 1 次提交
  18. 05 7月, 2022 1 次提交
  19. 03 7月, 2022 1 次提交
  20. 01 7月, 2022 1 次提交
  21. 28 6月, 2022 1 次提交
  22. 24 6月, 2022 1 次提交
  23. 21 6月, 2022 1 次提交
  24. 30 4月, 2022 2 次提交
  25. 15 4月, 2022 1 次提交
  26. 06 4月, 2022 1 次提交
    • 羽飞's avatar
      重构buffer pool (#33) · 10c78caf
      羽飞 提交于
      重构disk buffer pool:
      新增BufferPoolManager,管理所有的DiskBufferPool;
      原有DiskBufferPool只处理一个文件,取消其中file_id的概念;
      删除BPPageHandle,直接使用Frame;
      BPManager更名BPFrameManager;
      BPFileSubHeader改为BPFileHeader并直接放在DiskBufferPool中
      10c78caf
  27. 02 4月, 2022 4 次提交
  28. 30 3月, 2022 1 次提交
  29. 08 3月, 2022 2 次提交
  30. 17 2月, 2022 1 次提交
  31. 16 2月, 2022 1 次提交
  32. 13 2月, 2022 1 次提交