Package org.infinispan.remoting.transport

Examples of org.infinispan.remoting.transport.TopologyAwareAddress


      if (locateOwnersForLevel(firstOwnerIndex, actualReplCount, Level.MACHINE, machineIdChangeIndexes, target, owners))
         return owners;

      // we have exhausted all the levels, now check for duplicate nodes on the same machines
      for (Iterator<Map.Entry<Integer, Address>> it = getPositionsIterator(keyNormalizedHash); it.hasNext();) {
         TopologyAwareAddress address = (TopologyAwareAddress) it.next().getValue();
         if (addOwner(owners, address, replCount, target, Level.NONE))
            return owners;
      }

      // might return < replCount owners if there aren't enough nodes in the list
View Full Code Here


    * owners or <code>target</code> is one of the owners.
    */
   private boolean locateOwnersForLevel(int firstOwnerIndex, int replCount, Level level, SortedSet<Integer> levelIdChangeIndexes, Address target, List<Address> owners) {
      // start with the nodes after firstOwnerIndex in the wheel
      for (Integer addrIndex : levelIdChangeIndexes.tailSet(firstOwnerIndex)) {
         TopologyAwareAddress address = (TopologyAwareAddress) positionValues[addrIndex];
         if (addOwner(owners, address, replCount, target, level))
            return true;
      }
      // continue with the nodes from the beginning to firstOwnerIndex
      for (Integer addrIndex : levelIdChangeIndexes.headSet(firstOwnerIndex)) {
         TopologyAwareAddress address = (TopologyAwareAddress) positionValues[addrIndex];
         if (addOwner(owners, address, replCount, target, level))
            return true;
      }
      return false;
   }
View Full Code Here

         }
      }
   }

   private boolean maintainsLocations(List<Address> owners, Address candidate, Address replaced) {
      TopologyAwareAddress topologyAwareCandidate = (TopologyAwareAddress) candidate;
      TopologyAwareAddress topologyAwareReplaced = (TopologyAwareAddress) replaced;

      Set<String> newSites = new HashSet<String>();
      Set<String> newRacks = new HashSet<String>();
      Set<String> newMachines = new HashSet<String>();
      for (Address node : owners) {
         if (node.equals(replaced))
            continue;

         TopologyAwareAddress topologyAwareNode = (TopologyAwareAddress) node;
         newSites.add(topologyAwareNode.getSiteId());
         newRacks.add(topologyAwareNode.getSiteId() + "|" + topologyAwareNode.getRackId());
         newMachines.add(topologyAwareNode.getSiteId() + "|" + topologyAwareNode.getRackId()
               + "|" + topologyAwareNode.getMachineId());
      }

      newSites.add(topologyAwareCandidate.getSiteId());
      newRacks.add(topologyAwareCandidate.getSiteId() + "|" + topologyAwareCandidate.getRackId());
      newMachines.add(topologyAwareCandidate.getSiteId() + "|" + topologyAwareCandidate.getRackId()
View Full Code Here

         return false;
      return true;
   }

   private boolean locationAlreadyAdded(List<Address> owners, Address candidate, Address replaced, Level level) {
      TopologyAwareAddress topologyAwareCandidate = (TopologyAwareAddress) candidate;
      boolean locationAlreadyAdded = false;
      for (Address owner : owners) {
         if (owner.equals(replaced))
            continue;

         TopologyAwareAddress topologyAwareOwner = (TopologyAwareAddress) owner;
         switch (level) {
            case SITE:
               locationAlreadyAdded = topologyAwareCandidate.isSameSite(topologyAwareOwner);
               break;
            case RACK:
View Full Code Here

      super.setCaches(newCaches);

      siteIdChangeIndexes.clear();
      rackIdChangeIndexes.clear();
      machineIdChangeIndexes.clear();
      TopologyAwareAddress lastSiteAddr = (TopologyAwareAddress) positionValues[positionValues.length - 1];
      TopologyAwareAddress lastRackAddr = (TopologyAwareAddress) positionValues[positionValues.length - 1];
      TopologyAwareAddress lastMachineAddr = (TopologyAwareAddress) positionValues[positionValues.length - 1];
      for (int i = 0; i < positionKeys.length; i++) {
         TopologyAwareAddress a = (TopologyAwareAddress) positionValues[i];
         if (!lastSiteAddr.isSameSite(a)) {
            siteIdChangeIndexes.add(i);
            lastSiteAddr = a;
         }
         if (!lastRackAddr.isSameRack(a)) {
View Full Code Here

      if (locateOwnersForLevel(firstOwnerIndex, actualReplCount, Level.MACHINE, machineIdChangeIndexes, target, owners))
         return owners;

      // we have exhausted all the levels, now check for duplicate nodes on the same machines
      for (Iterator<Map.Entry<Integer, Address>> it = getPositionsIterator(keyNormalizedHash); it.hasNext();) {
         TopologyAwareAddress address = (TopologyAwareAddress) it.next().getValue();
         if (addOwner(owners, address, replCount, target, Level.NONE))
            return owners;
      }

      // might return < replCount owners if there aren't enough nodes in the list
View Full Code Here

    * owners or <code>target</code> is one of the owners.
    */
   private boolean locateOwnersForLevel(int firstOwnerIndex, int replCount, Level level, SortedSet<Integer> levelIdChangeIndexes, Address target, List<Address> owners) {
      // start with the nodes after firstOwnerIndex in the wheel
      for (Integer addrIndex : levelIdChangeIndexes.tailSet(firstOwnerIndex)) {
         TopologyAwareAddress address = (TopologyAwareAddress) positionValues[addrIndex];
         if (addOwner(owners, address, replCount, target, level))
            return true;
      }
      // continue with the nodes from the beginning to firstOwnerIndex
      for (Integer addrIndex : levelIdChangeIndexes.headSet(firstOwnerIndex)) {
         TopologyAwareAddress address = (TopologyAwareAddress) positionValues[addrIndex];
         if (addOwner(owners, address, replCount, target, level))
            return true;
      }
      return false;
   }
View Full Code Here

            break;
      }
      List<Address> result = new ArrayList<Address>();
      for (Address address : members) {
         if(address instanceof TopologyAwareAddress){
            TopologyAwareAddress taa = (TopologyAwareAddress)address;
            if(filter.include(taa, (TopologyAwareAddress)getAddress())){
               result.add(address);
            }
         } else {
            result.add(address);
View Full Code Here

      assertEquals(tach0.getMembers(), tach2.getMembers());
   }

   private void assertTopologyInfo3Nodes(List<Address> caches) {
      assertTopologyInfo2Nodes(caches);
      TopologyAwareAddress address1 = (TopologyAwareAddress) address(1);
      assertEquals(address1.getSiteId(), "s1");
      assertEquals(address1.getRackId(), "r1");
      assertEquals(address1.getMachineId(), "m1");
   }
View Full Code Here

      assertEquals(address1.getRackId(), "r1");
      assertEquals(address1.getMachineId(), "m1");
   }

   private void assertTopologyInfo2Nodes(List<Address> caches) {
      TopologyAwareAddress address0 = (TopologyAwareAddress) address(0);
      assertEquals(address0.getSiteId(), "s0");
      assertEquals(address0.getRackId(), "r0");
      assertEquals(address0.getMachineId(), "m0");
      TopologyAwareAddress address2 = (TopologyAwareAddress) address(2);
      assertEquals(address2.getSiteId(), "s2");
      assertEquals(address2.getRackId(), "r2");
      assertEquals(address2.getMachineId(), "m2");
   }
View Full Code Here

TOP

Related Classes of org.infinispan.remoting.transport.TopologyAwareAddress

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.