private void updateTerm(long term) { if (term > currentTerm.term()) { recomputeTerm(groupMembershipService.getMembership(partitionId.group())); } }
/** * Sets the system management partition group. * * @param managementGroup the system management partition group * @return the Atomix configuration */ public AtomixConfig setManagementGroup(PartitionGroupConfig<?> managementGroup) { managementGroup.setName(MANAGEMENT_GROUP_NAME); this.managementGroup = managementGroup; return this; }
/** * Sets the member group strategy. * * @param memberGroupStrategy the member group strategy * @return the partition group configuration */ public LogPartitionGroupConfig setMemberGroupStrategy(MemberGroupStrategy memberGroupStrategy) { this.memberGroupStrategy = memberGroupStrategy.name(); return this; }
@Override public boolean isRelevant(PartitionGroupMembershipEvent event) { return event.membership().group().equals(partitionId.group()); } };
public DefaultPrimaryElection(PartitionId partitionId, SessionClient proxy, PrimaryElectionService service) { this.partitionId = checkNotNull(partitionId); this.proxy = proxy; this.service = service; this.eventListener = event -> { if (event.partitionId().equals(partitionId)) { listeners.forEach(l -> l.event(event)); } }; service.addListener(eventListener); }
/** * Builds the core partition group. */ @SuppressWarnings("unchecked") private static ManagedPartitionGroup buildSystemPartitionGroup(AtomixConfig config) { PartitionGroupConfig<?> partitionGroupConfig = config.getManagementGroup(); if (partitionGroupConfig == null) { return null; } return partitionGroupConfig.getType().newPartitionGroup(partitionGroupConfig); }
/** * Returns the member group provider. * * @return the member group provider */ public MemberGroupStrategy getMemberGroupProvider() { return MemberGroupStrategy.valueOf(memberGroupStrategy); }
@Override public PartitionId getPartitionId(String key) { return partitioner.partition(key, partitionIds); }
/** * Creates a new member group identifier. * * @param id the group ID * @return the new member group identifier */ public static MemberGroupId from(String id) { return new MemberGroupId(id); }
/** * Returns the partition ID. * * @return the partition ID */ public PartitionId partitionId() { return subject(); }
/** * Creates a partition identifier from an integer. * * @param group the group identifier * @param id input integer * @return partition identification */ public static PartitionId from(String group, int id) { return new PartitionId(group, id); }
/** * Returns the election term. * * @return the election term */ public PrimaryTerm term() { return subject(); }
/** * Returns the partition group membership. * * @return the partition group membership */ public PartitionGroupMembership membership() { return subject(); } }
@Override public void event(PartitionGroupMembershipEvent event) { recomputeTerm(event.membership()); }
/** * Sets the member group strategy. * * @param memberGroupStrategy the member group strategy * @return the partition group configuration */ public PrimaryBackupPartitionGroupConfig setMemberGroupStrategy(MemberGroupStrategy memberGroupStrategy) { this.memberGroupStrategy = memberGroupStrategy.name(); return this; } }
/** * Returns the member group provider. * * @return the member group provider */ public MemberGroupStrategy getMemberGroupProvider() { return MemberGroupStrategy.valueOf(memberGroupStrategy); }