[infinispan-dev] Rest server storage nuances

Gustavo Fernandes gustavo at infinispan.org
Thu Aug 10 11:43:13 EDT 2017


Hi all,

With the ongoing encoding revamp work on Infinispan, time to decide how to
handle the rest server.

The rest server currently stores along with each entry, a string
representing the MimeType of that entry, which allows the user to POST/PUT
each entry with its own format.

At request time, using the accept header, the user can request the entry in
a particular format, and the rest server internally extracts the mime type
from the entry and converts it accordingly.

The issue with this approach is, apart from the extra space required, it
makes it challenging to expose via rest anything less trivial than put/get.
Think for example querying, consistent hash calculations, stream
operations: all those features will have a hard time dealing with a cache
where each entry has a different format.

Proposal:

Remove this behavior completely. For a certain cache, all entries will be
homogeneous, just like
Hot Rod, Memcached and embedded. The user can optionally configure the
MimeType at cache level.

Impacts:

- It may be required for users to add the media type configuration to the
cache, if supporting
multiple formats is required;
- Migrating from 9.1 to 9.2 may require re-populating the cache if multiple
formats are being used;
- From the API perspective, I don't expect any change: POST/PUT with
multiple formats should be still supported, as the internal transcoding
should convert them on the fly to the unified configured format.


Thoughts?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20170810/d315371b/attachment.html 


More information about the infinispan-dev mailing list