基于OLTPShare的OLTP事务结合规则与队列模型改进方法技术

技术编号:22329868 阅读:20 留言:0更新日期:2019-10-19 12:14
基于OLTPShare的OLTP事务结合规则与队列模型改进方法,它属于OLTP事务处理技术领域。本发明专利技术解决了现有的OLTP事务结合规则存在的事务结合和处理的效率低、以及现有OLTPShare的队列模型不能很好地应对工作量不断变化的问题。本发明专利技术摒弃了手动添加事务结合规则的方式,提出基于机器学习聚类算法的能够自动生成、并在运行时动态调整的结合规则,可以将事务结合和处理的效率提高50%以上;而且本发明专利技术提出了一种可附加、可合并的队列模型,这种队列模型可以在运行时自动调节参数设置来应对潜在的工作量变化。本发明专利技术可以应用于OLTP事务处理技术领域。

Improved method of OLTP transaction combination rules and queue model based on oltpshare

【技术实现步骤摘要】
基于OLTPShare的OLTP事务结合规则与队列模型改进方法
本专利技术属于OLTP事务处理
,具体涉及一种基于OLTPShare的OLTP(On-LineTransactionProcessing,联机事务处理过程)事务结合规则与队列模型改进方法。
技术介绍
89%的CMDBAC开源在线项目所需的工作量所拥有的不同声明字符串十分有限。因此,OLTP工作量共享在现实中拥有巨大的应用潜力。OLTPShare(On-LineTransactionProcessing(workloads)Share,OLTP工作负载共享技术)提供了一种对于OLTP工作量的批处理策略,它将所有到来的事务进行基于队列的批处理,以期使其拥有最大的吞吐量。但是目前版本的OLTPShare批处理前的判定所依据的事务结合规则是需要人工制定的,导致事务结合和处理的效率较低。而且,在实际应用中OLTPShare的队列模型不能很好地应对工作量不断变化的情况。
技术实现思路
本专利技术的目的是为解决现有的OLTP事务结合规则存在的事务结合和处理的效率低、以及现有OLTPShare的队列模型不能很好地应对工作量不断变化的问题。本专利技术为解决上述技术问题采取的技术方案是:基于OLTPShare的OLTP事务结合规则与队列模型改进方法,该方法包括以下步骤:步骤一、当新的事务到达时,由SE线程检查新到达的事务是否为单声明事务,若检查结果为新到达的事务不是单声明事务,则新到达的事务为不可结合的事务,则逐条事务执行;若检查结果为新到达的事务是单声明事务,由SE线程查询现存队列的结合规则,判断是否将新到达的事务加入到现存的任一队列中;步骤二、若将新到达的事务加入到现存的队列C中,则新到达的事务与现在队列C中的事务一起进行批处理;若不将新到达的事务加入到现存的任一队列中,则将新到达的事务作为单独的一个新的队列,应用于后续到达的事务的结合;步骤三、当某个队列中的事务A正在被处理时,检测到该队列中新加入的事务B的到来,检查事务A与事务B是否兼容;若事务A与事务B兼容,则继续执行步骤四,若事务A与事务B不兼容,则继续执行步骤五;步骤四、若事务A与事务B兼容,则并行处理事务A与事务B,并记录事务B加入时的起始位置,若事务B加入时的起始位置不是事务B的表的头部,则当到达事务B的表的尾部时,继续从事务B的表的头部开始查询,直到到达记录的事务B的起始位置时结束;步骤五、若事务A与事务B不兼容,则等待事务A处理结束后,再开始处理事务B。本专利技术的有益效果是:本专利技术提出了基于OLTPShare的OLTP事务结合规则与队列模型改进方法,本专利技术摒弃了手动添加事务结合规则的方式,提出基于机器学习聚类算法的能够自动生成、并在运行时动态调整的结合规则,可以将事务结合和处理的效率提高50%以上;而且本专利技术提出了一种可附加、可合并的队列模型,这种队列模型可以在运行时自动调节参数设置来应对潜在的工作量变化。附图说明图1是本专利技术的基于OLTPShare的OLTP事务结合规则与队列模型改进方法的流程图。具体实施方式具体实施方式一:如图1所示,本实施方式所述的基于OLTPShare的OLTP事务结合规则与队列模型改进方法,该方法包括以下步骤:步骤一、当新的事务到达时,由SE线程(SQLExecutor,执行SQL语句的执行器)检查新到达的事务是否为单声明事务,若检查结果为新到达的事务不是单声明事务,则新到达的事务为不可结合的事务,则逐条事务执行;逐条事务执行是指按照传统的OLTP事务处理方法实现,即一条一条事务执行;若检查结果为新到达的事务是单声明事务,由SE线程查询现存队列的结合规则(mergerules),判断是否将新到达的事务加入到现存的任一队列中;现存队列结合规则是指:人为规定的事务结合规则。通过事务结合规则可以判定一个新到达的事务与其他的事务是否有相似点,如果有,则能够直接将新到达的事务加入到和其相似的队列中,一起进行批处理,如果没有,则不能够直接将新到达的事务加入到现存队列中,单独执行;步骤二、若将新到达的事务加入到现存的队列C中,则新到达的事务与现在队列C中的事务一起进行批处理;若不将新到达的事务加入到现存的任一队列中,则将新到达的事务作为单独的一个新的队列,应用于后续到达的事务的结合;如果连续n(n为人为规定,例如30、40)个事务都被判定为不属于现有任何一个队列,那么可以认定为现存队列的结合规则出现了问题,需要修改结合规则,结合规则大致有两种修改方式:1、改变比较的特征,例如从5个变为3个,或者是特征数量不变,但是更换比较的特性,例如从(a,b,c)换成(e,f,g)。2、改变计算距离的方法,例如从欧式距离变成曼哈顿距离等等。将修改后的规则,应用于后续到达的新事务的结合。以上两种修改方式每次可以都采用,也可以只采用其中一种,每次修改后,需要重新计算分类。根据不断加入事务的新特征,不断更新结合规则,提升后续类似事务的处理速度。步骤三、当某个队列中的事务A正在被处理时,检测到该队列中新加入的事务B的到来,检查事务A与事务B是否兼容;若事务A与事务B兼容,则继续执行步骤四,若事务A与事务B不兼容,则继续执行步骤五;步骤四、若事务A与事务B兼容,则并行处理事务A与事务B,并记录事务B加入时的起始位置,若事务B加入时的起始位置不是事务B的表的头部,则当到达事务B的表的尾部时,继续从事务B的表的头部开始查询,直到到达记录的事务B的起始位置时结束;对于事务B的表t,在查询这个表的时候,实际上并不是每次都从表头开始查询,查询起始点是随机的,所以,为了遍历整张表,记录事务B的表的起始位置,如果起始位置为表的头部,那么直接遍历到表尾,就遍历完了整张表。如果起始位置不是表的头部,而是表中间,那么当遍历到表尾的时候,起始点的前面部分并没有遍历,所以要从表的头部开始遍历,直至事务B的表的起始位置。步骤五、若事务A与事务B不兼容,则等待事务A处理结束后,再开始处理事务B。具体实施方式二:本实施方式是对具体实施方式一所述的基于OLTPShare的OLTP事务结合规则与队列模型改进方法的进一步限定,所述判断是否将新到达的事务加入到现存的任一队列中,其具体过程为:通过聚类方法计算新到达的事务与现存队列中事务的相似度,来判断是否将新到达的事务加入到现存的任一队列中。首先设定要比较的事务特征,例如,如果通过5个特征来比较事务的话,那么,用一个五维向量来表示每一个事务,X={x1,x2,x3,x4,x5},然后在坐标系中,每一个队列中的事务,一定离得很近,可以看出明显的簇(cluster)。人为设定一个y值,代表允许的最大的簇半径,通过计算每个簇的中心,再计算新事务和每个簇中心的距离(这里距离有很多种计算方法,例如欧式距离、曼哈顿距离等),取具有最小距离的簇,并且该距离小于y,即为该新到达的事务所属的分类。否则,若该距离大于y,则新到达的事务哪个分类都不属于,即不将新到达的事务放入现有的任一队列中,单独执行。具体实施方式三:本实施方式是对具体实施方式一或二所述的基于OLTPShare的OLTP事务结合规则与队列模型改进方法的进一步限定,所述由SE线程检查新到达的事务是否为单声明事务,其具体为:通过SE线程检查新到本文档来自技高网...

【技术保护点】
1.基于OLTPShare的OLTP事务结合规则与队列模型改进方法,其特征在于,该方法包括以下步骤:步骤一、当新的事务到达时,由SE线程检查新到达的事务是否为单声明事务,若检查结果为新到达的事务不是单声明事务,则新到达的事务为不可结合的事务,则逐条事务执行;若检查结果为新到达的事务是单声明事务,由SE线程查询现存队列的结合规则,判断是否将新到达的事务加入到现存的任一队列中;步骤二、若将新到达的事务加入到现存的队列C中,则新到达的事务与现在队列C中的事务一起进行批处理;若不将新到达的事务加入到现存的任一队列中,则将新到达的事务作为单独的一个新的队列,应用于后续到达的事务的结合;步骤三、当某个队列中的事务A正在被处理时,检测到该队列中新加入的事务B的到来,检查事务A与事务B是否兼容;若事务A与事务B兼容,则继续执行步骤四,若事务A与事务B不兼容,则继续执行步骤五;步骤四、若事务A与事务B兼容,则并行处理事务A与事务B,并记录事务B加入时的起始位置,若事务B加入时的起始位置不是事务B的表的头部,则当到达事务B的表的尾部时,继续从事务B的表的头部开始查询,直到到达记录的事务B的起始位置时结束;步骤五、若事务A与事务B不兼容,则等待事务A处理结束后,再开始处理事务B。...

【技术特征摘要】
1.基于OLTPShare的OLTP事务结合规则与队列模型改进方法,其特征在于,该方法包括以下步骤:步骤一、当新的事务到达时,由SE线程检查新到达的事务是否为单声明事务,若检查结果为新到达的事务不是单声明事务,则新到达的事务为不可结合的事务,则逐条事务执行;若检查结果为新到达的事务是单声明事务,由SE线程查询现存队列的结合规则,判断是否将新到达的事务加入到现存的任一队列中;步骤二、若将新到达的事务加入到现存的队列C中,则新到达的事务与现在队列C中的事务一起进行批处理;若不将新到达的事务加入到现存的任一队列中,则将新到达的事务作为单独的一个新的队列,应用于后续到达的事务的结合;步骤三、当某个队列中的事务A正在被处理时,检测到该队列中新加入的事务B的到来,检查事务A与事务B是否兼容;若事务A与事务B兼容,则继续执行步骤四,若事务A与事务B不兼容,则继续执行步骤五;步骤四、若事务A与事务B兼容,则并行处理事务A与事务B,并记录事务B加入时的起始位置,若事务B加入时的起始位置不是事务B的表的头部,则当到达事务B的表的尾部时,继续从事务B的表的头部开始查询,直到到达记录的事务B的起始位置时结束;步骤...

【专利技术属性】
技术研发人员:赵志强
申请(专利权)人:哈尔滨汇拓投资中心有限合伙
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1