commit 5db8f326a57d72375bc11652db327b0383739df0
parent 4700a3757eb6d158c32f8e457693b0702d62fa58
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 13 Jun 2021 15:37:17 +0200
change in algo
Diffstat:
1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml
@@ -1957,23 +1957,27 @@ hashSum | 0x0101 | 0x5151 | 0x5050 | 0x0000 |
<section anchor="performance_formulas_operationmode" numbered="true" toc="default">
<name>Operation Mode</name>
<t>
- The decision which <xref target="modeofoperation" format="title"/> is used is described by the following code. The function is complex.
- More detailed explanations can be found in the accompanying thesis.<xref target="byzantine_fault_tolerant_set_reconciliation" format="default"/>
+ The decision which <xref target="modeofoperation" format="title"/> is used is described by the following code.
+ More detailed explanations motivating the design can be found in the accompanying thesis.<xref target="byzantine_fault_tolerant_set_reconciliation" format="default"/>
</t>
<t>
- The function takes as input the average element size, the local setsize, the remote setsize, the
- by the strata estimator calculated difference for local and remote set
- and the bandwith/roundtrips tradeoff.
+ The function takes as input the average element size, the local set size, the remote set size, the set differences as estimated from the strata estimator for both the local and remote sets,
+ and the bandwidth/roundtrip tradeoff.
The function returns the exact <xref target="modeofoperation" format="title"/> as output: FULL_SYNC_REMOTE_SENDING_FIRST
if it is optimal that the other peer transmits his elements first, FULL_SYNC_LOCAL_SENDING_FIRST
if it is optimal that the elements are transmitted to the other peer directly and
DIFFERENTIAL_SYNC if the differential synchronisation is optimal.
</t>
<t>
- The constant IBF_BUCKET_NUMBER_FACTOR is always 3 and IBF_MIN_SIZE is 37. The method for deriving
+ The constant IBF_BUCKET_NUMBER_FACTOR is always 3 and IBF_MIN_SIZE is 37.
+ <!-- Above we wrote 79. What gives? Also, didn't your thesis somewhere conclude
+ that the IBF FACTOR should be 2? You also write 2 in the function below!
+ Please cite exact parts of the thesis, not the entire document! -->
+ The method for deriving
this can be found in Summermatter's work. <xref target="byzantine_fault_tolerant_set_reconciliation" format="default"/>
</t>
<figure anchor="performance_formulas_operationmode_code">
+ <!-- Why use RTT_MIN_FULL=2, if the average is 2.25? -->
<artwork name="" type="" align="left" alt=""><![CDATA[
# CONSTANTS:
# IBF_BUCKET_NUMBER_FACTOR = 2: The amount the IBF gets increased if decoding fails
@@ -1982,26 +1986,26 @@ hashSum | 0x0101 | 0x5151 | 0x5050 | 0x0000 |
# MAX_BUCKETS_PER_MESSAGE: Custom value depending on the underlying protocol
# INPUTS:
# avg_element_size: The average element size
-# local_set_size: The initial local setsize
-# remote_set_size: The remote setsize
-# est_local_set_diff: the estimated local set difference calculated by the strata estimator
-# est_remote_set_diff: the estimated remote set difference calculated by the strata estimator
-# rtt_tradeoff: the tradeoff between round trips and bandwidth defined by the use case
-# OUTPUTS:
-# returns: the decision (FULL_SYNC_REMOTE_SENDING_FIRST, FULL_SYNC_LOCAL_SENDING_FIRST, DIFFERENTIAL_SYNC)
+# local_set_size: The initial local set size
+# remote_set_size: The remote set size
+# est_local_set_diff: the estimated local set difference calculated by the SE
+# est_remote_set_diff: the estimated remote set difference calculated by the SE
+# rtt_tradeoff: the tradeoff between round trips and bandwidth
+# OUTPUT:
+# FULL_SYNC_REMOTE_SENDING_FIRST, FULL_SYNC_LOCAL_SENDING_FIRST or DIFFERENTIAL_SYNC
FUNCTION decide_operation_mode(avg_element_size,
- local_set_size,
- remote_set_size,
- est_local_set_diff
- est_remote_set_diff,
- rtt_tradeoff)
- IF (0 == local_set_size)
- RETURN FULL_SYNC_REMOTE_SENDING_FIRST
- IF END
+ local_set_size,
+ remote_set_size,
+ est_local_set_diff
+ est_remote_set_diff,
+ rtt_tradeoff)
IF (0 == remote_set_size)
RETURN FULL_SYNC_LOCAL_SENDING_FIRST
IF END
+ IF (0 == local_set_size)
+ RETURN FULL_SYNC_REMOTE_SENDING_FIRST
+ IF END
estimated_total_diff = est_set_diff_remote + est_local_set_diff