orientechnologies / orientechnologies/orientdb
Implement physiological logging
Open
@andrii0lomakin is already working on this.
Since Sep 28, 2019.
enhancement
- Dominant language
- Java
- Stars
- 5k
- Forks
- 868
- Avg merge
- 15h 6m
- Merged PRs (30d)
- 18
Description
Implementation of physiological logging should improve the speed of writes because of the following factors:
- Fewer data will be logged on the WAL level.
- The overhead of tracking of logical operations is much less than for tracking of binary operations.
Following subtasks should be impelemented:
- Implementation of doulbe write log. So pages written first into this log and only after that to the data files
- Implementation of support physiological logging for OPaginatedClusterV1
- Implementation of support physiological logging for OPaginatedClusterV2
- Implementation of support physiological logging for OPaginatedClusterV3
- Implementation of support physiological logging for OSBTreeV1
- Implementation of support physiological logging for OSBTreeV2
- Implementation of support physiological logging for CellBTreeSingleValueV1
- Implementation of support physiological logging for CellBTreeSingleValueV3
- Implementation of support physiological logging for CellBTreeMultiValueV2
- Implementation of support physiological logging for CellBTreeMultiValueV3
- Implementation of support physiological logging for OSBTreeBonsaiLocal
- Implementation of support physiological logging for OLocalHashTableV2
- Implementation of support physiological logging for OLocalHashTableV3
- In case of not high-level exception is thrown inside of component storage should be switched to read only mode.
- Replace file truncation by the algorithm of reuse of pages in hash index.
- Create restore procedure based on physiological logging.
- Run crash tests
- Run benchmarks
- Handle binary compatibility of incremental backups between 3.0 and 3.1 versions in WAL
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.