1.å¦ä½å¤å¶
2.Linux内核-CPU高速缓存与内存屏障
3.OpenJDK17-JVM 源码阅读 - ZGC - 并发标记 | 京东物流技术团队
4.dtm-tcc 子事务屏障
å¦ä½å¤å¶
æçç½ç«ç¨äºå±éå¤å¶ãå³é®ãæ¥çæºç ç代ç
å¦ææ¯è¿æ ·
å°±æç½é¡µå°åå¤å¶å°ä¸è½½å·¥å ·ä¸ä¸è½½ï¼ä¾å¦Flashget
ä¸è½½äºç½é¡µåï¼ç¨è®°äºæ¬æå¼ç½é¡µ
å°±å¯ä»¥çå°ä»£ç ï¼ç½é¡µçå ¨é¨å 容é½å¨éé¢äºãåå!
Linux内核-CPU高速缓存与内存屏障
Linux内核深入解析:CPU高速缓存与内存屏障
高速缓存在CPU中的屏障屏障核心角色
高速缓存,作为一种关键的源码性能提升技术,通过存储最近和最常访问的代码数据,减少了CPU与内存之间的屏障屏障频繁交互。它分为L1、源码L2和L3三级,代码一个纸源码站每个级别根据设计目标和速度有着不同的屏障屏障容量和性能优化。
CPU架构视角下的源码缓存系统
理解CPU系统架构有助于我们更好地认识高速缓存。在多核处理器中,代码每个核心都有自己的屏障屏障缓存,通过缓存一致性协议如MESI(Modified,源码 Exclusive, Shared, Invalidated)来协调缓存之间的数据同步,确保一致性。代码cms源码.net
内存屏障:解决缓存优化中的屏障屏障问题
为解决CPU优化时可能出现的指令重排序问题,内存屏障被引入。源码它是代码一种特殊的指令,强制指定的缓存行在执行特定指令前必须写回内存,以保证程序的预期执行顺序和数据一致性。
学习资源推荐
想要深入了解这些概念,可以加入Linux内核技术交流群,获取精心整理的学习资料包,包括视频教程、电子书、实战项目和代码,搜索项目源码全面学习Linux内核源码技术。
直达学习资源:内核源码技术、视频教程、开发工具全方位指南
立刻加入,开启Linux/C/C++/内核源码等多领域探索,提升你的技术实力。
本文作者:keithl
原文链接:CPU高速缓存与内存屏障-腾讯云开发者社区(版权信息:请在阅读原文获取,侵权请留言删除)
OpenJDK-JVM 源码阅读 - ZGC - 并发标记 | 京东物流技术团队
ZGC简介:
ZGC是Java垃圾回收器的前沿技术,支持低延迟、大容量堆、染色指针、phpcms装修源码读屏障等特性,自JDK起作为试验特性,JDK起支持Windows,JDK正式投入生产使用。在JDK中已实现分代收集,预计不久将发布,性能将更优秀。
ZGC特征:
1. 低延迟
2. 大容量堆
3. 染色指针
4. 读屏障
并发标记过程:
ZGC并发标记主要分为三个阶段:初始标记、并发标记/重映射、重分配。本篇主要分析并发标记/重映射部分源代码。网易登录源码
入口与并发标记:
整个ZGC源码入口是ZDriver::gc函数,其中concurrent()是一个宏定义。并发标记函数是concurrent_mark。
并发标记流程:
从ZHeap::heap()进入mark函数,使用任务框架执行任务逻辑在ZMarkTask里,具体执行函数是work。工作逻辑循环从标记条带中取出数据,直到取完或时间到。此循环即为ZGC三色标记主循环。之后进入drain函数,从栈中取出指针进行标记,直到栈排空。标记过程包括从栈取数据,标记和递归标记。
标记与迭代:
标记过程涉及对象迭代遍历。标记流程中,ZGC通过map存储对象地址的finalizable和inc_live信息。map大小约为堆中对象对齐大小的二分之一。接着通过oop_iterate函数对对象中的指针进行迭代,使用ZMarkBarrierOopClosure作为读屏障,实现了指针自愈和防止漏标。
读屏障细节:
ZMarkBarrierOopClosure函数在标记非静态成员变量的指针时触发读屏障。慢路径处理和指针自愈是核心逻辑,慢路径标记指针,快速路径通过cas操作修复坏指针,并重新标记。
重映射过程:
读屏障触发标记后,对象被推入栈中,下次标记循环时取出。ZGC并发标记流程至此结束。
问题回顾:
本文解答了ZGC如何标记指针、三色标记过程、如何防止漏标、指针自愈和并发重映射过程的问题。
扩展思考:
ZGC在指针上标记,当回收某个region时,如何得知对象是否存活?答案需要结合标记阶段和重分配阶段的代码。
结束语:
本文深入分析了ZGC并发标记的源码细节,对您有启发或帮助的话,请多多点赞支持。作者:京东物流 刘家存,来源:京东云开发者社区 自猿其说 Tech。转载请注明来源。
dtm-tcc 子事务屏障
dtm-labs/client
子事务屏障原理
在本地数据库中构建分支操作状态表,以全局事务id-分支事务id-分支操作(try|confirm|cancel)为唯一键。
流程解析
此流程解决空回滚、幂等和悬挂异常的关键在于状态表的精确记录与管理。通过全局唯一键确保每次操作可追溯,同时明确操作状态,避免重复或遗漏。
dtm Tcc模式下屏障源码
主程序通过调用资源管理器执行分支事务。
核心逻辑在bb.CallWithDB,注释详细说明代码功能。
总结
Tcc模式下的子事务屏障原理简洁且易于理解,巧妙地解决了分布式事务中的常见问题,包括悬挂、幂等性和空回滚。此方法值得学习与借鉴。