-
Notifications
You must be signed in to change notification settings - Fork 257
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
[Java] when can I use Fury with buffer/storage in production #919
Comments
Hi @smalljunHw , thanks for opening up this issue. There are three parts of work to be finished before we can ensure binary compatibility:
I'm afraid binary compatibility can't be ensured before we finish this. If you want to use it for persistent storage, you may need to add a version flag into the stored data, and shade fury by version, so in future you can switch to newer version of fury without breaking binary compatibility. |
@smalljunHw I add the doc for upgrade fury when breaking binary compatibility: https://github.com/alipay/fury/blob/main/docs/guide/java_object_graph_guide.md#upgrade-fury If you use fury by this method, future Fury release upgrade won't cause deserialization problem. Does this answer your concern? |
Hi @chaokunyang , Can I use "versioning" to ensure binary compatibility now? The description of
from here is still a little unclear to me. Thanks for the help. |
yes, if you serialize by https://github.com/alipay/fury/blob/main/docs/guide/java_object_graph_guide.md#upgrade-fury |
thanks, it has answered my question. |
@smalljunHw Thanks for your reminder, the document should be updated for his version naming. As to binary compatiability, maybe we should add protocol version to data header, and develop a tool for future binary data migration. Would you like to collaborate on this? If we have protocol version on data, we can load different version of fury based on the protocol. The different fury can be shaded into different package. Or we can create a jar like springboot with a cusom format, and load different fury jar by different URLClassloader. Then use loaded Fury to deserialize the data |
The document says
So is Fury not recommended for production use now if any serialized object is stored in some place, otherwise future Fury release upgrade may cause deserialization problem?
If so, when binary compatibility will be ensured?
The text was updated successfully, but these errors were encountered: