Package com.splout.db.hazelcast

Examples of com.splout.db.hazelcast.TablespaceVersion


    rEntries.add(new ReplicationEntry(0, dnode1.getAddress(), "fakeaddress:1111", dnode2.getAddress(), "fakeaddress:2222"));

    QNodeHandlerContext context = new QNodeHandlerContext(testConfig, null);
   
    Tablespace tablespace = new Tablespace(PartitionMap.oneShardOpenedMap(), new ReplicationMap(rEntries), 0, 0);
    context.getTablespaceVersionsMap().put(new TablespaceVersion("t1", 0l), tablespace);
    context.getCurrentVersionsMap().put("t1", 0l);

    Querier querier = new Querier(context);
   
    /*
 
View Full Code Here


    rEntries.add(new ReplicationEntry(0, dnode1.getAddress(), "failingaddress:1111", dnode2.getAddress(), "failingaddress:2222"));

    QNodeHandlerContext context = new QNodeHandlerContext(testConfig, null);
   
    Tablespace tablespace = new Tablespace(PartitionMap.oneShardOpenedMap(), new ReplicationMap(rEntries), 0, 0);
    context.getTablespaceVersionsMap().put(new TablespaceVersion("t1", 0l), tablespace);
    context.getCurrentVersionsMap().put("t1", 0l);

    Querier querier = new Querier(context);
   
    /*
 
View Full Code Here

    DNode dnode2 = TestUtils.getTestDNode(config2, dHandler, "dnode-" + this.getClass().getName() + "-2");

    try {
      ReplicationEntry repEntry = new ReplicationEntry(0, dnode1.getAddress(), dnode2.getAddress());
      Tablespace tablespace1 = new Tablespace(PartitionMap.oneShardOpenedMap(), new ReplicationMap(Arrays.asList(repEntry)), 1l, 0l);
      handler.getContext().getTablespaceVersionsMap().put(new TablespaceVersion("tablespace1", 1l), tablespace1);
      handler.getContext().getCurrentVersionsMap().put("tablespace1", 1l);

      QueryStatus qStatus = handler.query("tablespace1", "2", "SELECT 1;", null);
      Assert.assertEquals(new Integer(0), qStatus.getShard());
      Assert.assertEquals("[1]", qStatus.getResult().toString());
View Full Code Here

      CoordinationStructures coord = new CoordinationStructures(hz);
     
      handler.init(config);

      for(int i = 0; i < 8; i++) {
        handler.getContext().getTablespaceVersionsMap().put(new TablespaceVersion("t1", i), new Tablespace(null, null, i, 0l));
      }
     
      Map<String, Long> versionsBeingServed = new HashMap<String, Long>();
      versionsBeingServed.put("t1", 6l);
      coord.getVersionsBeingServed().put(CoordinationStructures.KEY_FOR_VERSIONS_BEING_SERVED, versionsBeingServed);
View Full Code Here

    // DNode1 enters with partitions t1/1/0 and t1/2/0
    ctx.updateTablespaceVersions(facade1.getDNodeInfo(), DNodeEvent.ENTRY);
   
    assertEquals(2, ctx.getTablespaceVersionsMap().keySet().size());

    Tablespace tablespaceV1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    Tablespace tablespaceV2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
   
    assertTablespace(tablespaceV1, new Integer[] { 0 }, "dnode1");
    assertTablespace(tablespaceV2, new Integer[] { 0 }, "dnode1");
   
    // DNode2 enters with partitions t1/1/0 and t1/2/1
    // DNode2 enters with partitions t1/3/0 and t2/1/0 too
    DNodeInfoFacade facade2 = new DNodeInfoFacade("dnode2");
    facade2.addTablespaceVersionPartition("t1", 1l, 0);
    facade2.addTablespaceVersionPartition("t1", 2l, 1);
    facade2.addTablespaceVersionPartition("t1", 3l, 0);
    facade2.addTablespaceVersionPartition("t2", 1l, 0);
   
    ctx.updateTablespaceVersions(facade2.getDNodeInfo(), DNodeEvent.ENTRY);

    Tablespace tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    Tablespace tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    Tablespace tablespace1V3 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 3l));
    Tablespace tablespace2V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t2", 1l));
   
    assertTablespace(tablespace1V1, new Integer[] { 0, 0 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V2, new Integer[] { 0, 1 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V3, new Integer[] { 0 }, "dnode2");
    assertTablespace(tablespace2V1, new Integer[] { 0 }, "dnode2");
   
    // DNode3 enters with partitions t1/1/1 and t2/2/1
    DNodeInfoFacade facade3 = new DNodeInfoFacade("dnode3");
    facade3.addTablespaceVersionPartition("t1", 1l, 1);
    facade3.addTablespaceVersionPartition("t2", 1l, 1);
   
    ctx.updateTablespaceVersions(facade3.getDNodeInfo(), DNodeEvent.ENTRY);

    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    tablespace1V3 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 3l));
    tablespace2V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t2", 1l));
   
    assertTablespace(tablespace1V1, new Integer[] { 0, 0, 1 }, "dnode1", "dnode2", "dnode3");
    assertTablespace(tablespace1V2, new Integer[] { 0, 1 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V3, new Integer[] { 0 }, "dnode2");
    assertTablespace(tablespace2V1, new Integer[] { 0, 1 }, "dnode2", "dnode3");
   
    // DNode 2 leaves. Tablespace 1 version 3 becomes empty!
    ctx.updateTablespaceVersions(facade2.getDNodeInfo(), DNodeEvent.LEAVE);
   
    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    tablespace1V3 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 3l));
    tablespace2V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t2", 1l));

    assertNull(tablespace1V3);
    assertTablespace(tablespace1V1, new Integer[] { 0, 1 }, "dnode1", "dnode3");
    assertTablespace(tablespace1V2, new Integer[] { 0 }, "dnode1");
    assertTablespace(tablespace2V1, new Integer[] { 1 }, "dnode3");
   
    // DNode 2 enters again. Assure that things remain the same as before.
    ctx.updateTablespaceVersions(facade2.getDNodeInfo(), DNodeEvent.ENTRY);
   
    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    tablespace1V3 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 3l));
    tablespace2V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t2", 1l));
   
    assertTablespace(tablespace1V1, new Integer[] { 0, 0, 1 }, "dnode1", "dnode2", "dnode3");
    assertTablespace(tablespace1V2, new Integer[] { 0, 1 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V3, new Integer[] { 0 }, "dnode2");
    assertTablespace(tablespace2V1, new Integer[] { 0, 1 }, "dnode2", "dnode3");

    // DNode 2 leaves. DNode 1 leaves.
    ctx.updateTablespaceVersions(facade2.getDNodeInfo(), DNodeEvent.LEAVE);
    ctx.updateTablespaceVersions(facade1.getDNodeInfo(), DNodeEvent.LEAVE);
   
    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    tablespace1V3 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 3l));
    tablespace2V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t2", 1l));
   
    assertTablespace(tablespace1V1, new Integer[] { 1 }, "dnode3");
    assertNull(tablespace1V2);
    assertNull(tablespace1V3);
    assertTablespace(tablespace2V1, new Integer[] { 1 }, "dnode3");
   
    // DNode 3 leaves.
    ctx.updateTablespaceVersions(facade3.getDNodeInfo(), DNodeEvent.LEAVE);
   
    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    tablespace1V3 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 3l));
    tablespace2V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t2", 1l));

    assertNull(tablespace1V1);
    assertNull(tablespace1V2);
    assertNull(tablespace1V3);
    assertNull(tablespace2V1);
View Full Code Here

    // DNode1 enters with partitions t1/1/0 and t1/2/0
    ctx.updateTablespaceVersions(facade1.getDNodeInfo(), DNodeEvent.ENTRY);
    // DNode2 enters with partitions t1/1/1 and t1/2/1
    ctx.updateTablespaceVersions(facade2.getDNodeInfo(), DNodeEvent.ENTRY);
   
    Tablespace tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    Tablespace tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    assertTablespace(tablespace1V1, new Integer[] { 0, 1 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V2, new Integer[] { 0, 1 }, "dnode1", "dnode2");
   
    /**
     * Implicit leaving can happen in some cases like if one DNode removes an old version.
     * In this case it publishes new information that doesn't contain previous versions that it used to serve.
     */
    facade1 = new DNodeInfoFacade("dnode1");
    facade1.addTablespaceVersionPartition("t1", 1l, 0);

    // DNode1 : implicit leaving t1/2/0
    ctx.updateTablespaceVersions(facade1.getDNodeInfo(), DNodeEvent.UPDATE);

    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    assertTablespace(tablespace1V1, new Integer[] { 0, 1 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V2, new Integer[] { 1 }, "dnode2");
   
    // DNode1 has the leaved version back again
    facade1.addTablespaceVersionPartition("t1", 2l, 0);
    ctx.updateTablespaceVersions(facade1.getDNodeInfo(), DNodeEvent.UPDATE);

    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    assertTablespace(tablespace1V1, new Integer[] { 0, 1 }, "dnode1", "dnode2");
    assertTablespace(tablespace1V2, new Integer[] { 0, 1 }, "dnode1", "dnode2");
   
    // DNode1, DNode2 leave everything implicitly
    facade1 = new DNodeInfoFacade("dnode1");
    facade2 = new DNodeInfoFacade("dnode2");
   
    ctx.updateTablespaceVersions(facade1.getDNodeInfo(), DNodeEvent.UPDATE);
    ctx.updateTablespaceVersions(facade2.getDNodeInfo(), DNodeEvent.UPDATE);
   
    tablespace1V1 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 1l));
    tablespace1V2 = ctx.getTablespaceVersionsMap().get(new TablespaceVersion("t1", 2l));
    assertNull(tablespace1V1);
    assertNull(tablespace1V2);
  }
View Full Code Here

TOP

Related Classes of com.splout.db.hazelcast.TablespaceVersion

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.