Author: toad
Date: 2008-04-08 14:26:46 +0000 (Tue, 08 Apr 2008)
New Revision: 19073

Modified:
   trunk/freenet/src/freenet/client/FECCodec.java
Log:
Explain the alchemy

Modified: trunk/freenet/src/freenet/client/FECCodec.java
===================================================================
--- trunk/freenet/src/freenet/client/FECCodec.java      2008-04-08 14:19:00 UTC 
(rev 19072)
+++ trunk/freenet/src/freenet/client/FECCodec.java      2008-04-08 14:26:46 UTC 
(rev 19073)
@@ -65,6 +65,15 @@
                if(splitfileType == Metadata.SPLITFILE_NONREDUNDANT)
                        return null;
                if(splitfileType == Metadata.SPLITFILE_ONION_STANDARD) {
+                       /**
+                        * ALCHEMY: What we do know is that redundancy by FEC 
is much more efficient than 
+                        * redundancy by simply duplicating blocks, for obvious 
reasons (see e.g. Wuala). But
+                        * we have to have some redundancy at the duplicating 
blocks level because we do use
+                        * some keys directly etc: we store an insert in 3 
nodes. We also cache it on 20 nodes,
+                        * but generally the key will fall out of the caches 
within days. So long term, it's 3.
+                        * Multiplied by 2 here, makes 6. Used to be 1.5 * 3 = 
4.5. Wuala uses 5, but that's 
+                        * all FEC.
+                        */
                        int checkBlocks = dataBlocks;
                        if(dataBlocks == 128) checkBlocks--; // Stay within the 
8-bit code range, speeds things up 4x
                        return StandardOnionFECCodec.getInstance(dataBlocks, 
checkBlocks, executor);


Reply via email to