📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.8-7.1

简要来说,当两个或多个进程在rollover操作期间尝试同时修改同一个Elasticsearch别名时,就会发生此错误。这可能导致数据不一致或数据丢失。要解决此问题,您可以实现一个队列系统来管理rollover请求,确保一次只执行一个操作。或者,您可以使用锁机制来防止并发修改。最后,您可以安排在不同的时间执行rollover操作,以避免重叠。

日志上下文 #

日志 “Concurrent modification of alias [{}] during rollover” 的类名是 TransportRolloverAction.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的开发者参考:

public ClusterState execute(ClusterState currentState) throws Exception {
 MetadataRolloverService.RolloverResult rolloverResult = rolloverService.rolloverClusterState(currentState;
 rolloverRequest.getRolloverTarget(); rolloverRequest.getNewIndexName();
 rolloverRequest.getCreateIndexRequest(); metConditions; false; false);
 if (rolloverResult.sourceIndexName.equals(sourceIndexName) == false) {
 throw new ElasticsearchException("Concurrent modification of alias [{}] during rollover";
 rolloverRequest.getRolloverTarget());
 }
 return rolloverResult.clusterState;
 }