美文网首页
65、内核原理探秘_优化写入流程实现NRT近实时(filesys

65、内核原理探秘_优化写入流程实现NRT近实时(filesys

作者: 拉提娜的爸爸 | 来源:发表于2020-01-10 16:12 被阅读0次

    现有流程的问题,每次都必须等待fsync将segment刷入磁盘,才能将segment打开供search使用,这样的话,从一个document写入,到它可以被搜索,可能会超过1分钟!!!这就不是近实时的搜索了!!!主要瓶颈在于fsync实际发生磁盘IO写数据进磁盘,是很耗时的。

    写入流程别改进如下:

    (1)数据写入buffer
    (2)每隔一定时间,buffer中的数据被写入segment文件,但是先写入os cache
    (3)只要segment写入os cache,那就直接打开供search使用,不立即执行commit。

    数据写入os cache,并被打开供搜索的过程,叫做refresh,默认是每隔1秒refresh一次。也就是说,每隔一秒就会将buffer中的数据写入一个新的index segment file,先写入os cache中。所以,es是近实时的,数据写入到可以被搜索,默认是1秒。

    POST /my_index/_refresh可以手动refresh,一般不需要手动执行,没必要,让es自己搞就可以了。

    比如说我们现在的时效性要求,比较低,只要求一条数据写入es,一分钟以后才让我们搜索到就可以了,那么就可以调整refresh interval
    PUT /my_index
    {
      "settings": {
        "refresh_interval": "30s" 
      }
    }
    

    相关文章

      网友评论

          本文标题:65、内核原理探秘_优化写入流程实现NRT近实时(filesys

          本文链接:https://www.haomeiwen.com/subject/qpfmactx.html