2017年5月18日

摘要: 问题 在分页处理时,我们要确定两个参数,start & size,如果一个分页查询start值很大,那么这就是一个深度分页查询。 深度分页是很有问题的,用sql举例:select * from user order by id limit 10000,10 ,表面上看起来只取10条数据,而实际上它是 阅读全文
posted @ 2017-05-18 17:51 饭别稀 阅读(12189) 评论(0) 推荐(0) 编辑

2017年4月19日

摘要: 痛点 Es支持记录慢查询日志,本质上就是也就是统计查询时间,然后打日志,在使用一段时间后,我们发现: 1.查询时间不够准且不全 – 因为只是统计的服务端处理时间,且不包含聚合排序的时间,这叫不准,因为没有客户端的解析时间,网络时间,这叫不全。有同学去查一个有300字段的索引,结果他懵逼了。。。 2. 阅读全文
posted @ 2017-04-19 09:34 饭别稀 阅读(1603) 评论(0) 推荐(0) 编辑
摘要: what 本质上就是把generation和它所属的ops位置的关联信息写到写到.ckp文件中。 上图表示新建doc过程的文件变化 – 首先把doc1写入lucene的索引文件,其实只写到了操作系统的page cache。 然后再把index(doc1)写入tlog文件(已落盘) 最后一步就是syn 阅读全文
posted @ 2017-04-19 09:33 饭别稀 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 是什么? translog是elasticsearch的事务日志文件,它记录了所有对索引分片的事务操作(add/update/delete),每个分片对应一个translog文件。 干嘛用的? translog是用来恢复数据的。Es用“后写”的套路来加快写入速度 — 写入的索引并没有实时落盘到索引文 阅读全文
posted @ 2017-04-19 09:22 饭别稀 阅读(4717) 评论(1) 推荐(0) 编辑
摘要: why 服务重启,或者与集群断网重连时,需要和集群当前的主分片的数据保持一致。 how 上图中,RecoverTarget 代表加入集群前想要同步数据的分片,RecoverSource代表当前集群中的正常分片。 同步过程本质上来说,就是通过拷贝索引文件&重放事务日志来完成的,具体的步骤如上图,我用一 阅读全文
posted @ 2017-04-19 09:13 饭别稀 阅读(1853) 评论(0) 推荐(0) 编辑

导航