[freenet-dev] [freenet-cvs] r19260 - trunk/freenet/src/freenet/store

Matthew Toseland toad at amphibian.dyndns.org
Mon Apr 14 17:36:37 UTC 2008


:) Thanks for the code review!

On Sunday 13 April 2008 14:15, j16sdiz at freenetproject.org wrote:
> Author: j16sdiz
> Date: 2008-04-13 13:15:36 +0000 (Sun, 13 Apr 2008)
> New Revision: 19260
> 
> Modified:
>    trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
> Log:
> javadoc: document the voodoo magic in BDBFS.reconstruct()
> 
> 
> Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
> ===================================================================
> --- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java	2008-04-13 
12:15:01 UTC (rev 19259)
> +++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java	2008-04-13 
13:15:36 UTC (rev 19260)
> @@ -888,6 +888,44 @@
>  		}
>  	}
>  
> +	/**
> +	 * Reconstruct the database using flat file stores and other dark magic.
> +	 * 
> +	 * <strong>You are not expected to understand this.</strong>
> +	 * 
> +	 * <dl>
> +	 * <dt>header + data</dt>
> +	 * <dd>read from storeRAF, always available.</dd>
> +	 * 
> +	 * <dt>fullKey</dt>
> +	 * <dd>read from keyRAF, maybe null.</dd>
> +	 * 
> +	 * <dt>routingkey </dt>
> +	 * <dd>
> +	 * <ol>
> +	 * <li><code>callback.routingKeyFromFullKey(); </code></li>
> +	 * <li>if <code>null</code> or <code>KeyVerifyException</code>,<code> 
callback.construct().getRoutingKey()</code>,
> +	 * may throw <code>KeyVerifyException</code></li>
> +	 * <ol>
> +	 * <code>fullKey</code> (and hence
> +	 * <code>callback.routingKeyFromFullKey(); </code>) may be phantom, hence
> +	 * we must verify
> +	 * <code> callback.construct().getRoutingKey()  == routingkey </code> on
> +	 * <code>fetch()</code> </dd>
> +	 * </dl>
> +	 * 
> +	 * On <code>OperationStatus.KEYEXIST</code> or bad
> +	 * <code> callback.construct</code>:
> +	 * <ol>
> +	 * <li>insert a database entry with random key, (minimum lru - 1); </li>
> +	 * <li>if <code>op != OperationStatus.SUCCESS</code>,
> +	 * <code>addFreeBlock()</code>.</li>
> +	 * </ol>
> +	 * 
> +	 * 
> +	 * @throws DatabaseException
> +	 * @throws IOException
> +	 */
>  	private void reconstruct() throws DatabaseException, IOException {
>  		if(keysDB.count() != 0)
>  			throw new IllegalStateException("Store must be empty before 
reconstruction!");
> 
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://emu.freenetproject.org/pipermail/devl/attachments/20080414/f2cb079e/attachment.pgp 


More information about the Devl mailing list