本文整理汇总了Java中org.apache.helix.model.ExternalView.getResourceName方法的典型用法代码示例。如果您正苦于以下问题:Java ExternalView.getResourceName方法的具体用法?Java ExternalView.getResourceName怎么用?Java ExternalView.getResourceName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.helix.model.ExternalView
的用法示例。
在下文中一共展示了ExternalView.getResourceName方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: refresh
import org.apache.helix.model.ExternalView; //导入方法依赖的package包/类
private void refresh() {
LOGGER.info("HelixBrokerRoutingTable.onExternalViewChange");
PropertyKey externalViews = keyBuilder.externalViews();
HelixDataAccessor helixDataAccessor = _helixManager.getHelixDataAccessor();
List<ExternalView> externalViewList = helixDataAccessor.getChildValues(externalViews);
List<InstanceConfig> instanceConfigList = helixDataAccessor.getChildValues(keyBuilder.instanceConfigs());
Set<String> servingClusterList = getServingDataResource(externalViewList);
for (ExternalView externalView : externalViewList) {
String resourceName = externalView.getResourceName();
if (servingClusterList.contains(resourceName)) {
LOGGER.info("Trying to update ExternalView for data resource : " + resourceName + ", ExternalView: "
+ externalView);
_helixExternalViewBasedRouting.markDataResourceOnline(
resourceName,
HelixHelper.getExternalViewForResouce(_helixManager.getClusterManagmentTool(),
_helixManager.getClusterName(), resourceName), instanceConfigList);
}
}
}
示例2: areParentTasksDone
import org.apache.helix.model.ExternalView; //导入方法依赖的package包/类
private boolean areParentTasksDone(List<ExternalView> externalViewList) {
if (parentIds == null || parentIds.size() == 0) {
return true;
}
for (ExternalView ev : externalViewList) {
String resourceName = ev.getResourceName();
if (parentIds.contains(resourceName)) {
if (isParentTaskDone(ev)) {
completedParentTasks.add(resourceName);
}
}
}
return parentIds.equals(completedParentTasks);
}
示例3: ViewInfo
import org.apache.helix.model.ExternalView; //导入方法依赖的package包/类
public ViewInfo(ExternalView externalView) {
this.resource = externalView.getResourceName();
Set<String> partitionSet = externalView.getPartitionSet();
this.partitionMap = Maps.newTreeMap();
for (String partition : partitionSet) {
Map<String, String> stateMap = externalView.getStateMap(partition);
Pair<String, Integer> resourceAndPartitionNum =
TerrapinUtil.getResourceAndPartitionNum(partition);
if (resourceAndPartitionNum == null) {
LOG.warn("Invalid helix partition for " + resource + " : " + partition);
continue;
}
if (stateMap == null) {
continue;
}
List<String> instanceList = Lists.newArrayListWithCapacity(5);
for (Map.Entry<String, String> entry : stateMap.entrySet()) {
if (entry.getValue().equals("ONLINE")) {
instanceList.add(entry.getKey());
}
}
// Keep the list in alphabetical order.
if (!instanceList.isEmpty()) {
Collections.sort(instanceList);
this.partitionMap.put(TerrapinUtil.getViewPartitionName(resource,
resourceAndPartitionNum.getRight()), instanceList);
}
}
}
示例4: updateTimeBoundaryService
import org.apache.helix.model.ExternalView; //导入方法依赖的package包/类
public synchronized void updateTimeBoundaryService(ExternalView externalView) {
if (_propertyStore == null) {
return;
}
String tableName = externalView.getResourceName();
// Do nothing for realtime table.
if (TableNameBuilder.getTableTypeFromTableName(tableName) == TableType.REALTIME) {
return;
}
Set<String> offlineSegmentsServing = externalView.getPartitionSet();
AbstractTableConfig offlineTableConfig = ZKMetadataProvider.getOfflineTableConfig(_propertyStore, tableName);
TimeUnit tableTimeUnit = getTimeUnitFromString(offlineTableConfig.getValidationConfig().getTimeType());
if (!offlineSegmentsServing.isEmpty() && tableTimeUnit != null) {
long maxTimeValue = -1;
for (String segmentId : offlineSegmentsServing) {
try {
long endTime = -1;
OfflineSegmentZKMetadata offlineSegmentZKMetadata = ZKMetadataProvider.getOfflineSegmentZKMetadata(_propertyStore, tableName, segmentId);
if (offlineSegmentZKMetadata.getEndTime() > 0) {
if (offlineSegmentZKMetadata.getTimeUnit() != null) {
endTime = tableTimeUnit.convert(offlineSegmentZKMetadata.getEndTime(), offlineSegmentZKMetadata.getTimeUnit());
} else {
endTime = offlineSegmentZKMetadata.getEndTime();
}
}
maxTimeValue = Math.max(maxTimeValue, endTime);
} catch (Exception e) {
LOGGER.error("Error during convert end time for segment - " + segmentId + ", exceptions: " + e);
}
}
TimeBoundaryInfo timeBoundaryInfo = new TimeBoundaryInfo();
timeBoundaryInfo.setTimeColumn(offlineTableConfig.getValidationConfig().getTimeColumnName());
timeBoundaryInfo.setTimeValue(Long.toString(maxTimeValue));
_timeBoundaryInfoMap.put(tableName, timeBoundaryInfo);
}
}
示例5: updateTimeBoundaryService
import org.apache.helix.model.ExternalView; //导入方法依赖的package包/类
public synchronized void updateTimeBoundaryService(ExternalView externalView) {
if (_propertyStore == null) {
return;
}
String tableName = externalView.getResourceName();
// Do nothing for realtime table.
if (TableNameBuilder.getTableTypeFromTableName(tableName) == TableType.REALTIME) {
return;
}
Set<String> offlineSegmentsServing = externalView.getPartitionSet();
if (offlineSegmentsServing.isEmpty()) {
LOGGER.info("Skipping updating time boundary service for table '{}' with no offline segments.", tableName);
return;
}
TableConfig offlineTableConfig = ZKMetadataProvider.getOfflineTableConfig(_propertyStore, tableName);
String timeType = offlineTableConfig.getValidationConfig().getTimeType();
TimeUnit tableTimeUnit = getTimeUnitFromString(timeType);
if (tableTimeUnit == null) {
LOGGER.info("Skipping updating time boundary service for table '{}' with null timeUnit, config time type: {}.",
tableName, timeType);
return;
}
// Bulk reading all segment zk-metadata at once is more efficient than reading one at a time.
List<OfflineSegmentZKMetadata> segmentZKMetadataList =
ZKMetadataProvider.getOfflineSegmentZKMetadataListForTable(_propertyStore, tableName);
long maxTimeValue = computeMaxSegmentEndTimeForTable(segmentZKMetadataList, tableTimeUnit);
TimeBoundaryInfo timeBoundaryInfo = new TimeBoundaryInfo();
timeBoundaryInfo.setTimeColumn(offlineTableConfig.getValidationConfig().getTimeColumnName());
timeBoundaryInfo.setTimeValue(Long.toString(maxTimeValue));
_timeBoundaryInfoMap.put(tableName, timeBoundaryInfo);
LOGGER.info("Updated time boundary service for table '{}', maxTime: {}", tableName, maxTimeValue);
}
示例6: testHelixExternalViewBasedRoutingTable
import org.apache.helix.model.ExternalView; //导入方法依赖的package包/类
@Test
public void testHelixExternalViewBasedRoutingTable() throws Exception {
URL resourceUrl = getClass().getClassLoader().getResource("SampleExternalView.json");
Assert.assertNotNull(resourceUrl);
String fileName = resourceUrl.getFile();
byte[] externalViewBytes = IOUtils.toByteArray(new FileInputStream(fileName));
ExternalView externalView = new ExternalView((ZNRecord) new ZNRecordSerializer().deserialize(externalViewBytes));
String tableName = externalView.getResourceName();
List<InstanceConfig> instanceConfigs = getInstanceConfigs(externalView);
int numSegmentsInEV = externalView.getPartitionSet().size();
int numServersInEV = instanceConfigs.size();
HelixExternalViewBasedRouting routing = new HelixExternalViewBasedRouting(null, null, new BaseConfiguration());
routing.markDataResourceOnline(generateTableConfig(tableName), externalView, instanceConfigs);
for (int i = 0; i < NUM_ROUNDS; i++) {
Map<String, List<String>> routingTable = routing.getRoutingTable(new RoutingTableLookupRequest(tableName));
Assert.assertEquals(routingTable.size(), numServersInEV);
int numSegments = 0;
for (List<String> segmentsForServer : routingTable.values()) {
int numSegmentsForServer = segmentsForServer.size();
Assert.assertTrue(
numSegmentsForServer >= MIN_NUM_SEGMENTS_PER_SERVER && numSegmentsForServer <= MAX_NUM_SEGMENTS_PER_SERVER);
numSegments += numSegmentsForServer;
}
Assert.assertEquals(numSegments, numSegmentsInEV);
}
}