Elasticsearch 中的“近实时”(Near Real-time)全面解析

这篇具有很好参考价值的文章主要介绍了Elasticsearch 中的“近实时”(Near Real-time)全面解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch(ES)作为一款流行的分布式搜索引擎,以其近实时(Near Real-Time, NRT)特性著称。这种特性使得ES能够在数据写入后极短的时间内(通常在毫秒至秒级别)使其可被搜索到,虽然不是绝对意义上的实时,但对于大多数应用而言已经足够接近实时,从而满足了对快速响应和数据更新即时可见性的需求。

1. 数据写入与刷新(Refresh)

在ES中,数据写入并不是直接添加到现有的倒排索引中。相反,新数据首先被写入内存缓冲区(In-Memory Buffer),然后定期或按需将缓冲区中的数据合并成一个新的索引段(Index Segment),这个过程称为刷新(Refresh)。默认情况下,ES每秒自动执行一次刷新操作,这意味着大部分情况下,数据写入后最多等待1秒即可被搜索到。用户也可以通过API手动触发刷新,即时使新数据可搜索。

2. 索引段(Segment)与倒排索引

ES底层基于Apache Lucene构建,Lucene使用分段(Segment)的方式来存储数据。每个索引段包含一个独立的、已优化的倒排索引和其他元数据。新写入的数据先被加入内存中的索引段,当刷新发生时,这个内存中的索引段被写入磁盘并打开供搜索使用。由于索引段是独立且不可变的,新数据的添加或现有数据的更新不会影响已存在的索引段,从而避免了对正在被搜索的数据进行锁定或阻塞,保证了搜索的并发性和性能。

3. Translog(事务日志)与可靠性

为了保证数据的可靠性,在数据写入内存缓冲区后,ES还会将其写入事务日志(Transaction Log, Translog)。Translog充当一种持久化记录,即使在系统崩溃或电源故障的情况下,也能确保在重启后通过重放Translog中的操作恢复未刷新到磁盘的最新数据。当一个索引段被刷新并写入磁盘后,对应的Translog条目就可以被清除,释放空间。

4. 提交点(Commit Point)与数据可见性

Lucene使用**提交点(Commit Point)**来跟踪哪些索引段是已知的、安全的,可以用于搜索。每当有新的索引段刷新完成并被认为安全时,就会创建一个新的提交点。搜索请求总是参考最新的提交点,确保只访问已提交的、稳定的索引段,从而提供一致的搜索结果。

5. Flush与数据持久化

除了刷新外,ES还有一个刷新(Flush)过程,它将内存中的所有未刷写到磁盘的索引段强制写入磁盘,并清空Translog。Flush不是为了搜索可见性,而是为了防止Translog过大导致恢复时间过长,以及确保数据在节点故障时不会丢失。默认情况下,ES会根据内存使用情况和Translog大小自动触发Flush。

6. 近实时搜索的权衡

ES的近实时性是通过对数据处理流程进行精心设计和优化实现的,但也存在一些权衡:

  • 延迟与资源消耗:更频繁的刷新会缩短数据变为可搜索的延迟,但也会增加CPU和I/O资源的消耗,可能影响整体性能。用户可以根据实际应用场景调整刷新频率。
  • 数据一致性:在刷新间隔内,新写入的数据可能还未对搜索可见。对于需要严格一致性的场景,可以通过设置适当的刷新策略或使用显式刷新API来最小化这一窗口。
  • 段数量控制:频繁的刷新会导致索引段数量增多,可能影响搜索性能。ES通过段合并(Merge)机制来解决这个问题,将小的、旧的索引段合并成大的、新的索引段,减少段数量并释放空间。

7. 近实时与实时的区别

尽管ES提供了极高的搜索更新速度,但它并不保证数据写入后立即可搜索,这是与“实时搜索”系统的区别所在。实时搜索系统通常要求数据写入后立即对搜索可见,没有明显的延迟。然而,对于大多数应用而言,ES的近实时特性已经足够满足其对时效性的要求,而且提供了更高的可伸缩性和处理大量数据的能力。文章来源地址https://www.toymoban.com/news/detail-857032.html

到了这里,关于Elasticsearch 中的“近实时”(Near Real-time)全面解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3D视觉——1.人体姿态估计(Pose Estimation)入门——使用MediaPipe含单帧(Signel Frame)与实时视频(Real-Time Video)

    使用MediaPipe工具包进行开发 MediaPipe是一款由Google Research 开发并开源的多媒体机器学习模型应用框架,用于处理视频、音频等时间序列数据。这个跨平台架构使用于桌面/服务器、Android、iOS和嵌入式设备等。 我们使用MeidaPipe下的Solutions(方案特定的模型),共有16个Solutions: 人

    2024年01月18日
    浏览(46)
  • Why choose Flink for real-time processing

    Why choose Flink [1] Streaming data more truly reflects our lifestyle (real-time chat); [2] Traditional data architecture is based on limited data sets (Spark is based on micro-batch data processing); [3] Our goal: low latency, high throughput (distributed architecture, there may be confusion in the order, for example, within 1 hour of statistics, some data

    2024年03月20日
    浏览(45)
  • 【论文阅读】【yolo系列】YOLACT Real-time Instance Segmentation

    论文链接:https://arxiv.org/pdf/1904.02689.pdf 【 实例分割 】 鉴于其重要性,大量的研究投入到实例分割的准确性。 两阶段 :Mask-RCNN [18]是一种具有代表性的两阶段实例分割方法,它首先生成候选感兴趣区域(roi),然后在第二阶段对这些roi进行分类和分割。后续工作试图通过提

    2024年02月16日
    浏览(39)
  • DETRs Beat YOLOs on Real-time Object Detection

    DETRs在实时目标检测中击败YOLO 问题:DETR的高计算成本,实时检测效果有待提高 解决:提出了一个实时的目标检测器 具体来说,设计了一个高效的混合编码器,通过解耦尺度内的交互和跨尺度融合来有效处理多尺度特征,并提出IoU感知查询选择,通过提供更高质量的初始对象

    2024年02月09日
    浏览(40)
  • Publishing real-time financial data feeds using Kafka

    Good morning and welcome to this session on publishing real time financial data feeds using CCA. If you\\\'re a data feed provider, you may already have customers who are asking you to deliver your feed directly on AWS. And by the time we end this session, you should have a pretty good understanding of how to do that. My name is Rana. I am a Principal Solutions

    2024年02月03日
    浏览(48)
  • Training-Time-Friendly Network for Real-Time Object Detection 论文学习

    目前的目标检测器很少能做到快速训练、快速推理,并同时保持准确率。直觉上,推理越快的检测器应该训练也很快,但大多数的实时检测器反而需要更长的训练时间。准确率高的检测器大致可分为两类:推理时间久的的训练时间久的。 推理时间久的检测器一般依赖于复杂的

    2024年02月15日
    浏览(41)
  • 【读论文】3D Gaussian Splatting for Real-Time Radiance Field Rendering

    What kind of thing is this article going to do (from the abstract and conclusion, try to summarize it in one sentence) To simultaneously satisfy the requirements of efficiency and quality, this article begins by establishing a foundation with sparse points using 3D Gaussian distributions to preserve desirable space. It then progresses to optimizing anisotrop

    2024年04月09日
    浏览(44)
  • 3D Gaussian Splatting for Real-Time Radiance Field Rendering 阅读笔记

    感谢B站意の茗的讲解。 论文地址:https://arxiv.org/abs/2308.04079 项目主页:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/ 从已有点云模型出发(sfm),以每个点为中心建立可学习的3D高斯表达,Splatting方法进行渲染,实现高分辨率实时渲染。(推动NERF加速方向) 能用训练好的点云

    2024年01月16日
    浏览(48)
  • 【论文笔记】3D Gaussian Splatting for Real-Time Radiance Field Rendering

    原文链接:https://arxiv.org/abs/2308.04079 网孔和点是最常见的3D场景表达,因其是显式的且适合基于GPU/CUDA的快速栅格化。神经辐射场(NeRF)则建立连续的场景表达便于优化,但渲染时的随机采样耗时且引入噪声。本文的方法结合了上述两种方法的优点:使用3D高斯表达和基于ti

    2024年02月04日
    浏览(40)
  • 论文笔记《3D Gaussian Splatting for Real-Time Radiance Field Rendering》

    项目地址 原论文 最近辐射场方法彻底改变了多图/视频场景捕获的新视角合成。然而取得高视觉质量仍需神经网络花费大量时间训练和渲染,同时最近较快的方法都无可避免地以质量为代价。对于无边界的完整场景(而不是孤立的对象)和 1080p 分辨率渲染,目前没有任何方法

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包