Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Message Drop Policy Support and Bubble Rap Implementation #43

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

micdoug
Copy link

@micdoug micdoug commented Jan 9, 2017

Hi all,

I created a pull request some time ago adding the support for message drop policies, but, I closed it because I had decided to make more tests at that time.

With this modifications I have added the support for message drop policies. There are 4 basic policies available: EDrop, FIFO, MOFO and SHLI. When specified in the configuration file an instance of a drop policy is created and called by the ActiveRouter class instead of the original makeRoomForMessage method when a message is received. It's easy to understand the code and there are some basic unit tests. If you want to implement your own drop policy, all you need to do is create a new class in the buffermanagement package extending from DropPolicy.
I also have created a configuration example file in the examples folder.

I have also implemented the BubbleRap routing protocol. My implementation is based on this https://github.com/knightcode/the-one-pitt , but using the methods available in the ActiveRouter class to do the message exchange process, so it is more integrated to the simulator in general. I have used this implementation in my research. There are some limitations in this implementation, for example, it considers that each node have only one community. But this can be improved.

The BubbleRapRouter use an implementation of CommunityDetection and Centrality to detect the communities and compute the local and global centrality values for each node, respectively. There are two implementations of CommunityDetection interface available: DistributedKCliqueCommunityDetection and ExternalCommunityDetection. The first is based on the algorithm with the same name and the second loads the communities from an external file. There are two implementations of the Centrality interface: CWindowCentrality that implements the algorithm CWindow and the ExternalCentrality that loads the centrality values from an external file.

There are some unit tests for the BubbleRap implementation.

I hope these modifications help someone.

SaltyHash123 added a commit to stg-tud/thesis-2022-regev-code that referenced this pull request Nov 7, 2022
Added (yet untested) DropPolicy Integration of (currently open) Pull Request 43 akeranen/the-one#43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants