[infinispan-dev] Enconding of data WAS Re: Hot Rod - pt3
Galder Zamarreno
galder at redhat.com
Tue Jan 12 11:46:40 EST 2010
And another question:
With regards to individual fields in Map/Array, according to your wiki,
each field then only contains the size of the field and the field. So,
in a map of booleans, each field would be represented as: 0x01 and
0x01/0x00 with 1st being the size and 2nd being the actual value. Correct?
On 01/12/2010 04:46 PM, Galder Zamarreno wrote:
> Hi Alex,
>
> Wrt the discussion below about encoding data, I wanted to know what
> exactly COMPRESSED type meant in your wiki, or what exactly it represents.
>
> Also, I wanted to know what bits you send when the object sent accross
> is an instance of java.lang.Long. Apart from marking LONG, do you also
> marked as SERIALIZED? Or do you just use SERIALIZED for user-specific
> classes?
>
> Cheers,
>
> On 01/05/2010 10:52 AM, Galder Zamarreno wrote:
>>
>>
>> On 01/04/2010 10:44 PM, Alex Kluge wrote:
>>>>> </snip>
>>
>>>
>>>>> - What happens if the key or the value is not text? I have a way of
>>>>> representing the data to allow for a wide variety of data types,
>>>>> even allowing for arrays or maps. This will make the protocol more
>>>>> complex, but the assumption that the data is a string is rather
>>>>> limiting. This is already sketched out in the wiki.
>>
>> Hmmmmm, I don't think I've made any assumptions in the wiki that keys or
>> values are Strings unless I've made a mistake somewhere (maybe in the
>> example where I've used a particular encoding for Strings?). My thoughts
>> around this was that I was gonna treat them both as byte[]...
>>
>>>>
>>>> </snip>
>>>
>>> The idea is to prefix each data block with a data type. This is a
>>> lightweight binary protocol, so a full fledged mime type would be
>>> overkill. There is a discussion and example in the Encoding Data
>>> section of this page:
>>>
>>> http://community.jboss.org/wiki/RemoteCacheInteractions
>>>
>>> Data types are limited to things like integer, byte, string, boolean, etc.
>>> Or, if it isn't a recognised type, the native platform serialisation is
>>> used. There can be arrays of these types, or maps as well.
>>>
>>> Each data type is represented by a bit, and they can be used in
>>> combinations. An array of bytes would have the array, byte and
>>> primitive bits set. The set of recognised data types can of course be
>>> expanded.
>>
>> ... but that looks rather useful (at least based on the cached version
>> of that wiki that Google shows ;) - no wiki access right now :( ),
>> particularly the way you can combine different bytes to create composed
>> types. I don't see a problem with including this in Hot Rod.
>>
>> I suppose you included type length into length field so that in the
>> future you can support other types and possibly longer type fields?
>>
--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache
More information about the infinispan-dev
mailing list