You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Laurent Thoulon <la...@ldmobile.net> on 2014/01/22 17:03:16 UTC

Simple question on the IBackingMap interface

I noticed that what is called "keys" in the IBackingMap is actually the tuples which values have been filtered on the fields provided as input. 
This is what allows me to do some advanced mapping on the keys received in my implementation of the IBackingMap (multiPut and multiGet). 
That mapping is based on indexes in a key (or tuple) which is good but makes the mapper a little more complex to understand. 

I also did some updaters that use trident's projection factories which is great to have understandable topologies. 

I saw that what is actually contained in the keys is a TridentTupleView and not just a basic implementation of a List. TridentTupleView has one great feature which is get*ByField. 
So here's my question: why isn't IBackingMap's definition declaring TridentTuples instead of List<Object> ? 
This would give us more latitude in how we could develop our MapStates. 

I understand i could cast those lists to TridentTuples but i'd like to understand the choice that has been made here to be sure of the risks i would be taking doing so. Is there any chance i could receive something else than a TridentTuple ? 

Thanks 


Laurent