Ch03-MySQL 之 内存结构
October 7, 2021
Buffer Pool
...Buffer Pool
...Elasticsearch 之 选举
...Elasticsearch 之线程池。
...Elasticsearch 之 Http
...在 Elasticsearch 中,为了让插入的让数据更快的被检索使用。用一句话来概括就是”开新文件”。但是从另一个方面看,开新文件也会给服务器带来负载压力。因为默认每 1 秒,都会有一个新文件产生,每个文件都需要有文件句柄,内存,CPU 使用等各种资源。一天有 86400 秒,设想一下,每次请求要扫描一遍 86400 个文件,这个响应性能绝对好不了。为了解决这个问题,Elasticsearch 引入了 Merge 操作。
...更新操作也是写操作。Elasticsearch 在创建新文档时,Elasticsearch 将为该文档分配一个版本号。对文档的每次更改都会产生一个新的版本号。当执行更新时,旧版本在.del 文件中被标记为已删除,并且新版本在新的分段中编入索引。旧版本可能仍然与搜索查询匹配,但是从结果中将其过滤掉。
...删除操作是也是写操作。
...Elasticsearch 的 Search 操作包含两个阶段,一个是 QueryPhase,另一个是 FetchPhase。QueryPhase 在初始查询阶段,查询会广播到索引中每一个分片副本 (主分片或副分片)。每个分片在本地执行搜索并构建一个匹配文档的优先队列(优先队列是一个存有 topN 匹配文档的有序列表,即 doc id。优先队列大小为分页参数 from + size),注意该队列中并没有取具体的数据。FetchPhase 会根据获取到的 doc id 向对应的节点依次发送 GET 请求,获取结果,然后合并,聚合,排序最终返回结果。
...Elasticsearch 之 Put,不过与其说是 Elasticsearch 的操作流程,倒不如说是单个 Lucene 索引操作流程。
...机制 说明 校验和 保证数据未被篡改 序列号 保证数据的按序到达;去重重复数据 连接管理 三次握手,四次挥手 确认应答 ACK 保证报文成功交付 超时重传 发送数据包在一定的时间周期内没有收到相应的 ACK,便认为这个数据包丢失,就会重新发送 流量控制 控制发送方发送窗口的大小来实现流量控制 拥塞控制 控制传输中的流量