On Sun, Jul 13, 2008 at 3:14 AM, Matthew Toseland
<toad at amphibian.dyndns.org> wrote:
> On Thursday 05 June 2008 16:32, j16sdiz at freenetproject.org wrote:
>> Author: j16sdiz
>> Date: 2008-06-05 15:32:27 +0000 (Thu, 05 Jun 2008)
>> New Revision: 20221
>>
>> Modified:
>>
> branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
>> Log:
>> newer and better resize scheme:-
>> - does not deadlock
>> - read entries in batch
>>
>>
>> Modified:
> branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
>> ===================================================================
>> ---
> branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
> 2008-06-05 15:32:00 UTC (rev 20220)
>> +++
> branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
> 2008-06-05 15:32:27 UTC (rev 20221)
> ...
>> -
>> + private boolean resolveOldEntry(Entry entry) {
>> + if (!lockDigestedKey(entry.getDigestedRoutingKey(),
>> false))
>> + return false;
>> + try {
>> entry.setStoreSize(storeSize);
>> + long[] offsets = entry.getOffset();
>>
>> - long[] newOffset = entry.getOffset();
>> + // Check for occupied entry with same key
>> + for (long offset : offsets) {
>> + try {
>> + if (!isFree(offset)
>> + &&
>> Arrays.equals(getDigestedKeyFromOffset(offset),
> entry.getDigestedRoutingKey())) {
>> + writeEntry(entry,
>> offset); // overwrite, don't update key count
>> + return true;
>
> Why do we need to write here, if it's already been written?
>
already fixed r20911.