-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
37496: libroach: Migrate IncrementalIterator logic to C++ r=dt a=adityamaru27 Export was previously executed using an `MVCCIncrementalIterator` where the logic handling iteration over the diff of the key range `[startKey, endKey)` and time range `(startTime, endTime]` was written in Go. This iteration involved making a cgo call to find every key, along with another cgo call for writing each key to the sstable. This migration resolves the aforementioned performance bottleneck (#18884), by pushing all the required logic to C++ and exposing a single export method. Based on a performance benchmark by running BACKUP on a tpcc database with 1000 warehouses we observe the following: - Over an average of 3 runs we see a 1.1x improvement in time performance. While the original binary took ~32m04s the changed implementation took ~28m55s. This is due to the elimination of a cgo call per key. Co-authored-by: Aditya Maru <[email protected]>
- Loading branch information
Showing
19 changed files
with
20,415 additions
and
1,011 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.