Skip to content

Commit

Permalink
Replace FullSync algorithm and fix bugs to lower delay and overhead
Browse files Browse the repository at this point in the history
1) During high update frequency PSync nodes can send data that contain
nothing new. This blocks the receiver nodes from syncing leading to
high delays. To fix this, Sync interests now include the cumulative number
of elements inserted into the IBF. This is used as an heuristic to guide
PSync on decode failures to minimize the chance of sending of such data
packets. Sync data freshness for entire dataset is also reduced.
If a no new update still happens, introduce some safeguards in the code.

2) Fast reaction upon negative set being detected is introduced. Timed
processing for interests is also introduced.

3) Fix satisfyPendingInterests to send the new update on publish even if
pending IBF decode fails, since we have something to send.

4) For interests which request segments, only respond with segments already contained
in in-memory storage.

refs: [solution II] in Thesis:
"Improvements to PSync: Distributed Full Dataset Synchronization
in Named-Data Networking"
https://digitalcommons.memphis.edu/cgi/viewcontent.cgi?article=3162&context=etd

Change-Id: Ie235b4fb56fcb7de21068511205e407006292b23
  • Loading branch information
agawande authored and awlane committed Apr 9, 2024
1 parent 8c7c228 commit d83af52
Show file tree
Hide file tree
Showing 10 changed files with 360 additions and 159 deletions.
2 changes: 2 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ If you would like to become a contributor to the official repository, please fol
* Alexander Afanasyev <https://users.cs.fiu.edu/~afanasyev>
* ***(Maintainer)*** Saurab Dulal <https://dulalsaurab.github.io>
* ***(Former Maintainer)*** Ashlesh Gawande <https://www.linkedin.com/in/agawande>
* Dylan Hensley
* Alexander Lane <https://github.com/awlane>
* Eric Newberry <https://ericnewberry.com>
* Davide Pesavento <https://github.com/Pesa>
* Junxiao Shi <https://cs.arizona.edu/~shijunxiao>
Expand Down
2 changes: 1 addition & 1 deletion PSync/common.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2014-2022, The University of Memphis
* Copyright (c) 2014-2024, The University of Memphis
*
* This file is part of PSync.
* See AUTHORS.md for complete list of PSync authors and contributors.
Expand Down
4 changes: 2 additions & 2 deletions PSync/consumer.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2014-2023, The University of Memphis
* Copyright (c) 2014-2024, The University of Memphis
*
* This file is part of PSync.
* See AUTHORS.md for complete list of PSync authors and contributors.
Expand Down Expand Up @@ -65,7 +65,7 @@ class Consumer
/// Callback to give sync data back to application.
UpdateCallback onUpdate = [] (const auto&) {};
/// Number of expected elements (subscriptions) in Bloom filter.
uint32_t bfCount = 80;
uint32_t bfCount = 6;
/// Bloom filter false positive probability.
double bfFalsePositive = 0.001;
/// Lifetime of hello Interest.
Expand Down
Loading

0 comments on commit d83af52

Please sign in to comment.