-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Segment Replication] Support for custom codecs #7668
Comments
List of plugins that do not need any further changes (do not extend codec service):
Plugins that require further investigation to verify if they support rolling upgrades for their custom codecs:
|
To verify the working of custom codecs when we include the fix from #7698 Remake distribution on 2.8 branch + use 2.8 release knn -> upgrade to 2.x (2.9) with changes from #7698 + use 2.9 snapshot of knn
Remake distribution on 2.8 branch + use 2.8 release knn + lower codec to lucene94 + update mapping of version to codec -> upgrade to 2.x (2.9) with changes from #7698 + use 2.9 snapshot of knn + update mapping of version to codec
This is to verify whether further changes are required to enable rolling upgrades for clusters with segment replication and knn enabled. |
While upgrading from modified 2.8 distribution that's using lucene94 codec, we see that in the segment replications taking place, we are still loading in KNN950Codec instead of the KNN940Codec that is expected on using Lucene94. In KNNCodecService.java:
In the above code - In a true codec bump, we would be sending over higher version KNNCodec during segment replication which wouldn't be able to be read by lower codec version nodes in a rolling upgrade. In order to support rolling upgrades for segment replication and knn enabled:
For added security, should also only allow this operation if rolling upgrade is in progress. |
Closing this out as this implementation of the solution was discarded in favor of introducing the shard_movement_strategy setting as mentioned in #3881 |
Is your feature request related to a problem? Please describe.
Support rolling upgrades for plugins/integrations providing custom codec implementation e.g. k-NN. This will be fixed in core via #7349, this issue is about fixing the bridge
Parent: #3881
Fix on core: #7349
Describe the solution you'd like
On core rolling upgrades are fixed by #7349. Steps followed in this fix:
In order to support custom codec, primary shard should read the custom OS version to codec mapping and then load the appropriate implementation (already available in classpath for kNN plugin).
The text was updated successfully, but these errors were encountered: