版本: 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;
}





