[infinispan-dev] Topology Id in Hotrod header

Galder Zamarreño galder at redhat.com
Fri Jul 16 05:43:56 EDT 2010


On Jul 16, 2010, at 11:10 AM, Mircea Markus wrote:

> 
> On 16 Jul 2010, at 09:11, Galder Zamarreño wrote:
> 
>> 
>> On Jul 15, 2010, at 7:08 PM, Mircea Markus wrote:
>> 
>>> Hi,
>>> 
>>> The header for a request is composed of: 
>>> 
>>> Magic	Message Id	Version	Opcode	Cache Name Length	Cache Name	Flags	Client Intelligence	Topology Id
>>> 
>>> 
>>> We send "Topology Id " even if the client is not topology aware. Wouldn't it be more effective to only expect it if the client's intelligence is 02 or 03 and not send it otherwise?
>> 
>> I think doing things like this starts to complicate protocol parsing.
> If I'm not missing something, this would be solved through a single if statement:
> topologyId = 0;
> if (intelligence == 3) {
>  topologyId = stream.readVint();
> }
> This increases performance as we don't send data that is not needed. I'm about to add transaction Id to operations as well, and I'd rather not add it if it is not needed. 

You forgot to add an OR intelligence == 2.

It's not the complication of adding that if, it's the complication of adding if statements like that all around if some fields might or might not appear. Also, it's not just the server that needs to code this but all client impls out there. So far it's only one client though.

For transaction id, you want it to be optional too? Based on what rule would you read or not read the transaction ID? 

Are you planning to add transaction id or make this change for 4.1 or 5.0? If you're doing it for 4.1, I'd just add it to the header as mandatory. If you're doing it for 5.0, that'd be a different protocol version and we can maybe try to experiment there and we could compare with 4.1 perf afterwards.

>> Having optional fields that are present or not depending of contents is complicating things, particularly when we're talking about the header which is common to everyone.
>> 
>>> 
>>> Cheers,
>>> Mircea   
>>> _______________________________________________
>>> infinispan-dev mailing list
>>> infinispan-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>> 
>> --
>> Galder Zamarreño
>> Sr. Software Engineer
>> Infinispan, JBoss Cache
>> 
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache




More information about the infinispan-dev mailing list