Package org.infinispan.remoting.transport

Examples of org.infinispan.remoting.transport.Address


      }
      return null;
   }

   final boolean shouldTransferOwnershipToJoinNode(Object k) {    
      Address self = transport.getAddress();     
      int numCopies = configuration.getNumOwners();
      List<Address> oldOwnerList = oldCH.locate(k, numCopies);
      if (!oldOwnerList.isEmpty() && self.equals(oldOwnerList.get(0))) {
         List<Address> newOwnerList = newCH.locate(k, numCopies);
         if (newOwnerList.contains(sender)) return true;
      }
      return false;
   }
View Full Code Here


  
   public <T> Map<Address, List<T>> mapKeysToNodes(DistributionManager dm, String taskId,
            Collection<T> keysToMap, boolean useIntermediateCompositeKey) {
      Map<Address, List<T>> addressToKey = new HashMap<Address, List<T>>();
      for (T key : keysToMap) {
         Address ownerOfKey = null;
         if (useIntermediateCompositeKey) {
            ownerOfKey = dm.getPrimaryLocation(new IntermediateCompositeKey<T>(taskId, key));
         } else {
            ownerOfKey = dm.getPrimaryLocation(key);
         }
View Full Code Here

   }
  
   protected <KIn> Set<KIn> filterLocalPrimaryOwner(Set<KIn> nodeLocalKeys, DistributionManager dm) {   
      Set<KIn> selectedKeys = new HashSet<KIn>();
      for (KIn key : nodeLocalKeys) {
         Address primaryLocation = dm.getPrimaryLocation(key);
         if (primaryLocation != null && primaryLocation.equals(localAddress)) {
            selectedKeys.add(key);
         }
      }
      return selectedKeys;
   }
View Full Code Here

      // Populate the primary owners first - because numSegments < numMembers we're guaranteed to
      // set the primary owner of each segment
      for (Map.Entry<Integer, Address> e : primarySegments.entrySet()) {
         Integer segment = e.getKey();
         Address primaryOwner = e.getValue();
         builder.getOwners(segment).add(primaryOwner);
      }

      // Continue with the backup owners. Assign each member as owner to one segment,
      // then repeat until each segment has numOwners owners.
View Full Code Here

      // At this point each segment already has actualNumOwners owners.
      for (int segment = 0; segment < builder.getNumSegments(); segment++) {
         List<Address> owners = builder.getOwners(segment);
         List<Address> backupOwners = builder.getBackupOwners(segment);
         for (int i = backupOwners.size() - 1; i >= 0; i--) {
            Address owner = backupOwners.get(i);
            if (locationIsDuplicate(owner, owners, level)) {
               // Got a duplicate site/rack/machine, we might have an alternative for it.
               for (Address candidate : builder.getMembers()) {
                  if (!owners.contains(candidate) && !locationIsDuplicate(candidate, owners, level)) {
                     builder.addOwner(segment, candidate);
View Full Code Here

      // Iterate over the owners in the outer loop so that we minimize the number of owner changes
      // for the same segment. At this point each segment already has actualNumOwners owners.
      for (int ownerIdx = builder.getActualNumOwners() - 1; ownerIdx >= 1; ownerIdx--) {
         for (int segment = 0; segment < builder.getNumSegments(); segment++) {
            List<Address> owners = builder.getOwners(segment);
            Address owner = owners.get(ownerIdx);
            if (builder.getOwned(owner) > maxSegments) {
               // Owner has too many segments. Find another node to replace it with.
               for (Address candidate : builder.getMembers()) {
                  if (builder.getOwned(candidate) < minSegments) {
                     if (!owners.contains(candidate) && maintainsMachines(owners, candidate, owner)) {
View Full Code Here

         // Either when creating a new CH or when all the owners of a segment left
         boolean zeroOwners = builder.getOwners(segment).isEmpty();
         if (!zeroOwners && builder.getPrimaryOwned(builder.getPrimaryOwner(segment)) <= maxSegments)
            continue;

         Address newPrimary = findNewPrimaryOwner(builder, builder.getMembers(), maxSegments);
         if (newPrimary != null) {
            builder.replacePrimaryOwner(segment, newPrimary);
         }
      }
   }
View Full Code Here

      for (int segment = builder.getNumSegments() - 1; segment >= 0; segment--) {
         if (builder.getOwners(segment).isEmpty())
            continue;

         if (builder.getPrimaryOwned(builder.getPrimaryOwner(segment)) > maxSegments) {
            Address newPrimary = findNewPrimaryOwner(builder, builder.getBackupOwners(segment), maxSegments);
            if (newPrimary != null) {
               // actually replaces the primary owner
               builder.replacePrimaryOwner(segment, newPrimary);
            }
         }
View Full Code Here

         List<Address> owners = builder.getOwners(segment);
         for (int ownerIdx = owners.size() - 1; ownerIdx >= 1; ownerIdx--) {
            if (owners.size() <= builder.getActualNumOwners())
               break;

            Address owner = owners.get(ownerIdx);
            if (builder.getOwned(owner) > maxSegments) {
               // Owner has too many segments. Remove it.
               builder.removeOwner(segment, owner);
            }
         }
View Full Code Here

      boolean insufficientOwners = false;
      for (int segment = 0; segment < builder.getNumSegments(); segment++) {
         List<Address> owners = builder.getOwners(segment);

         while (owners.size() < builder.getActualNumOwners()) {
            Address newOwner = findNewBackupOwner(builder, owners, maxSegments);
            // If we haven't found an owner, we'll only find it with an increased maxSegments
            if (newOwner == null) {
               insufficientOwners = true;
               break;
            }
View Full Code Here

TOP

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

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.