/** * Equality is based on the data center name only. Two {@code DataCenter} objects are equal if they refer to * the same data center. */ @Override public boolean equals(Object o) { return (this == o) || (o instanceof DataCenter && _name.equals(((DataCenter) o).getName())); }
private static void verifySystemDataCenters(Collection<DataCenter> dataCenters) { Set<String> systemDataCenters = Sets.newTreeSet(); for (DataCenter dataCenter : dataCenters) { if (dataCenter.isSystem()) { systemDataCenters.add(dataCenter.getName()); } } if (systemDataCenters.size() > 1) { _log.error("Multiple data centers are configured as system data centers: {}", systemDataCenters); } }
@Override public void withEndPoints(Function<Collection<EndPoint>, ?> function) { List<EndPoint> endPoints = Lists.newArrayList(); DataCenter self = _dataCenters.getSelf(); for (DataCenter dataCenter : _dataCenters.getAll()) { if (!dataCenter.equals(self)) { final URI adminUri = dataCenter.getAdminUri(); endPoints.add(new EndPoint() { @Override public String getAddress() { return _endPointAdapter.toEndPointAddress(adminUri); } @Override public boolean isValid() { return true; } }); } } function.apply(endPoints); } }
@Override public Collection<DataCenter> getDataCenters(String placement) { String keyspace = PlacementUtil.parsePlacement(placement)[0]; return _dataCenters.getForKeyspace(keyspace); } }
private CachedInfo(Map<String, DataCenter> dataCenterByName) { verifySystemDataCenters(dataCenterByName.values()); _dataCenterByName = dataCenterByName; ImmutableMultimap.Builder<String, DataCenter> builder = ImmutableMultimap.builder(); for (DataCenter dataCenter : dataCenterByName.values()) { for (String keyspace : dataCenter.getCassandraKeyspaces()) { builder.put(keyspace, dataCenter); } } _dataCenterByKeyspace = builder.build(); }
@Override public int compareTo(DataCenter o) { return _name.compareTo(o.getName()); }
private static void verifySystemDataCenters(Collection<DataCenter> dataCenters) { Set<String> systemDataCenters = Sets.newTreeSet(); for (DataCenter dataCenter : dataCenters) { if (dataCenter.isSystem()) { systemDataCenters.add(dataCenter.getName()); } } if (systemDataCenters.size() > 1) { _log.error("Multiple data centers are configured as system data centers: {}", systemDataCenters); } }
@Override public Collection<DataCenter> getDataCenters(String placement) { String keyspace = PlacementUtil.parsePlacement(placement)[0]; return _dataCenters.getForKeyspace(keyspace); }
private CachedInfo(Map<String, DataCenter> dataCenterByName) { verifySystemDataCenters(dataCenterByName.values()); _dataCenterByName = dataCenterByName; ImmutableMultimap.Builder<String, DataCenter> builder = ImmutableMultimap.builder(); for (DataCenter dataCenter : dataCenterByName.values()) { for (String keyspace : dataCenter.getCassandraKeyspaces()) { builder.put(keyspace, dataCenter); } } _dataCenterByKeyspace = builder.build(); }
@Override public Managed newInboundReplicationFanout(DataCenter dataCenter, ReplicationSource replicationSource) { PartitionEventSourceSupplier eventSourceSupplier = partition -> new ReplicationEventSource(replicationSource, ChannelNames.getReplicationFanoutChannel(_dataCenters.getSelf(), partition)); return create("in-" + dataCenter.getName(), eventSourceSupplier, null, REMOTE_DC_SLEEP_WHEN_IDLE, _dataCenterFanoutPartitions); }
/** * Equality is based on the data center name only. Two {@code DataCenter} objects are equal if they refer to * the same data center. */ @Override public boolean equals(Object o) { return (this == o) || (o instanceof DataCenter && _name.equals(((DataCenter) o).getName())); }
@Override public Collection<DataCenter> getDataCenters(String placement) { String keyspace = PlacementUtil.parsePlacement(placement)[0]; return _dataCenters.getForKeyspace(keyspace); }
@Override public Managed newInboundReplicationFanout(DataCenter dataCenter, ReplicationSource replicationSource) { PartitionEventSourceSupplier eventSourceSupplier = partition -> new ReplicationEventSource(replicationSource, ChannelNames.getReplicationFanoutChannel(_dataCenters.getSelf(), partition)); return create("in-" + dataCenter.getName(), eventSourceSupplier, null, REMOTE_DC_SLEEP_WHEN_IDLE, _dataCenterFanoutPartitions); }
public static String getReplicationFanoutChannel(DataCenter dataCenter, int partition) { return String.format("%s%s[%d]", REPLICATION_FANOUT_PREFIX, dataCenter.getName(), partition); }
public void cancel(String id) { _scanStatusDAO.setCanceled(id); // Notify the workflow the scan status was updated _scanWorkflow.scanStatusUpdated(id); try { // Delete the entry of the scan start time in Zookeeper. _compactionControlSource.deleteStashTime(id, _dataCenters.getSelf().getName()); } catch (Exception e) { _log.error("Failed to delete the stash time for scan {}", id, e); } } }
@Override public int compareTo(DataCenter o) { return _name.compareTo(o.getName()); }
private void cleanupScan(String id) { // Remove this scan from the active set if (_activeScans.remove(id)) { notifyActiveScanCountChanged(); } try { // Remove the table snapshots set for this scan _dataTools.clearStashTokenRangeSnapshot(id); } catch (Exception e) { _log.error("Failed to clean up table set for scan {}", id, e); } try { // Delete the entry of the scan start time in Zookeeper. _compactionControlSource.deleteStashTime(id, _dataCenters.getSelf().getName()); } catch (Exception e) { _log.error("Failed to delete the stash time for scan {}", id, e); } }
public static String getReplicationFanoutChannel(DataCenter dataCenter, int partition) { return String.format("%s%s[%d]", REPLICATION_FANOUT_PREFIX, dataCenter.getName(), partition); }