Details
-
Enhancement
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
Description
Instead of trying to predict what is the buffer size for a particular type, it would make more sense to take advantage of the fact that eventually, the marshalled buffers are sent over the network or stored in some sort of persistence layer and hence marshalled payloads might be fragmented to fit the system. So, the marshalling layer could return a collection of buffers, according to the adequate page size.
These are the benefits of such approach:
- No longer need to keep track of buffer sizes per type. Simply configure page size and let the marshaller split the marshalled payload in pages.
- JGroups could take advantage of these pages avoiding the need to split them up when sending them across to other nodes (FRAG/2 would only need to fragment JGroups metadata, if necessary). The marshaller would already have done the job for it.
- Having a page structure for marshalling values would more easily fit with the off-heap organization, reducing compaction needs.