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


Java DocCollection.getAutoAddReplicas方法代码示例

本文整理汇总了Java中org.apache.solr.common.cloud.DocCollection.getAutoAddReplicas方法的典型用法代码示例。如果您正苦于以下问题:Java DocCollection.getAutoAddReplicas方法的具体用法?Java DocCollection.getAutoAddReplicas怎么用?Java DocCollection.getAutoAddReplicas使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.solr.common.cloud.DocCollection的用法示例。


在下文中一共展示了DocCollection.getAutoAddReplicas方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doWork

import org.apache.solr.common.cloud.DocCollection; //导入方法依赖的package包/类
private void doWork() {
  
  // TODO: extract to configurable strategy class ??
  ClusterState clusterState = zkStateReader.getClusterState();
  if (clusterState != null) {
    if (lastClusterStateVersion == clusterState.getZkClusterStateVersion() && baseUrlForBadNodes.size() == 0) {
      // nothing has changed, no work to do
      return;
    }
    
    lastClusterStateVersion = clusterState.getZkClusterStateVersion();
    Set<String> collections = clusterState.getCollections();
    for (final String collection : collections) {
      DocCollection docCollection = clusterState.getCollection(collection);
      if (!docCollection.getAutoAddReplicas()) {
        continue;
      }
      if (docCollection.getReplicationFactor() == null) {
        log.debug("Skipping collection because it has no defined replicationFactor, name={}", docCollection.getName());
        continue;
      }
      log.debug("Found collection, name={} replicationFactor=", collection, docCollection.getReplicationFactor());
      
      Collection<Slice> slices = docCollection.getSlices();
      for (Slice slice : slices) {
        if (slice.getState().equals(Slice.ACTIVE)) {
          
          final Collection<DownReplica> downReplicas = new ArrayList<DownReplica>();
          
          int goodReplicas = findDownReplicasInSlice(clusterState, docCollection, slice, downReplicas);
          
          log.debug("replicationFactor={} goodReplicaCount={}", docCollection.getReplicationFactor(), goodReplicas);
          
          if (downReplicas.size() > 0 && goodReplicas < docCollection.getReplicationFactor()) {
            // badReplicaMap.put(collection, badReplicas);
            processBadReplicas(collection, downReplicas);
          } else if (goodReplicas > docCollection.getReplicationFactor()) {
            log.debug("There are too many replicas");
          }
        }
      }
    }
   
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:46,代码来源:OverseerAutoReplicaFailoverThread.java


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