范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

DatenlordRust语言无锁数据结构的内存管理

  无锁数据结构内存管理
  正如大家所熟知的,无锁数据结构在并发访问中往往具有更好的访问效率和并发度。无锁数据结构的性能优势主要来自于以下两点: 数据结构的锁设计往往比较粗粒度,在很多可以并发访问的情况下,访问者被锁阻塞,无法实现并发访问。 无锁数据结构访问不需要进行上下文切换,有锁数据结构在并发度高的时候往往会触发操作系统上下文切换。
  但是无锁数据结构也带来了新的问题,即内存管理问题。举个例子:当线程 A 读取一块数据的时候,线程 B 要释放该数据块。在有锁数据结构中,这两个操作被串行了起来;无锁数据结构由于缺乏锁的保护,这两个操作可能同时进行。为了保证线程 A 访问数据的正确性,线程 B 的释放操作必须要延后执行,直到 A 完成了读取操作。为了达到上述延后释放内存的目的,大家一般采用下列的几种方法: 语言本身的 GC 支持,如带有虚拟机 runtime 的语言,如 Java。 引用计数(Reference Count)。 基于代际的内存释放机制(Epoch-Based Reclamation),本文之后简称EBR。
  语言本身的 GC 机制一方面有语言的限制,另外一方面全局的 GC 往往会造成一定的性能损失,程序执行Latency不稳定。引用计数本身的性能开销不可忽视,特别是在读取操作较多的场景下,仅仅为了保护数据安全,每次读取都需要进行计数增加,读完了再进行计数减少,高并发的情况下效率不乐观。EBR则规避了上述问题,一方面不需要语言层面的规约,另外一方面执行效率也相对更好。这里为大家简单介绍一下 EBR, 更加详细的解释请参见论文《 Practical lock-freedom 》。 Epoch-Based Reclamation
  在 EBR 的概念中有代际(Epoch)的概念,Epoch 为数字,其代表了当前处于第几世代,该数字单调递增。全局具有一个Global Epoch, 代表全局当前是第几世代。每个线程的每次数据结构的访问都包含一个Epoch,即Local Epoch,表示当前线程处在第几代。有了这些概念我们来看一下下面的例子,就能够理解 EBR 的工作原理了。
  如下图中的例子,线程 A 和 B 并发地访问无锁数据中的内存块,自上而下为时间的流逝方向。在时间点 1 之前 Global Epoch 为 0。
  时间节点1:线程 A 发现没有其他线程正在发给访问该数据结构,将Global Epoch 加 1,变成 1。同时线程 A Local Epoch 设置为 1. 时间节点2:线程 B 删除数据块 M,因为 B 发现只有线程 A 在访问数据结构,且 A 的Epoch 和 Global Epoch相等,都是1。线程 B 将 Global Epoch 再加 1,变成 2。B 线程 Local Epoch 和 Global Epoch 同步,也为 2. 由于 Epoch 的删除操作是延后的,需要放到一个收集器里,于是数据块 M 被放到收集器中,标记为 Epoch 1,意味着这个数据只有可能在Epoch 1中被使用,从 Epoch 2 开始数据结构中在没有数据块M(被线程 B 删除)。 时间节点3:线程 B 访问数据块 N,发现 Global Epoch 为2,线程 A 的 Epoch 为 1,则 B 标记自己的 Local Epoch 为2,与 Global Epoch 一致。 时间节点4 和 5:线程 A 和 B 都表示自己已经结束了数据访问,不再被数据结构追溯。 时间节点6:线程 A 也开始访问数据块 N,当前 Global Epoch 为 2,且没有其他线程访问该数据块,则线程 A 增加 Global Epoch 到 3,标记自己Local Epoch 为 3。同时线程 A 发现收集器中有一个 Epoch 为 1 的数据块 M,比当前Global Epoch相差了两个世代,可以被删除,数据块 M 被释放。 时间节点7:线程 A 表示自己结束了数据访问,不再被数据结构追溯。
  通过上面的例子我们不难发现,被访问的数据只可能存在于两个 Epoch 中,一个为当前 Epoch,即 Global Epoch,另一个为前一个 Epoch,即 (Global Epoch - 1)。所有被标记了更早 Epoch 的数据都可以被删除,即收集器中被标记为小于 (Global Epoch - 1)的数据块。
  分析一下 EBR 的算法,我们能够发现其性能优越性的根本原因在于数据回收的粗粒度管理。在 Reference Count 的方法中,并发度越高,对 Counter 的修改就越密集,竞争越大,性能越差。在 EBR 中,并发度高会造成几乎所有线程都处于一个 Epoch,并不需要对 Global Epoch 进行修改,也就避免了这方面的竞争,性能也就更好。当然 EBR 也存在其自身的问题,当某些原因导致一个访问操作无法结束时,则 Global Epoch 永远无法向前推进,也就永远无法触发垃圾回收,内存泄露就不可避免了。
  综上所述,即使存在一些缺陷,EBR 极好的性能优势使其成为了高性能无锁数据结构实现的首选。 Rust 语言实现 EBR
  通过上述对 EBR 的分析,我们不难看出, EBR 需要知道数据访问起始点,配合起始点控制 Epoch 的迭代。其他语言有自己的封装和实现方法,而 Rust 的生命周期的概念则从语言层面提供了帮助。基于这个优势,Rust 语言天生适合实现EBR,并且已经有了一个成熟的实现版本,即 crossbeam epoch。这里不会对该实现做源码级的分析,而是会尝试将框架 API 和 EBR 的相关概念进行对应,帮助大家理解。
  这里是示范代码,是无锁数据结构使用 epoch 最简单的方法: {     let guard = epoch::pin();     guard.defer(move || mem.release()); }
  第一行表示当前线程开始访问访问该数据结构,可能是读取可能是写入。第二行表示,延迟释放一块内存,具体何时释放,由 EBR 算法来决定。当整个代码块执行完成,表示退出数据结构访问,guard 的 drop 方法会将当前线程从监测的队列中注销。
  再例如,Datenlord 中实现和使用的无锁Hashmap, cuckoohash,其接口为:
  {     let guard = pin();     let value = map.get(&key, &guard);     /// ... Use the value }
  第一行和前面的例子类似,第二行的语义为从 map 中寻找 key 对应的 value,获取 value 的引用,其生命周期不超过 guard 的生命周期。通过生命周期的方法,我们限定了 value 引用的使用范围为 guard 的存活范围。 总结
  本文简单介绍了 Epoch-Based Reclamation 内存管理方法,并且从接口层面介绍了 Rust 的实现和使用。同时本文也分析了 EBR 在性能上的优越性,以及 Rust 语言从语言实现的优势。之后我们还会从 crossbeam epoch 的实现细节给大家带来深入的 Rust EBR 实现的分析。

世界杯总决赛最便宜516欧元?外媒称票价难以置信卡塔尔世界杯激战正酣,意大利晚邮报12月14日发表题为世界杯决赛票价要花多少钱?难以置信的价格一文,列出了世界杯各个阶段赛事的票价。卡塔尔世界杯小组赛观众席14日晚,卫冕冠军法国队巴西球员吃金箔牛排招骂,为啥上千万人饿肚子的国家,足球这么强据中华网报道,世界杯小组赛巴西队10战胜瑞士提前出线后,巴西名将老罗纳尔多自掏腰包,请后辈们吃了顿大餐。结果,就吃出问题来了。罗纳尔多带巴西球员吃金箔牛排原来啊,罗纳尔多请队员们吃追梦导致被驱逐的球迷我说我们原谅他打普尔之事,他说我人身威胁他在此前勇士客场大败于雄鹿的比赛中,勇士前锋德雷蒙德格林向比赛裁判投诉一位球迷,之后裁判将该球迷驱逐出场。赛后格林表示,当时球迷对自己说了人身威胁的话。该球迷迈克肖恩(MikeSha日本足协给球员母校发钱,中国球迷唏嘘不已引援调节费花哪了世界杯即将迎来最后的大决战,冠军将在阿根廷和法国之间诞生,谁能夺冠引人关注。本届世界杯亚洲球队表现抢眼,三支球队打进了16强,遗憾的是没有一支球队挺进8强,尤其是备受瞩目的日本队,送瘟神,加时赛开始了有序放开,既不是防疫结束了,也不是抗疫刚刚开始。与疫情搏斗三年,我们已经在上半场的突击抗疫下半场的常态化防控中全力以赴,取得优异成绩,现在算是进入了加时赛。加时赛往往是紧张刺激,甚科尔你不光得能接受追梦带来的激情ampampamp竞争力也得接受他被驱逐直播吧12月16日讯在昨天勇士对阵步行者的比赛中,追梦格林因两次技术犯规被罚出场。今天,勇士主帅科尔在参加DamonAndRatto的播客节目时谈到了此事。他说道这令人沮丧,但我能周鸿祎,追风者也周鸿祎再斩获一个IPO。作者毕胥萍出品新摘商业评论12月12日,花房集团登陆港交所,截至12月16日收盘,股价达3。22港元。至此,360集团创始人周鸿祎收获了四家上市公司,覆盖了透射电镜论文解读第六期摘要通过激光粉末床熔合技术制造了新型Ti5Cu合金(重量百分比)和含有1重量百分比B4C的Ti5Cu原位复合材料,并系统地研究了它们的微观结构力学和摩擦学性能。Ti5Cu的微观结构新能源车评测,懂车帝算是玩明白了2022懂车帝新能源冬测,3,2,1。韩寒打下了开机板,正片开始。这一次他的身份不是导演,而是懂车帝2022年新能源汽车冬季测试的一名测试员。继2021年冬测和2022年夏测后,这懂车帝2022新能源车冬测结果公布大河报豫视频记者祁驿12月12日,懂车帝公布2022年新能源汽车冬季测试结果。15条件下,新能源车平均续航达成率48。5,平均续航里程268公里,相比2021年分别提升4和14。在都是上下折叠有何不同?三星华为OPPO对比,网友看完直呼绿厂内行近日OPPO发布了旗下折叠屏手机第二代OPPOFindN2系列。除了大而轻的OPPOFindN2,纵向折叠的小折叠屏手机OPPOFindN2Flip引发很多人的关注。而且同样是小折
永劫无间队内语音放出,总决赛MVP献唱主题曲,WBG手握主角剧本如今电子竞技已经成为了年轻群体中最受欢迎的娱乐活动之一,热度甚至足以比肩一些传统体育项目。而去年推出的永劫无间作为一款天然就具备竞技属性,因此随着游戏官方开始建设永劫无间赛事生态,天生会飞,大疆DJI新品官宣8月25日发布IT之家8月18日消息,大疆DJI新品官宣将于8月25日2100发布,口号为天生会飞。从官方放出的视频可以看到,这似乎是一款带螺旋桨的可飞行产品,但与其他无人机的外观不同,上方有四联想小新PadPro平板电脑评测高性能领衔一板多用全能选手近年来,平板电脑由于其相比笔记本电脑更强的便携性,以及相比手机更大更适合办公娱乐的屏幕,逐渐成为了受广大消费者喜爱的数码新宠。伴随着网课网上办公的不断进化,各类人群对平板电脑的需求央行出手了,普通老百姓应该把钱存在银行吗?最近央行降息了,毫无征兆,就来了,最新一期的4000亿中期借贷便利操作(MLF)和20亿元公开市场逆回购操作,中标利率下降10个基点,分别为2。75,2。对我们有什么影响?特别是普多家上市公司披露半年报图视觉中国主动退出非核心业务腾讯今年二季度营收1340。34亿元广州日报讯(全媒体记者文静)8月17日,腾讯控股公布2022年第二季度业绩。据披露,今年二季度实现营业收入1340。齐鲁银行副行长葛萍从基层柜员做起如今51岁年薪163万元真不少运营商财经网实习生杨雪利文近来,齐鲁银行副行长葛萍接连两次增持股份。6月27日,他增持了2万股份,金额为9。76万元。8天后,葛萍再次增持1万股份。如今葛萍合计持有公司8。63万股辽篮17点正式官宣!8人注册,无郭艾伦,对新人不薄不让老将吃亏每一年的八月份都是CBA本土球员的注册月份,眼看注册日期已经过半,冠军球队辽篮也于8月19日17点向CBA公司递交了他们的首批注册大名单,一共有8人上完成了注册。不可惜,已经向辽篮詹姆斯续约了詹姆斯续约了,2年9710万,合同第二年有球员选项,2024年夏天可以跳出。2024年布朗尼参加选秀,也就是说,如果詹姆斯想,父子同台基本可以保证实现。既然詹姆斯已经续约了,不管怎自动驾驶出租车现在可以在中国完全自动驾驶德国ntv。de机器人出租车中国科技巨头百度是中华人民共和国第一家获准在公共道路上运营全自动机器人出租车的公司。据谷歌的竞争对手百度称,这些许可证在重庆和武汉这两个中国大都市立即生美签署最新法案围堵中国新能源,却是搬起石头砸自己脚?在之前文章,咱们说到我国新能源汽车产销连续7年位居全球第一,开启了出口销售。今天,咱们就说说美国为排挤中国新能源都出台的骚操作政策,来打压中国新能源产业。当地时间8月16日,美国总理发师拒绝为哺乳期女子染发,哺乳期这些事情要注意近日,福建一女子来理发店染发,与理发店老板谈好价格和颜色后,老板已勾兑好药水,在两人一问一答的闲聊中,女子突然说出自己还在哺乳期,老板惊讶之余,毅然决然地拒绝了女子的染发要求。众所ampampquot活没少干,奖金却少了!ampampquot平安银行降薪风波刷屏,奖金调降40?真相如何?零售条线递延奖金调降40的消息,掀起了舆论对平安银行的新一轮关注。其实从去年开始,平安银行的人均薪酬就已经同比减少了3。1。不止零售,对公也悬了。一位平安银行对公条线人士告诉券商中10!最激烈的1场比赛点球击中横梁,6000球迷现场爆满今天晚上中超第13轮终于迎来了本赛季最让球迷期待的一场比赛,河南嵩山龙门对战武汉三镇,这是目前积分榜第1名与第3名的角逐。并且本场比赛终于等来了球迷入场,全场比赛6000名球迷在现小朱婷被力捧!征战亚洲杯入选世锦赛22人大名单,蔡斌会选吗随着朱婷和张常宁先后确定,不会参加9月份的女排世锦赛,中国女排的主攻问题,再次受到热议。在公布的22人大名单中,有7名主攻入选,分别是李盈莹金烨王云蕗王艺竹王逸凡仲慧吴梦洁。其中李3300万,望长留勇士!顶替克莱为库里分压,你的稳定性碾压众人距离NBA总决赛结束已经过去了两个月的时间,说实话,现在回顾勇士的夺冠之旅,似乎仍有点难以置信,他们从赛季开始前就一直遭受质疑,并且在进入季后赛之前,勇士经历的动荡和伤病看起来也让59岁乒坛老奶奶宝刀未老,携搭档进女双八强,世乒赛男双冠军过关北京时间8月17日消息,2022年乒乓球欧锦赛在德国慕尼黑继续进行,女双18决赛,59岁的乒坛常青树倪夏莲与搭档努特发挥出色,以3比1击败一对塞尔维亚组合,闯进八强男双方面,去年世又一个1换9大交易黄蜂梭哈豪赌米切尔!爵士拿回5球员4首轮美国知名体育媒体露天看台的专栏作家FredKatz,近期撰文更新了米切尔交易的最新情况。目前爵士并不着急交易这位3届全明星,并且他们和尼克斯的谈判又重启了,虽然不一定能够达成交易,广东男篮走了六名球员,半支球队没了,这波动荡恐怕元气大伤广东男篮走了六名球员,半支球队没了,这波动荡恐怕元气大伤广东男篮这个休赛期,不知怎么来形容,出现了前所未有的动荡,不少球员离开了球队,诸如曾繁日去了福建男篮,威姆斯即将一年合同加盟宜准R6运动评测我有两个运动手环,还是买了一块专业运动手表创作声明本文主要对宜准R6运动手表进行深度评测,希望帮大家了解这款手表。为大家选购专业运动手表提供一个参考。评测不易,欢迎关注点赞评论。运动手环or专业运动手表作为一个资深运动爱好回顾姚明最后的巅峰,打爆魔兽,下克上进次轮,将科比逼到抢七0809赛季是姚明在NBA打得最后一个完整的赛季,那个赛季也是姚明在季后赛中走得最远的一次,今天我们就来回顾一下那个赛季姚明的精彩表现。姚明入选二阵全明星首发,常规赛面对面打爆第一巅峰科比能换什么筹码?07年科比逼宫交易,看各队的报价就知道了06赛季07赛季,科比接连打出生涯最巅峰表现,但是球队战绩始终在季后赛边缘游荡,无论做什么事情都求胜的科比再也不能忍受管理层的碌碌无为,一怒之下穿上公牛球衣,逼宫球队交易自己。当年美媒伦纳德因为摧毁了两个王朝球队而永远被铭记以下是推文的热议评论ThegreatestdynastyinthehistoryofNorthAmericanprofessionalteamsportsisthe1960sBos