Skip to content
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

[mnm] Better serialization support for management #92

Open
mathieucarbou opened this issue Jun 28, 2016 · 4 comments
Open

[mnm] Better serialization support for management #92

mathieucarbou opened this issue Jun 28, 2016 · 4 comments

Comments

@mathieucarbou
Copy link
Member

  • control serialization
  • avoid impacts with serialVerionUid
  • performance

This is a copy of Terracotta-OSS/terracotta-management#44 (old management repository)

@mathieucarbou mathieucarbou self-assigned this Jun 28, 2016
@mathieucarbou mathieucarbou changed the title Better serialization support for management modules [perf] Better serialization support for management Jul 4, 2016
@mathieucarbou mathieucarbou removed their assignment Jul 4, 2016
@mathieucarbou mathieucarbou changed the title [perf] Better serialization support for management Better serialization support for management Jul 4, 2016
@mathieucarbou mathieucarbou self-assigned this Oct 12, 2016
@mathieucarbou
Copy link
Member Author

IDEA: create an ObjectMapper on top of Runnel

@mathieucarbou
Copy link
Member Author

Things to take in consideration:

  • all management classes (model, topology, stats, notification, etc) represents 45 serializable classes: Runnel could help here because we can define the structures of these objects in an entity codec.
  • management must support management calls, so it means that we do not know in advance which objects are passed as parameters and which objects are returned. So Runnel cannot help here.

Other things to look at: would it be possible to use 2 different serialization mechanisms for the same entity, depending on the method called, when using the the voltron-proxy module ?

I.e. Runnel codec where we know the objects transferred, and java serialization codec when we do not know the transferred objects (this is true only for methods handling management calls).

@anthonydahanne
Copy link
Member

As far as I understand runnel, it's meant to be used with known classes : so that the user defines precisely how objects should be (de)serialized.
So I like the idea of using runnel for classes we know (and that represent a performance bottleneck because of their very frequent use : stats, notifications) and default serialization for the rest (model, topology)

@mathieucarbou mathieucarbou changed the title Better serialization support for management [mnm] Better serialization support for management Oct 26, 2016
@GaryWKeim
Copy link
Contributor

I'm in the process of adding a version to the client topology model so that it will be included in cluster state dumps. To avoid backward compatibility issues I resorted to putting the version in the tag collection and then remove it on the other side. We need a better compatibility story here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants