11.3 时间戳排序协议

  在封锁协议中,每一对冲突事务的可串行化次序是由执行时第一个两者都申请但互相冲突的锁决定的(与"按调度中事务提交的顺序做串行化"或"按调度中事务封锁点的顺序做串行化"的说法不矛盾,为什么?请大家自己思考),如图11-3-1所示:

  在图11-3-1中,事务Ti和Tj的第一个两者都申请但相互冲突的锁是Tj的lock-S(A)和Ti的lock-X(A),但由于事务Tj先获得锁,因此事务Tj先提交。所以这个调度中事务的可串行化次序是<Tj, Ti>。另一种决定事务可串行化次序的方法是事先选定事务的次序,其中最常用的方法就是时间戳排序机制。

  11.3.1 时间戳

  图11-3-1:调度中事务的可串行化次序与锁的关系

  1、基本概念

  ⑴ 对于系统中的每个事务T,把一个唯一固定的时间戳和事务T联系起来。时间戳就是一个时间标志,该时间标志是在事务T开始执行前由DBMS的并发控制管理器赋予的,记为TS(T)。

  ⑵ 时间戳有大小(先后)之分:若事务Ti先于事务Tj进入系统,那么:TS(Ti) < TS(Tj)。

  2、实现方式

  ⑴ 使用系统时钟值作为时间戳:事务进入系统时的时钟值就是该事务的时间戳;

  ⑵ 使用逻辑计数器:即该事务进入系统时的计数器值。每赋予一个时间戳,计数器就自动增加一次。

  3、两个重要的时间戳

  在时间戳机制中,每个数据项Q需要和以下两个重要的时间戳相关联:

  ⑴ W-TS(Q):表示当前已成功执行write(Q)的所有事务的最大时间戳;

  ⑵ R-TS(Q):表示当前已成功执行read(Q)的所有事务的最大时间戳。

  每当有新的read(Q)或write(Q)指令成功执行,这两个时间戳就被更新。

  事务的时间戳决定了调度中事务串行化的顺序,即,若TS(Ti)<TS(Tj),则DBMS必须保证所产生的调度等价于Ti出现在Tj之前的某个串行调度。

备注:摘自http://www.educity.cn/zk/sjkyl/201306141634451871.htm

转载于:https://blog.51cto.com/jiaojusuimu/1874819

并发控制技术手段之时间戳(二)相关推荐

  1. ThinkPHP5模型操作中的自动时间戳总结

    ThinkPHP5中提供了非常优秀的自动时间戳功能.使用起来非常方便. 但是官网手册中的说明还是不是很详尽,因此整理再次,以方便后续使用时查阅. 一.一般情况下的自动填充create_time,upd ...

  2. php date hi,php中时间戳和日期格式的转换

    原文:php中时间戳和日期格式的转换 一,PHP时间戳函数获取指定日期的unix时间戳 strtotime("2009-1-22″) 示例如下: echo strtotime("2 ...

  3. Postman:常用的Pre-request Script方法【MD5+时间戳+获取当前时间】

    postman:请求前脚本常用的三种方法: 一.获取当前时间的13位时间戳 二.字段MD5加密 三.获取接口请求的时间 一.获取当前时间的13位时间戳 // 1.变量time接收获取的时间戳 var ...

  4. 格式化时间戳,时间加一天

    $ceshi="1417247764";  //时间戳格式 第一种: $ceshi+86400;//在时间戳的基础上加一天(即60*60*24) 第二种: $firstdaystr ...

  5. php 时间戳与日期的转换

    大家也许对PHP时间戳已经有所了解,那么我们如何应用它来获取具体的日期呢?我们今天来为大家介绍一下PHP时间戳获取当前时期的具体方式. 实现功能:获取某个日期的时间戳,或获取某个时间的PHP时间戳. ...

  6. 利用用户行为数据——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  7. js 时间戳与时间格式的转化, xx天xx小时xx分倒计时,距离当前时间多久

    目录 一.时间戳和日期格式相互转化 (1) 获取时间戳 (2) 时间戳转化为日期格式 (3) 日期格式转换为时间戳 二. XX天XX小时XX分倒计时 三.距离当前时间的计算, 显示效果为3秒前,1小时 ...

  8. 【Python】使用qrcode库实现某校校门口进校二维码实时刷新

    [Python]使用qrcode库实现某校校门口进校二维码实时刷新 简介 因防疫要求,某学校校门口需要学生扫码进校,而部分学生不遵守学校制定的出入校规定,故学校要求在系统的二维码设定为实时刷新,且不允 ...

  9. 扫描普通二维码进入小程序

    一.按照官方文档步骤进行配置,官方文档–扫普通链接二维码打开小程序 配置:登录小程序后台,进入"开发-开发管理 - 开发设置 - 扫普通链接二维码打开小程序",开启功能后配置二维码 ...

  10. ExoPlayer 中的音频时间戳计算

    ExoPlayer 中的音频时间戳计算 ExoPlayer 中的音频时间戳计算 一 Audio 时间戳的计算 1.1 handleBuffer 1.2 AudioTrackPositionTracke ...

最新文章

  1. poj3122(二分算法)
  2. linux 定时任务 crontab服务 启动 停止 重启
  3. html 文件上传框 input标签
  4. 字符集(CHARACTER SET)和校对集(COLLATE)
  5. 山西计算机网络技术专升本分数线_2020山西成考专升本招生补录第一批公告!附补录院校专业缺额表!...
  6. wegame一键蹲替换文件_如何在ps里批量替换姓名、编号等内容(变量和图像处理器)...
  7. Hotspot JVM的常用选项
  8. flash游戏代码_Flash正式宣告死亡,4399游戏还能玩么——从没有所谓的千秋万代...
  9. android代码查找图像,Android平台上利用opencv进行图像的边沿检测
  10. redmine-1.2.2安装代码评审插件
  11. 项目日报模板_笔杆子材料:写作技巧之如何写好日报、周报、月报(一)
  12. facade java_Java中的Facade模式
  13. c语言99乘法表流程图表,C语言做99乘法表.doc
  14. NXP Zigbee 3.0标准网关开发复盘(JN5169)
  15. 企业网站建设流程是什么?三个流程要知道
  16. C语言黑与白问题代码及解析(内附视频)
  17. 腾讯云服务器入门使用流程 新手必看教程
  18. 系统运维工程师面试的11大热门问题
  19. 让旧Mac免费获得 iWork 套件的秘籍
  20. Practical Python and OpenCV 3rd Edition读书笔记_Chapter8_Smoothing and Blurring平滑与模糊_思维导图

热门文章

  1. 【Java】 环境变量如何配置?
  2. H3C交换机创建ssh用户登录和设置aux密码
  3. EGLImage使用记录
  4. Linux电源管理-wakelock
  5. Linux 设备驱动--- 并发 与 竞态 --- atomic_t --- atomic_dec_and_test --- 原子操作
  6. qt 写的tcp客户端程序实现简单的连接接受和发送消息
  7. 异常处理1:复习、异常概述和异常体系结构
  8. 二叉树 先序遍历 中序遍历 后续遍历 java实现
  9. asp和php关系,php和asp对象的等价关系_PHP教程
  10. vue项目打包部署到Tomcat上,一刷新就报错404