
elasticsearch
文章平均质量分 96
cigarL
这个作者很懒,什么都没留下…
展开
-
Elasticsearch-ForceMerge(一)
4. 强制段合并 代码入口:org.elasticsearch.action.admin.indices.forcemerge.TransportForceMergeAction#shardOperation 对于待合并处理的分片,需要先校验该分片的状态 /** * 判断分片状态是否为STARTED,如果已被关闭或异常,则无法merge */ protected final void verifyActive() throws IllegalIndexShardStateException {原创 2020-08-28 18:07:05 · 2295 阅读 · 13 评论 -
Lucene Demo
demo package com.lucene.test; import java.io.File; import java.io.IOException; import java.nio.file.Paths; import ... /** * Lucene写入查询Demo,用于debug学习 */ public class Test1 { private static ...原创 2020-01-08 10:56:53 · 251 阅读 · 0 评论 -
Elasticsearch-PEER RECOVERY(三)
这里说明一下chunk并发的逻辑,即 cancellableThreads.execute(() -> requestSeqIdTracker.waitForOpsToComplete(requestSeqId - maxConcurrentFileChunks));每次write成功后会更新checkpoint public synchronized void waitForOpsTo...原创 2020-01-08 10:13:17 · 461 阅读 · 0 评论 -
Elasticsearch-PEER RECOVERY(二)
3.2.2 INDEX 在prepareForIndexRecovery之后,就是consumer处理各种异常,我们先跳过,等到accept处理时再看;可以看到,INDEX阶段此时通过transportService发送了一个内部请求,到源节点(即当前副本分片节点向主分片所在节点发送请求),action为 internal:index/shard/recovery/start_recovery...原创 2020-01-08 10:12:01 · 449 阅读 · 0 评论 -
Elasticsearch-PEER RECOVERY(一)
3. 索引恢复 代码入口: IndicesClusterStateService#applyClusterState 看完创建索引的部分,就有疑问了,只看到了创建索引,那集群状态在何时何地同步的呢?进到IndicesClusterStateService#applyClusterState可能就明白了,直接贴代码,同步状态就是进入到createIndices,通过transportServ...原创 2020-01-08 10:09:50 · 956 阅读 · 0 评论 -
Elasticsearch-Create Index
2.创建索引 代码入口:TransportCreateIndexAction,继承自TransportMasterNodeAction#doExecute(Task task, final Request request, ActionListener listener) 在上述bulk流程中,可以看到,开启了自动创建索引后,当有数据写入时,先会拿到所有索引,过滤、校验后获取到可以创建的索...原创 2020-01-08 10:08:44 · 1282 阅读 · 0 评论 -
Elasticsearch-Bulk基本流程(二)
1.3.2.2.1 执行写入操作 由于监听、校验、初始化等操作过多,我们直接看代码流程,走到写入的部分,ReplicationOperation#execute()#perform(request) -> TransportReplicationAction#perform(Request request) -> TransportShardBulkAction#shardOper...原创 2020-01-08 10:05:23 · 699 阅读 · 0 评论 -
Elasticsearch-Bulk基本流程(一)
1.Bulk基本流程 Elasticsearch写操作,是先在主分片执行成功后,转发请求到其他副本分片进行处理,所有分片执行成功,返回响应给主分片,主分片拿到结果,返回客户端。可以通过wait_for_active_shards参数指定需要确认的分片数,默认为1,即主分片写入成功就返回结果(假设该参数为3,但只有主分片可用,可以观察到,客户端会被阻塞)。 来自官网的图片: bulk流程: ...原创 2020-01-08 09:56:46 · 1306 阅读 · 2 评论