物联网大数据处理技术与实践(第2版)课件 第6章-实时事务调度处理技术_第1页
物联网大数据处理技术与实践(第2版)课件 第6章-实时事务调度处理技术_第2页
物联网大数据处理技术与实践(第2版)课件 第6章-实时事务调度处理技术_第3页
物联网大数据处理技术与实践(第2版)课件 第6章-实时事务调度处理技术_第4页
物联网大数据处理技术与实践(第2版)课件 第6章-实时事务调度处理技术_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网大数据处理技术与实践InternetofThings

BigDataprocessingTechnologyandPractice实时事务调度处理技术常见事务特性分析1事务调度与并发控制2服务器与操作系统3事务的执行框架与模式4系统框架的分析与性能优化5PARTONE1常见事务特性分析师傅领进门,学艺在自身。------中国谚语实时事务调度处理技术事务是面向数据库中数据存取访问的一个逻辑工作单位,是一个操作序列,执行这个操作序列使数据库从一种一致状态转换到另一种一致状态,以实现特定的业务功能。感知数据来源主要是分布的智能设备以及传感器,并且数据具有很强的时间属性。数据的时间属性或者直接来自外界的传感器,或者基于传感器数据推导计算而来,其最主要的特性是时态一致性。传统的关系数据库系统旨在处理永久性数据,其设计与开发主要强调数据的完整性、一致性,要求事务具有ACID特性(Atomicity-原子性、Consistency-一致性、Isolation-隔离性、Durability-持久性),以及提高系统的平均吞吐量等总体性能指标,却很少考虑与数据本身及数据处理相关联的时间属性。常见事务特性分析根据感知数据的处理需求,我们把数据库中的事务划分为三大类:

感知事务

触发事务

用户事务感知事务

感知事务是数据库获取数据的基本方式,又称为数据采集事务,或者传感器事务。这些事务一般都是预定义的定期事务,按照一定的采集周期更新数据以保持数据时间属性的绝对一致性,具有确定的性质,包括事务的相对截止期、执行周期以及最坏情形执行时间。采集事务一般是固实时的事务,如果在一定的时间周期内不能执行完成,可以放弃;待下个执行周期再执行。但是,在特殊情况下,数据采集事务可以由用户事务或者其它事务触发。例如,用户的控制指令往往需要通过即刻执行的数据采集事务确定指令执行的结果;或者一些事务的执行需要保持相关数据的相对时间一致性时,可以通过发起实时采集事务保证。触发事务

触发事务是感知数据库系统实现主动性的关键,可以分为更新触发事务与定期事务。触发事务一般通过ECA(Event-Condition-Action)规则进行定义,属于预定义的事务。更新触发事务:一般是系统中预定义的过程,在传感器事务更新数据对象时触发,用于主动的事务处理或者数据的推导计算等。这类事务一般具有明确的截止期,如果是时态数据更新事件定期触发,则存在事务的执行周期或者两个事务之间的最小间隔时间。更新触发事务与实时采集事务之间的关系可以是松耦合也可以是紧耦合,取决于用户对数据一致性的要求;一般说来,实时数据采集事务更新时态数据对象中的相关属性,如报警判定、单位转换等采用紧耦合方式,而涉及多数据对象的属性推导计算以及分析计算时采用松耦合方式。定期事务:一般是预定义或用户提交的长计算事务,一般没有明确的截止期,属于软实时事务,但是存在事务的执行周期;并且,很多情况下的计算结果精度与事务执行的时间有关。

用户事务用户事务总是由用户或者客户端应用发起,事务的操作类型可以是只读、只写或者读写,包括数据的查询和修改。这类事务一般是非定期、软实时事务,没有明确的截止期,但是要求尽可能短的响应时间。PARTTWO2事务调度与并发控制事务的调度方法事务调度的最重要目标是保证数据的新鲜度即时间属性,并保证尽可能多的事务能够满足截止期。感知数据库中的采集事务主要是采集数据、完成数据更新,大量的采集事务涉及磁盘I/O等不可预测因素。紧耦合的触发事务一般都是短事务,可以作为数据采集事务的子事务触发执行;松耦合的触发事务最好作为独立的事务,按照数据重要性以及时间属性分配优先级。事务调度算法必须综合考虑事务的截止期与关键性,事务截止期与关键性的分布情况也在很大程度上影响系统的性能。事务的调度方法

事务调度算法必须综合考虑事务的截止期与关键性,事务截止期与关键性的分布情况也在很大程度上影响系统的性能。在如何确定事务的优先级方面,有许多不同的算法。

随着计算机处理能力特别是并行能力的增强,事务的调度算法不只是分派单个的CPU资源,而是如何综合利用系统的处理能力提升事务的吞吐量并尽可能满足数据以及事务时间需求。并发控制策略并发控制中使用优先级解决数据冲突有利于改进系统的性能。并发控制用于控制并发执行的事务之间的交互操作以避免数据库的一致性被破坏。传统的并发控制大多采用基于锁的方法,基于锁的并发控制属于悲观的方法,总是假定事务冲突经常发生,而实际上锁只在最坏情形下才是必要的。优先级反转是传统的并发控制协议应用于基于优先级的事务调度表现出的主要问题。乐观并发控制基于相反的假设,事务冲突很少发生,因此允许事务无阻碍地执行直到全部操作完成,然后在提交时进行验证,如果通过了检验就提交,否则夭折。并发控制策略感知数据库系统中采用乐观的并发控制方法能够获得更高的效率;因为数据采集事务是只写事务,可以通过数据版本控制减少冲突;其他事务原则上不应该更改这些传感器数据的值。所有实时采集的数据快照都保存在内存中,为了增加事务的并发度,降低事务之间的冲突,系统中可以采用两版本方法。每个时项都具有两个数据版本,一个一致版本,一个工作版本,其中一致版本保存了该数据项的最近的有效版本。态数据数据采集服务程序处理数据更新事务时总是使用数据项的工作版本,而在事务提交时这个工作版本将转换成一致版本。PARTTHREE3服务器与操作系统服务器体系结构与发展当前的商用服务器从系统架构可分为三类:对称多处理器体系结构(SMP)非一致存储访问体系结构(NUMA)海量并行处理体系结构(MPP)SMP体系结构对称多处理器结构,是指服务器中多个CPU对称工作,无主次或从属关系。SMP的各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA)。SMP共享的特性导致它扩展能力有限。随着CPU数量的增加,内存访问冲突也会增加,最终导致CPU资源浪费。SMP的CPU利用率最好的情况是是2~4个CPU。NUMA体系结构NUMA是针对SMP在扩展能力上的限制而提出的有效扩展从而构建大型系统的技术。NUMA服务器的基本特征是具有多个CPU模块。其节点之间可以通过互通模块信息连接和消息交互,每个CPU可访问整个系统的内存。利用NUMA技术可以较好的解决SMP系统的扩展问题

图-NUMA体系结构MPP体系结构MPP由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务。其中,每个节点只访问自己的本地资源,是一种完全无共享结构。在MPP系统中,每个SMP节点也可以运行自己的操作系统、数据库等。MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。从架构来看,NUMA与MPP具有许多相似之处,它们之间的对比见右图。操作系统的多任务机制:Linux操作系统体系结构GNU/Linux操作系统最上层是用户空间,即用户应用程序执行的地方。用户空间之下是内核空间,其中分为:系统调动接口独立于体系结构的内核代码依赖于体系结构的代码除此之外,GNUCLibrary提供了连接内核的系统调用接口,还提供了在用户空间应用程序和内核之间进行转换的机制

GNU/Linux操作系统的体系结构操作系统的多任务机制:程序、进程与线性程序是为了完成某种任务而设计的软件,进程就是运行中的程序。一个进程是一个程序的一次执行的过程。在Linux中,一个进程在内存里有三部分数据:“数据段”、“堆栈段”与“代码段”。线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源,如文件描述和信号处理。POSIX线程是线程的POSIX标准,定义了创建和操纵线程的一套API,实现POSIX线程标准的库称作PThread。一个进程可以拥有多个线程,每个线程必须有一个父进程。操作系统的多任务机制:Linux进程调度Linux支持两种类型的进程调度,实时进程和普通进程。其内核具体提供以下进程调度策略:SCHED_NORMAL:默认的调度策略,针对的是普通进程;SCHED_FIFO:针对实时进程的先进先出调度,适合对时间性要求比较高但每次运行时间比较短的进程;SCHED_RR:针对的是实时进程的时间片轮转调度,适合每次运行时间比较长得进程;SCHED_BATCH:针对批处理进程的调度,适合那些非交互性且对CPU使用密集的进程;SCHED_IDLE:适用于优先级较低的后台进程。PARTFOUR4事务的执行框架与模式通用系统模型与调度方法

在多核、多线程、多处理器环境中的系统模型与事务调度以及并发控制都需要重新分析与设计,下面我们从数据库系统模型的设计出发,分析多核、多处理器环境中优化的实时数据库系统开发模式以及设计中的关键问题,给出一个泛化的、基于前面描述的感知事务模型的单进程多线程事务处理框架,并在此基础上,分析优化的多进程、多线程的事务处理框架的设计模式。单进程多线程模式单进程多线程系统模式的优势在于提高系统并行性与提供处理器资源利用率的同时,具有系统开销小、数据共享方便等优点。右图给出了一个单进程多线程的事务调度处理框架。其主要包括事务队列管理器和事务调度主线程。事务队列管理器用于管理来自采集接口的各种事务。事务调度主线程根据预定义的事务调度策略为事务分派不同的事务处理线程执行事务,事务处理线程根据操作系统的调度机制分配处理器资源运行,也可以由事务调度主线程指定处理器或者内核运行。基于功能划分的多线程模式右图给出了基于功能划分的数据库多进程系统模型。其中,实时数据管理与历史数据管理分别由不同的进程负责,并且提供一定的进程间通信机制与数据存取接口。多进程系统的优点在于内存隔离,单个进程的异常不会导致整个系统的崩溃;缺点是由于大量的进程间调用,导致通信和切换开销比较大,消耗更多资源。多进程模型有以下优点:更高的系统稳定性更好的模块化与可扩展性可以有效的适应分布式系统基于数据分区的多进程框架基于数据分区的多进程模式将数据进行水平分片,即将数据集合划分成一系列子集,各个子集之间可以有交集,也可以没有交集。对应于各个数据子集,都有自己的一个完整的功能系统,处理该系统所属的数据。这种划分可以有效的提高系统的并行性,并且可以提供主进程+多工作进程模式,但是需要提供全局的数据与服务管理能力。5系统框架的分析与性能优化系统框架的分析与性能优化在数据库服务器程序的设计与开发中,选择合适的系统设计模式至关重要。这些模式包括单线程模式、多进程模式和多线程模式。单线程模式简单易用,但在处理复杂任务和高并发时性能有限。多进程模式稳定性较高,但进程间通信和切换开销较大。多线程模式能充分利用多核处理器,提供更高的性能和响应能力,但需要处理线程安全和同步问题。系统框架的分析与性能优化在设计中应充分考虑各种因素以求做到系统资源的最大利用。系统设计模式可以概括为三种:多线程单进程模式:系统所有功能在单个进程中实现,通过多线程最大化系统资源利用与性能提升;多线程多进程模式:基于功能划分的多进程系统框架采用这种模式实现,系统通过多个不同的端口对外提供差别服务;多线程主进程+工作进程模式:这种模式支持动态创建或者终止工作进程,但是最好在服务运行期间减少动态的创建与终止。系统框架的分析与性能优化无论是采用何种模式,都是多线程的。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。特别是,提高多核系统的性能,在几个线程都同时准备运行的多线程应用程序中,每个核可以运行不同的线程,应用程序实现了真正的并行任务执行。这样不仅增强了CPU使用效率更高和系统可靠性更高这两个优点,而且使性能得到彻底提高。使用线程还可以把占据长时间的程序中的任务放到后台去处理,用户界面可以及时响应。一个多线程服务程序中的线程大致可分为三类:IO线程计算线程其它辅助线程系统框架的分析与性能优化实时感知数据库系统在进行调度优化时通常考虑以下三个主要因素:优化定期计算事务:将长时间计算任务绑定到特定处理器上,减少对其他任务的干扰,降低线程切换开销。优化共享数据访问:将需要共享相同数据的线程或进程绑定到同一CPU上,提高CPUCach

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论