TokuDB - restructure code into namespaces and c++ize
TokuDB code is fragmented and an odd mix of C and C++. There is one compilation source file that includes other .cc files rather than a reasonable 'include' structure and distinct .cc files for areas of functionality. In general does not conform to the Google C++ style guidelines. The code needs broken up, cleaned up and modernized to facilitate ease of adding new features and maintenance.
Blueprint information
- Status:
- Complete
- Approver:
- George Ormond Lorch III
- Priority:
- Medium
- Drafter:
- George Ormond Lorch III
- Direction:
- Approved
- Assignee:
- George Ormond Lorch III
- Definition:
- Approved
- Series goal:
- Accepted for 5.6
- Implementation:
- Implemented
- Milestone target:
- 5.6.27-76.0
- Started by
- George Ormond Lorch III
- Completed by
- George Ormond Lorch III
Related branches
Related bugs
Sprints
Whiteboard
Work Items
Work items:
Split hatoku_defines.h into individual header files that cover specific areas, debug, memory, thread/sync, time, and txn : DONE
Started namespacing tokudb and functionality areas such as tokudb::memory, tokudb::thread, and tokudb::time : DONE
Started C++-izing some primitives and added some higher level type sync tools such as event and semaphore to be used soon : DONE
Change some .h function declarations from 'static inline' to 'inline' : DONE
Implement TOKUDB_DEBUG macro that enables various debug build functions such as debug mutexes : DONE
Changed assert to assert_always and replaced throughout : DONE
Added assert_debug that will only assert in debug mode as opposed to assert_always that will assert in all build types : DONE
Redefined assert as assert_always to mimic original behavior from MySQL macros that call assert : DONE
Add branch prediction macros to hatoku_defines.h : DONE
Begin correcting the TokuDB #include organization to eventually get all source files in CMakeLists.txt rather then #include "something.cc" : DONE
Correct source formatting : INPROGRESS
Dependency tree
* Blueprints in grey have been implemented.