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

Integrate PeerSim into the project #309

Open
mschuwalow opened this issue Nov 1, 2020 · 4 comments
Open

Integrate PeerSim into the project #309

mschuwalow opened this issue Nov 1, 2020 · 4 comments

Comments

@mschuwalow
Copy link
Member

In order to ensure that the implementations are reliable we should use something like PeerSim to run simulations. Scope of this ticket is to figure out a way to test Membership layer implementations using it

@chlin501
Copy link
Contributor

chlin501 commented Mar 7, 2021

I am interested in this ticket. However when checking PeerSim's source, I notice it depends on a third party library, which uses a license[1] I am not sure if it's compatible with zio-keeper's Apache License. Is it ok to integrate it or any alternative recommended?

If it's fine, then I suppose pulling PeerSim's code every time when it's needed to do simulation would be enough. Otherwise any suggestions?

Thanks
[1]. http://www.singularsys.com/order/license.html

@mschuwalow
Copy link
Member Author

Thanks for picking this up. This will be a very valuable contribution 🙇‍♂️

I'm not an expert on this.
But it seems like they are using LGPLv2 https://sourceforge.net/projects/peersim/ as their license.
This should allow us to stay licensed as AL 2.0 if I'm not mistaken https://www.gnu.org/licenses/lgpl-java.html.

BTW, alternatively you could also look at Jepsen or other tools for this. We really haven't decided on using PeerSim yet.

@chlin501
Copy link
Contributor

No problem. Will check Jepsen or others to see if there are more suitable ones for this purpose. Thanks for suggestions!

chlin501 added a commit to chlin501/chlin501.github.io that referenced this issue Mar 15, 2021
This is related to the ticket zio/zio-keeper#309
@chlin501
Copy link
Contributor

When checking the source code, I found a few files such as [1], [2], and [3] where [2] and [3] looks like what this ticket want to test. However I don't find corresponded operations, except [4] and [5]. Is it correct that the behavior in [4] and [5] are what this ticket want to examine? Otherwise where should I look into for the protocols in this project? Many thanks.

[1]. https://github.com/zio/zio-keeper/blob/master/keeper/src/main/scala/zio/keeper/transport/Protocol.scala
[2]. https://github.com/zio/zio-keeper/blob/master/keeper/src/main/scala/zio/keeper/MembershipProtocol.scala
[3]. https://github.com/zio/zio-keeper/blob/master/keeper/src/main/scala/zio/keeper/ConsensusProtocol.scala
[4]. https://github.com/zio/zio-keeper/blob/master/keeper/src/test/scala/zio/keeper/hyparview/ActiveProtocolSpec.scala
[5]. https://github.com/zio/zio-keeper/blob/master/keeper/src/test/scala/zio/keeper/hyparview/InitialProtocolSpec.scala

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

No branches or pull requests

2 participants