-
Notifications
You must be signed in to change notification settings - Fork 154
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
Add new migration strategy for Pekko Persistence snapshots #1423
Conversation
Does it make sense to have a fourh option which is only reading pekko snapshots, it definitely won't be the default now but later on jf we introduce some change that we know won't work with akka it may make sense to change it as a default to signal that "we don't support all with this release" |
The 'ignore' option in this PR only supports Pekko snapshots and avoids the overhead of having to to try to repair the serializer class names that get saved in the persisted data. |
Thanks, I was just skimming this on the phone so I couldn't look at it properly which brings me to the second point, maybe we can rename the options like this so its more explicit/clear?
Wdyt? |
Thanks @mdedetrich - I agree the naming isn't right but I don't think your suggestion quite works either. Let me think about better naming and I'll come back with some changes for review. |
Update reference.conf Update SnapshotSerializerSpec.scala new impl
6481f00
to
b5f928b
Compare
I pushed some some changes. The config is about migrating data and is not about whether we support Pekko and Akka snapshots. I renamed 'Ignore' to 'NoMigration'. With 'NoMigration', we will fail if there is an attempt to update an Akka generated snapshot. With 'Akka' and 'Pekko', we support both Akka and Pekko generated snapshots but the config controls what serializer name value gets included in the persisted data. |
@mdedetrich @kerr @raboof @Roiocam @nvollmar @samueleresca I'm hoping to get this into the 1.1.0 release and I was hoping to get that release process started maybe next week. Would any of you have time to review this? |
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 went through the #1421 discussion and reviewed the PR. The changes look reasonable to me.
...t/scala/org/apache/pekko/persistence/serialization/SnapshotSerializerMigrationAkkaSpec.scala
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.
lgtm
See #1421
The docs in https://cwiki.apache.org/confluence/display/PEKKO/Pekko+Akka+Compatibility can be updated when this or its equivalent are ready for release.
The issue is that the 'manifest' value saved with the snapshot includes the class name of the serializer which can be 'akka' or 'org.apache.pekko' prefixed.
The idea is that the new config
pekko.persistence.snapshot-store.auto-migrate-manifest
supports 3 values: