当前位置: 首页>>代码示例>>Java>>正文


Java ExternalView.getResourceName方法代码示例

本文整理汇总了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);
    }
  }
}
 
开发者ID:Hanmourang,项目名称:Pinot,代码行数:23,代码来源:HelixBrokerRoutingTable.java

示例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);
}
 
开发者ID:apache,项目名称:helix,代码行数:17,代码来源:Task.java

示例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);
    }
  }
}
 
开发者ID:pinterest-attic,项目名称:terrapin,代码行数:30,代码来源:ViewInfo.java

示例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);
  }
}
 
开发者ID:Hanmourang,项目名称:Pinot,代码行数:38,代码来源:HelixExternalViewBasedTimeBoundaryService.java

示例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);
}
 
开发者ID:linkedin,项目名称:pinot,代码行数:39,代码来源:HelixExternalViewBasedTimeBoundaryService.java

示例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);
  }
}
 
开发者ID:linkedin,项目名称:pinot,代码行数:30,代码来源:RandomRoutingTableTest.java


注:本文中的org.apache.helix.model.ExternalView.getResourceName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。