sorry for having been mute those last days, many side things to deal with.
We had a big performance issue in mavibot when we store many elements in
the btree, as we had to deserialize all the leaf's values when we update
a leaf, which is really a bad idea. I was working on a fix for this, but
I hit a wall : how do we manage the keys associated with more than one
Kiran has added a mechnism by which a sub-btree can be used to solve
this case. This is fine, except that it does not work well with the new
Holder hierarchy I'm using, so I'm now working on storing the values in
a slight different way. Basically, all the values -either single ot
multipke - will be stored into a encapsulating data structure. The
ElementHolder.getValue() will return this encapsulatng objects, instead
of the direct value.
Here is the proposed interface :
public interface Value<V>
* Tells if the value is single or contains a set of values
* @return True if we have one single value
* @return The stored value, or the first value if we have more than one
* @return The array of stored values.
* Add a new value
* @param value The added value
void addValue( V value );
* Delete a given value
* @param value The value to delete
void deleteValue( V value );
* Remove all the values
The hierarchy will be :
| +-- [SingleValue]
This is a first round, I have to come with more details later.