On Fri, May 30, 2008 at 5:00 PM, Kiran Ayyagari <ayyagarikiran@gmail.com> wrote:
hi All,

   Below is the summary which lead to the modification of put() and remove()/delete() method signatures in
   Table and MasterTable.

Changed Interfaces :- The put() and remove() methods in Table and put() and delete() methods in MasterTable.

The context :- Implementation of a Berkeley DB JE based partition for ADS.

Reason for the change :-  In the Jdbm based Table implementation put() and remove() operations return a value
                                         cause JDBM returns the existing/previous values (like a HashMap) for put and remove
                                         and these values are returned from the above mentioned operations.

                                         But JE doesn't return these (existing/previous) values instead returns a special Enum
                                         value stating the success or failure of the operation.

However I have observed that the return values of the existing put() and remove() methods are not used anywhere  hence I made the above said change ( tested this by changing the interfaces and the respective implementations and ran all tests ( Note: no functional aspects of the implementations was touched except removing or replacing the *return* statements) )


This sounds good - we certainly don't want to bother with the overhead of an additional lookup.

P.S :- In the JE based implementation we can still return the previous/existing value but this requires a
       lookup in each operation (put and remove) for storing the old value but this is not  a desirable        implementation.