-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[dvc][compat] Add blob transfer support for DaVinciRecordTransformer #1471
base: main
Are you sure you want to change the base?
Conversation
internal/venice-common/src/main/resources/avro/PartitionState/v14/PartitionState.avsc
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not done the pass on the actual logic yet but I just leave a few general comments. We should consider fixing these protocol changes as well.
@@ -23,5 +23,3 @@ _site/ | |||
Gemfile.lock | |||
.bundles_cache | |||
docs/vendor/ | |||
clients/da-vinci-client/classHash*.txt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we remove this? classHash should not be included.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file will no longer get generated as the classHash is now stored in the offset record.
internal/venice-common/src/main/resources/avro/PartitionState/v14/PartitionState.avsc
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/resources/avro/PartitionState/v14/PartitionState.avsc
Outdated
Show resolved
Hide resolved
String snapshotPath = RocksDBUtils.composeSnapshotDir(dvcPath1 + "/rocksdb", storeName + "_v1", i); | ||
Assert.assertTrue(Files.exists(Paths.get(snapshotPath))); | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to verify that the RecordTransformerClassHash
info in the offset record is correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will be difficult to do that in an integration test as I don't see a good way to access the storageEngine
to fetch the offsetRecord
. But I did add an extremely trivial validation in a unit test.
[dvc][compat] Add blob transfer support for DaVinciRecordTransformer
This PR makes DVRT compatible with blob transfer. Here are the changes made:
classHash
in theoffsetRecord
so it can be transported during blob transfer. This is to ensure that the blob that was transferred is compatible with the current transformer logic.classHash
persistence as it is now stored in theoffsetRecord
.classHash
was being calculated based on the wrapper class not the user's class.How was this PR tested?
Add unit and integration tests.
Does this PR introduce any user-facing changes?
DVRT is no longer compatible with database checksum verification, but this is fine since DVRT is not currently being used.