jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

elasticsearch源码分析之Allocation模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2608 次 | 发布:2016-01-02 9:50 p.m.

对于shard分配到哪个node,之前也提到过了,是由ES自己控制或是由routing来控制,但是在一些情况下会有shard的分配动作,ES中将之称之为allocate,下面我们就来探讨一下allocate相关的知识。

阅读全文

2015年度总结

作者:jasper | 分类:随笔 | 标签:   | 阅读 989 次 | 发布:2015-12-27 12:54 a.m.

唉,2015已经余额不足了,一般说来一年之中都过的平平淡淡的人,是不好意思写总结的,那我还就要厚颜无耻地写了,权且是为了保持这样的一种习惯吧,也是为了以后能回过头来细细回味。

阅读全文

elasticsearch源码分析之Gateway模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2053 次 | 发布:2015-12-21 10:33 p.m.

周末看了两场NBA之后,又要来开始继续研究Elasticsearch的源代码,今天我们来一起看看Gateway模块,Gateway模块用于存储es集群的MetaData。MetaData每一次改变(比如增加删除索引等),都要通过Gateway模块进行持久化。当集群第一次启动的时候,这些信息就会从Gateway模块中读出并应用。

阅读全文

elasticsearch源码分析之ThreadPool模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 3260 次 | 发布:2015-12-12 9:31 p.m.

在ES中所有的action都是由一些线程去执行的(额,感觉说了一句废话),当然多线程的话就需要线程池来控制,其线程的实现与控制就是有threadpool模块来决定,其实之前的很多模块里面都有用到threadpool,那么本文就来详细地说一说ES的线程池模块——ThreadPool。

阅读全文

如何在IDE中运行elasticsearch

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2580 次 | 发布:2015-12-06 11:56 p.m.

现在插播一篇,之前还一直没有源码跑过Elasticsearch,如果想调试Elasticsearch,或是对它做一些修改,那么就需要在IDE中将之在本地跑起来,不像直接下载的包,对于源码的运行还需要一些额外的注意。

阅读全文

elasticsearch源码分析之Merge

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2735 次 | 发布:2015-12-06 10:06 p.m.

上一篇中说道数据被flush到磁盘之后,其实是一个一个小的segment,这样的segment每秒都在产生,大量的segment会占用大量的资源,而且每次search的时候会去遍历所有的segment,从而导致性能低下,ES为了优化,在后面运行任务将这种小的segment归并为较大的,这个过程就叫做“merge”,这篇文章就来探究探究merge是怎么工作的。

阅读全文

elasticsearch源码分析之索引过程(二)

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2400 次 | 发布:2015-12-05 6:06 p.m.

接着上一篇的,在写入了buffer和translog之后,数据仍然不能被搜到,必须还得执行一个操作---refresh,而将segment刷到磁盘还需要一个操作---flush;为了保证数据的一致性,还需要一个之前提到的translog,那么我们这篇就来研究他们是怎么工作的。

阅读全文

elasticsearch源码分析之索引过程(一)

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 3689 次 | 发布:2015-11-28 10:41 p.m.

接着上一篇说了发送端的情况,现在我们来聊聊ES数据接收端都干了些啥,ES是怎么把数据插进去的,这一部分ES的那帮人写的挺绕的,好不容易才疏通。

阅读全文

elasticsearch源码分析之java客户端

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 3022 次 | 发布:2015-11-22 11:44 p.m.

本文所说的java客户端主要只是讲解一下用于插数据的client的原理,我们都知道往ES发数据有三种protocol分别是node、http和transport;其实对于其他client而言最终都是使用的http;而java是可以使用node和transport的,node方式一般很少用,所以我们只探究transport client,那么我们且来看看吧。

阅读全文

elasticsearch源码分析之Transport模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 1982 次 | 发布:2015-11-22 6:09 p.m.

感觉很有必要将transport模块早点看看,这个模块在elasticsearch中用的很广泛,比如之前说的集群node之间的通信、数据的传输、transport client方式的数据发送等等,只要数和通信、数据传输相关的都离不开transport模块的作用。

阅读全文

其他分类: