linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程
2013-10-14 18:35
176 查看
这个函数代码比较长先贴第一部分,分析条带。分析的作用就是根据条带的状态做一些预处理,根据这些状态再来判断下一步应该做什么具体操作。比如说同步,那么首先会读数据盘,等读回来之后,再校验,然后再写校验值。但是这些步骤又不是一次性在handle_stripe里就完成的,因为跟磁盘IO都是异步的,所以必要要等上一次磁盘请求回调之后再次调用handle_stripe,通常每个数据流都会多次进入handle_stripe,而每一次进入经过的代码流程是不大一样的。
struct stripe_head有很多状态,这些状态决定条带应该怎么处理,所以必须非常小心处理这些标志,这些标志很多,现在先简单地过一下。
上一节讲到在raid5的同步函数sync_request中炸土豆片是通过handle_stripe来进行的。从最初的创建阵列,到申请各种资源,建立每个阵列的personality,所有的一切都是为了迎接数据流而作的准备。就像我们寒窗苦读就是为了上大学一样。数据流的过程就像大学校园一样丰富多彩并且富有挑战性,但只要跨过了这道坎,内核代码将不再神秘,剩下的问题只是时间而已。
首先看handle_stripe究竟把我们的土豆片带往何处:
struct stripe_head有很多状态,这些状态决定条带应该怎么处理,所以必须非常小心处理这些标志,这些标志很多,现在先简单地过一下。
上一节讲到在raid5的同步函数sync_request中炸土豆片是通过handle_stripe来进行的。从最初的创建阵列,到申请各种资源,建立每个阵列的personality,所有的一切都是为了迎接数据流而作的准备。就像我们寒窗苦读就是为了上大学一样。数据流的过程就像大学校园一样丰富多彩并且富有挑战性,但只要跨过了这道坎,内核代码将不再神秘,剩下的问题只是时间而已。
首先看handle_stripe究竟把我们的土豆片带往何处:
相关文章推荐
- linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程
- linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程
- 数据重现之11.5.2:RAID5同步与异步的判断
- jwfd工作流引擎设计-流程数据同步控制器的设计思路及其矛盾
- RxJava简单改造实例: BehaviorSubject简化数据和界面的同步流程
- 根据项目同步招标项目投标邀请函数据到发标表中,并设置流程表中状态为发标新增
- faster rcnn 源码学习-------数据读入及RoIDataLayer相关模块解读 + Train的流程
- [原创]JWFD工作流-流程-数据同步控制的简明设计思路
- 多线程、quartz 定时器同步两个数据库,匹配数据表流程和详情
- 调用阿里云api获取阿里云数据同步服务(DTS)并且作图发送邮件的整个流程
- tfs主控与数据节点读写流程—源码解读
- 数据同步流程方案记录
- 【hadoop】 2002-数据同步流程
- JFlow&CCFlow流程引擎的业务数据与流程数据同步的操作步骤.
- raid5 磁盘离线 同步失败的数据恢复过程
- MySQL和MsSQL实时自动数据同步
- sql 2005 创建动态数据报表的整个流程分析.
- 解读Android之数据存储方案
- CAS 服务器端流程解读