I am working on a recovery service, attempting to recover multiple key ranges from backup as needed, so I conducted a test and found this issue.
Now here is a backup that contains keys
bbb. Now I need to use restore to recover data and filter out a certain range, eg:
b. I try to restore it with cmd:
fdbrestore start --dest-cluster-file /home/xxxx/workspace/fdb_test_env/fdb_cluster/fdb.cluster -r file:///home/xxxx/workspace/fdb_test_env/backups/backup-2023-05-22-11-56-40.011576/ -k 'bb bbbb' -k 'aa aaaa'
After the restore is finished, I try to use
getrange to verify whether the restore was successfully executed, but I found that there was no range
bb bbbb in the results:
Welcome to the fdbcli. For help, type `help'. fdb> getrange a z Range limited to 25 keys `aa' is `2a' `aaa' is `3a'
The excepted results should be:
Welcome to the fdbcli. For help, type `help'. fdb> getrange a z Range limited to 25 keys `aa' is `2a' `aaa' is `3a' `bb' is `2b' `bbb' is `3b'
I tracked the code and found that the problem may be caused by adjusting the
fileRange during the
Line 3809, determine if there is an intersection between
Line 3834-3840, update
fileRange to the dest
When the program executes to 3809 again, the data in
fileRange is no longer correct, so it does not intersect with
BTW, I am interested in fixing this issue, but I do not have permission to provide PR for Apple/Foundationdb’s repo. Can someone help invite me? My github ID is w41ter, thank you!