You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gossip.apache.org by ec...@apache.org on 2017/03/10 16:31:40 UTC
[2/2] incubator-gossip git commit: GOSSIP-63 merge cleanup
GOSSIP-63 merge cleanup
Project: http://git-wip-us.apache.org/repos/asf/incubator-gossip/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-gossip/commit/2622248e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-gossip/tree/2622248e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-gossip/diff/2622248e
Branch: refs/heads/master
Commit: 2622248e7b4a1f015058ee8d8126184657ab4dfb
Parents: 19662d1 da1aba9
Author: Edward Capriolo <ed...@gmail.com>
Authored: Fri Mar 10 11:10:31 2017 -0500
Committer: Edward Capriolo <ed...@gmail.com>
Committed: Fri Mar 10 11:10:31 2017 -0500
----------------------------------------------------------------------
.../org/apache/gossip/crdt/CrdtCounter.java | 24 ++++
.../java/org/apache/gossip/crdt/CrdtModule.java | 7 ++
.../org/apache/gossip/crdt/GrowOnlyCounter.java | 119 +++++++++++++++++++
src/test/java/org/apache/gossip/DataTest.java | 62 +++++++++-
.../apache/gossip/crdt/GrowOnlyCounterTest.java | 54 +++++++++
5 files changed, 262 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-gossip/blob/2622248e/src/test/java/org/apache/gossip/DataTest.java
----------------------------------------------------------------------
diff --cc src/test/java/org/apache/gossip/DataTest.java
index 147702d,a8d57a7..5ca7be7
--- a/src/test/java/org/apache/gossip/DataTest.java
+++ b/src/test/java/org/apache/gossip/DataTest.java
@@@ -26,19 -28,19 +26,21 @@@ import java.util.List
import java.util.UUID;
import java.util.concurrent.TimeUnit;
+ import org.apache.gossip.crdt.GrowOnlyCounter;
import org.apache.gossip.crdt.GrowOnlySet;
import org.apache.gossip.crdt.OrSet;
-import org.apache.gossip.model.GossipDataMessage;
-import org.apache.gossip.model.SharedGossipDataMessage;
+import org.apache.gossip.manager.GossipManager;
+import org.apache.gossip.manager.GossipManagerBuilder;
+import org.apache.gossip.model.PerNodeDataMessage;
+import org.apache.gossip.model.SharedDataMessage;
import org.junit.Test;
import io.teknek.tunit.TUnit;
-public class DataTest {
+public class DataTest extends AbstractIntegrationBase {
private String orSetKey = "cror";
+ private String gCounterKey = "crdtgc";
@Test
public void dataTest() throws InterruptedException, UnknownHostException, URISyntaxException{
@@@ -72,22 -74,22 +74,23 @@@
clients.get(0).gossipPerNodeData(msg());
clients.get(0).gossipSharedData(sharedMsg());
- TUnit.assertThat(()-> {
+ TUnit.assertThat(()-> {
- GossipDataMessage x = clients.get(1).findPerNodeData(1 + "", "a");
+ PerNodeDataMessage x = clients.get(1).findPerNodeGossipData(1 + "", "a");
if (x == null)
return "";
else
return x.getPayload();
}).afterWaitingAtMost(20, TimeUnit.SECONDS).isEqualTo("b");
--
- TUnit.assertThat(() -> {
++
+ TUnit.assertThat(() -> {
- SharedGossipDataMessage x = clients.get(1).findSharedData("a");
+ SharedDataMessage x = clients.get(1).findSharedGossipData("a");
if (x == null)
return "";
else
return x.getPayload();
}).afterWaitingAtMost(20, TimeUnit.SECONDS).isEqualTo("c");
++
givenDifferentDatumsInSet(clients);
assertThatListIsMerged(clients);
@@@ -95,11 -97,53 +98,54 @@@
assertThatOrSetIsMerged(clients);
dropIt(clients);
assertThatOrSetDelIsMerged(clients);
++
+
+ // test g counter
+ givenDifferentIncrement(clients);
+ assertThatCountIsUpdated(clients, 3);
+ givenIncreaseOther(clients);
+ assertThatCountIsUpdated(clients, 7);
+
+ for (int i = 0; i < clusterMembers; ++i) {
+ clients.get(i).shutdown();
+ }
}
- private void givenDifferentIncrement(final List<GossipService> clients) {
++ private void givenDifferentIncrement(final List<GossipManager> clients) {
+ {
- SharedGossipDataMessage d = new SharedGossipDataMessage();
++ SharedDataMessage d = new SharedDataMessage();
+ d.setKey(gCounterKey);
- d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(0).getGossipManager()).increment(1)));
++ d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(0)).increment(1)));
+ d.setExpireAt(Long.MAX_VALUE);
+ d.setTimestamp(System.currentTimeMillis());
- clients.get(0).getGossipManager().merge(d);
++ clients.get(0).merge(d);
+ }
+ {
- SharedGossipDataMessage d = new SharedGossipDataMessage();
++ SharedDataMessage d = new SharedDataMessage();
+ d.setKey(gCounterKey);
- d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(1).getGossipManager()).increment(2)));
++ d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(1)).increment(2)));
+ d.setExpireAt(Long.MAX_VALUE);
+ d.setTimestamp(System.currentTimeMillis());
- clients.get(1).getGossipManager().merge(d);
++ clients.get(1).merge(d);
+ }
+ }
+
- private void givenIncreaseOther(final List<GossipService> clients) {
- GrowOnlyCounter gc = (GrowOnlyCounter) clients.get(1).getGossipManager().findCrdt(gCounterKey);
++ private void givenIncreaseOther(final List<GossipManager> clients) {
++ GrowOnlyCounter gc = (GrowOnlyCounter) clients.get(1).findCrdt(gCounterKey);
+ GrowOnlyCounter gc2 = new GrowOnlyCounter(gc,
- new GrowOnlyCounter.Builder(clients.get(1).getGossipManager()).increment(4));
++ new GrowOnlyCounter.Builder(clients.get(1)).increment(4));
+
- SharedGossipDataMessage d = new SharedGossipDataMessage();
++ SharedDataMessage d = new SharedDataMessage();
+ d.setKey(gCounterKey);
+ d.setPayload(gc2);
+ d.setExpireAt(Long.MAX_VALUE);
+ d.setTimestamp(System.currentTimeMillis());
- clients.get(1).getGossipManager().merge(d);
++ clients.get(1).merge(d);
+ }
+
- private void givenOrs(List<GossipService> clients) {
+ private void givenOrs(List<GossipManager> clients) {
{
- SharedGossipDataMessage d = new SharedGossipDataMessage();
+ SharedDataMessage d = new SharedDataMessage();
d.setKey(orSetKey);
d.setPayload(new OrSet<String>("1", "2"));
d.setExpireAt(Long.MAX_VALUE);
@@@ -143,14 -187,21 +189,22 @@@
}).afterWaitingAtMost(10, TimeUnit.SECONDS).equals(new OrSet<String>("1", "2", "4"));
}
- private void givenDifferentDatumsInSet(final List<GossipService> clients){
- clients.get(0).getGossipManager().merge(CrdtMessage("1"));
- clients.get(1).getGossipManager().merge(CrdtMessage("2"));
+ private void givenDifferentDatumsInSet(final List<GossipManager> clients){
+ clients.get(0).merge(CrdtMessage("1"));
+ clients.get(1).merge(CrdtMessage("2"));
}
- private void assertThatCountIsUpdated(final List<GossipService> clients, int finalCount) {
++
++ private void assertThatCountIsUpdated(final List<GossipManager> clients, int finalCount) {
+ TUnit.assertThat(() -> {
- return clients.get(0).getGossipManager().findCrdt(gCounterKey);
++ return clients.get(0).findCrdt(gCounterKey);
+ }).afterWaitingAtMost(10, TimeUnit.SECONDS).isEqualTo(new GrowOnlyCounter(
- new GrowOnlyCounter.Builder(clients.get(0).getGossipManager()).increment(finalCount)));
++ new GrowOnlyCounter.Builder(clients.get(0)).increment(finalCount)));
+ }
+
- private void assertThatListIsMerged(final List<GossipService> clients){
+ private void assertThatListIsMerged(final List<GossipManager> clients){
TUnit.assertThat(() -> {
- return clients.get(0).getGossipManager().findCrdt("cr");
+ return clients.get(0).findCrdt("cr");
}).afterWaitingAtMost(10, TimeUnit.SECONDS).isEqualTo(new GrowOnlySet<String>(Arrays.asList("1","2")));
}
@@@ -160,11 -211,11 +214,11 @@@
d.setPayload(new GrowOnlySet<String>( Arrays.asList(item)));
d.setExpireAt(Long.MAX_VALUE);
d.setTimestamp(System.currentTimeMillis());
- return d;
+ return d;
}
- private GossipDataMessage msg(){
- GossipDataMessage g = new GossipDataMessage();
+ private PerNodeDataMessage msg(){
+ PerNodeDataMessage g = new PerNodeDataMessage();
g.setExpireAt(Long.MAX_VALUE);
g.setKey("a");
g.setPayload("b");