首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

shuffle 中环形缓冲区

shuffle中环形缓冲区使用于map shuffle阶段存放map的缓存数据,当缓冲区的数据达到一定比率(80%)就会将缓冲区的数据刷写到磁盘文件中,在刷盘之前,会对数据分区、排序、合并,对缓冲区的操作是边写入边读取的过程,二者互不影响,提升写入的速率,读写过程就是一个生产者、消费者模式,生产者向环形缓冲区中写入数据,消费者从环形缓冲区中读取数据并且写入磁盘。环形缓冲区在物理上是一组连续的空间地址,在逻辑上是首尾相连的环形空间,通过使用下标实现环形,初始read=write=index=0,read下一个读取位置,write下一次写入位置,index 刷盘的结束位置,每一次写入write++,当缓存达到一定比率,执行读取线程开启,将index=write,那么将读取read~index-1区间的数据写入磁盘,此时write继续接受数据写入,当数据读取完read=index,继续进行下一次读取操作,需要注意当下标达到临界点即缓冲区数组的大小时需要进行下标索引的转换,例如当read=array.length,需要read=0。

05

「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程

许多年前,一个名叫Shay Banon的开发者,带着新婚妻子去伦敦生活,在得知妻子想从事厨师工作后,准备利用自己所学为妻子开发一个食谱搜索引擎,他开始使用Lucene的一个早期版本。但是尝试之后,他发现直接使用Lucene给没有任何开发经验的妻子而言是非常困难的,因此Shay 开始对Lucene进行封装。不久他发布了他的第一个基于Lucene的用java编写的开源项目 Compass。后来Shay找到了一份跟高性能和分布式有关的工作,然后发现这份工作对实时、分布式搜索引擎的需求尤为突出,于是他决定重写Compass,把它变为一个独立的服务并取名Elasticsearch,再到后来Elasticsearch发布了第一个公开版本,从此以后,Elasticsearch已经成为了 Github 上最活跃的开源项目之一。据说,Shay的妻子还在等着她的食谱搜索引擎,而他已经在大公司忙的“一发不可收拾”…

03

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券