CN107291823B - 基于不一致窗口的索引表与主文件一致性强度的度量方法 - Google Patents

基于不一致窗口的索引表与主文件一致性强度的度量方法 Download PDF

Info

Publication number
CN107291823B
CN107291823B CN201710380223.9A CN201710380223A CN107291823B CN 107291823 B CN107291823 B CN 107291823B CN 201710380223 A CN201710380223 A CN 201710380223A CN 107291823 B CN107291823 B CN 107291823B
Authority
CN
China
Prior art keywords
window
main file
index table
execution
measurement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710380223.9A
Other languages
English (en)
Other versions
CN107291823A (zh
Inventor
查礼
刘兴武
戚厚亮
常旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201710380223.9A priority Critical patent/CN107291823B/zh
Publication of CN107291823A publication Critical patent/CN107291823A/zh
Application granted granted Critical
Publication of CN107291823B publication Critical patent/CN107291823B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于不一致窗口的索引表与主文件一致性强度的度量方法,该方法包括有:向存在的数据库索引软件读取主文件中记录的步骤;对记录进行不同进程下的读或写操作得到度量操作的步骤;多进程下的并发执行串行化获得执行序列的步骤;对执行序列按照度量操作结束时间先后排序获得结果序列的步骤;最后是根据不一致窗口度量方法计算索引技术的不一致窗口大小的步骤。本发明的方法解决了现有数据库索引技术的缺陷,即没有一种定量去度量索引表与主文件之间的一致性强度的方法,也无法比较在属于同一种一致性模型下数据库索引技术的一致性强度。

Description

基于不一致窗口的索引表与主文件一致性强度的度量方法
技术领域
本发明涉及数据库索引技术领域,特别涉及一种一种基于不一致窗口的索引表(Index Table)与主文件(Primary File)一致性强度的度量方法,本发明方法应用索引表与主文件一致性强度来度量数据库索引技术(Data Base Index Techniques)一致性的强弱。
背景技术
数据(data)作为信息的载体,它是一切文字、符号、声音、图像等有意义的组合,是用符号记录下来的、可以识别的信息。从一般意义上来说,数据是描述现实世界中各种具体事物或抽象概念的可存储并具有明确意义的信息。因此,它在信息系统中起着至关重要的作用。
但同时我们也应该看到,人们所获得的数据(data)正爆炸性地增长,为了从巨大而复杂的数据集合中获得最大效益,用户必须借助相应的工具以简化数据存储、数据组织和数据检索工作,以实现对海量数据的快速地存取、方便地更新(包括插入、删除和修改)及对存储空间的有效利用。否则,数据(data)将变成负担,以至于获取和管理数据的代价将远远超过从数据发掘出的价值。
随着数据库技术的发展,目前绝大部分数据文件均是通过数据库(Data Base)及其数据库管理系统(DataBase Management System)进行存储和管理。数据库(DataBase)是指相互关联的数据集合。它是一组长期存储在计算机内,有组织的、可共享的、具有明确意义的数据集合,用于描述一个或多个相关组织的活动。
数据索引(Data Index)是在磁盘上组织数据(data)记录的一种数据结构,是对存储在存储介质上的数据(data)位置信息的描述。它用于优化某类数据检索(DataRetrieval)的操作,是提高系统对数据(data)获取效率的一种重要手段。数据库索引技术可以帮助我们以多种方式来访问一个记录集合,并有效地支持各种类型的查询,是研究数据库文件在物理存储设备上的组织及存储方式,它属于数据库物理设计部分。索引表(Index Table)使得我们能够有效地检索满足搜索条件的那些记录。在一个给定的数据记录集合上可以创建多个索引表(Index Table),选择一组好的索引表(Index Table)是改善系统性能的最有力工具。
1995年发表在第9卷第1期“Distributed Computing”上公开的《Causal memory:definitions,implementation,and programming》,作者是Mustaque Ahamad等;期刊译文题目“因果一致性:定义,实现和编程”。本文公开了多副本之间数据因果一致性的方法,该定义(definitions)规定所有的进程必须以相同的顺序看到具有因果关系的操作。
2008年发表在52卷第1期“Communications oftheAcm”上公开《EventuallyConsistent》,作者是WernerVogels;期刊译文题目“最终一致性”。本文公开了实现多副本之间数据实现最终一致性的方法,该定义规定副本数据与原数据中数据存储顺序不必相同,但在有限时间内要达到一致。
1979年发表在C-28卷第9期“IEEE Transactions on Computers”上公开的《Howto Make a Multiprocessor Computer That Correctly Executes MultiprocessProgranm》,作者是leslie lamport;期刊译文题目“如何使一个多处理器计算机正确的执行多处理器程序”。本文公开了一种多处理器计算机中,多副本之间数据保持顺序一致性的方法。
综上所述,目前面向不同数据库索引技术中索引表与主文件一致性研究时,没有一种索引表与主文件之间一致性强度约束,也没有一种定量去度量索引表与主文件之间的一致性强度的方法,也无法比较在属于同一种一致性模型下数据库索引技术(DataBaseIndex Techniques)的一致性强度。
发明内容
为了解决数据库索引技术中索引表(Index Table)与主文件(Primary File)之间一致性度量的问题,本发明提出了一种基于不一致窗口的索引表与主文件一致性强度的度量方法。本发明方法运行在安装有数据库索引技术(DataBase Index Techniques)的硬件平台上。本发明方法通过对索引表(Index Table)与主文件(Primary File)一致性强度给出定义,提出统一的度量标准,并针对这一标准,设计通用的测量方法来解决。度量标准要体现实际情况中串行并行进程中复杂记录,测量方法要屏蔽各种不同数据库索引技术(Data Base Index Techniques)实现的内部差异。
具体地说,本发明公开了一种基于不一致窗口的索引表与主文件一致性强度的度量方法,包括:
第一步骤,运行硬件平台上的数据库软件,且所述数据库上创建有主文件和索引表,提取所述主文件中的多条记录,并记下运行所述记录的进程数;
第二步骤,读与写的度量操作;
选取主文件中的任意一条记录,在同一进程下对所述记录进行读操作或者写操作,得到多个度量操作;
遍历完成主文件中的所有记录,得到不同进程下的度量操作集SOP;
所述写操作一方面是指向主文件中插入一条记录,得到更新后的主文件;另一方面根据所述更新后的主文件中的索引列更新索引表,得到更新后的索引表;
所述读操作是指根据索引值VIndex读取索引表中相应的主键,然后根据所述主键读取主文件中相应的主文件值VFile
第三步骤,多进程下的并发执行串行化获得执行序列;
对第二步骤获得的多个度量操作分进程且按照被服务器开始处理的时间先后进行排序,得到执行序列ES;
所述并发执行串行化是指把顺序执行操作和并发执行操作按照度量操作被服务器开始处理的时间先后进串行化;
第四步骤,对执行序列按照度量操作结束时间先后排序获得结果序列;
对第三步骤得到的执行序列ES按照度量操作结束时间先后进行排序,得到结果序列RS;
第五步骤,根据不一致窗口度量方法计算索引技术的不一致窗口大小;
步骤1,获取第二步骤得到的执行序列ES的窗口位置,得到执行窗口位置
Figure BDA0001305012050000031
步骤2,获取第三步骤得到的结果序列RS的窗口位置,得到结果窗口位置
步骤3,采用不一致窗口值
Figure BDA0001305012050000033
计算同一度量操作的执行窗口位置
Figure BDA0001305012050000034
与结果窗口位置
Figure BDA0001305012050000035
之间的距离,得到所述度量操作对应的不一致窗口值ICWSOP
步骤4,选取所述ICWSOP中最大的一个不一致窗口值,记为
Figure BDA0001305012050000041
所述则作为数据库主文件与索引表之间的不一致窗口值;用于度量主文件与索引表之间的一致性强度。
所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,还包括:在第一步骤中,选取任意一条记录进行度量操作。
所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,包括:在第三步骤中属于不同进程中的读或写操作为并发执行操作,所以不同进程中的度量操作是按照所述度量操作被服务器开始处理的时间先后进行串行化排顺序。
所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,包括:在第三步骤中由于同一个进程内的读或写操作是顺序执行操作的,所以同一个进程中的度量操作依次顺序到达服务器。
所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,包括:硬件平台是计算机、或者服务器。
所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,包括:所述数据库软件是指HBase、Cassandra或者MySQL、PostgreSQL。
本发明基于不一致窗口的索引表与主文件一致性强度的度量方法的优点在于:
1、明确索引表(Index Table)与主文件(Primary File)的操作关系以及索引表(Index Table)与主文件(Primary File)之间的一致性。采用读或写操作对数据库索引技术(Data Base Index Techniques)中的记录进行处理,从而简化不一致窗口的度量。
2、度量操作引出读或写操作存在的两个关系:顺序执行和并发执行。若度量操作A发生在度量操作B之前代表度量操作A的结束时间早于度量操作B的开始时间,也称为度量操作A和度量操作B是串行的。如果两个度量操作没有任何先后关系则称为并发操作。若干度量操作按照操作开始时间先后关系组成一个执行序列,按照结束时间先后关系组成一个结果序列。执行序列已经把并发操作进行串行化。从服务端微观角度看,所有的度量操作都有先后顺序,所以把并发执行进行串行化,同时把执行序列串行化能够简化不一致窗口的度量。对执行序列和结果序列的建模不需要依据数据库索引技术(DataBase IndexTechniques)的内部结构,仅依赖于度量操作的先后顺序。
3、通过执行序列和结果序列引出不一致窗口。对于执行序列中的任意一个度量操作,其在执行序列中的顺序与在结果序列中的顺序有可能存在差异,在本发明中称为不一致窗口位置。获取最大的一个不一致窗口位置作为数据库索引技术(Data Base IndexTechniques)的不一致窗口。不一致窗口的大小是衡量所述数据库索引技术中索引表(Index Table)与主文件(Primary File)之间一致性强度的度量指标。本发明提出的不一致窗口概念,是定量评价索引技术一致性的前提,也是测量不一致窗口方法的理论基础。不一致窗口越大,代表一致性越差。只需要通过对数据库索引技术运用本发明方法进行测试即可,然后计算其不一致窗口即可得出。不需要对数据库索引技术进行任何修改,侵入性低。同时也降低无关变量对一致性结果的影响。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
附图说明
图1是本发明基于不一致窗口的索引表与主文件一致性强度的度量方法的流程图;
图2A是实施例1中在第一个进程下的执行序列与结果序列的排序示意图;
图2B是实施例1中在第二个进程下的执行序列与结果序列的排序示意图;
图2C是实施例1中在两个进程下的执行序列与结果序列的排序示意图;
图3是实施例1中执行序列与结果序列的不一致性窗口位置示意图;
图4是实施例2中执行序列与结果序列的排序示意图;
图5是实施例2中执行序列与结果序列的不一致性窗口位置示意图。
具体实施方式
下面将结合附图和实施例对本发明做进一步的详细说明。
本发明方法运行在安装有数据库软件,且所述数据库上创建有主文件和索引表的硬件平台上。所述硬件平台可以是计算机、服务器。
索引文件是一种特殊的文件组织。通常,索引文件(Index File)由索引表(IndexTable)和主文件(Primary File)两部分构成。主文件(Primary File)用来存储数据文件的记录项,它可以是有序的,也可以是无序的。索引表(Index Table)是一张指示逻辑记录和物理记录之间对应关系的表。
通常,总是在讨论共享数据的读操作(read operation)和写操作(writeoperation)时讨论一致性问题,这些共享数据是通过分布式共享存储器、分布式共享数据库或分布式文件系统实现的。一致性模型(consistency model)实质上是进程(process)和数据存储之间的一个约定。即,如果进程(process)同意遵守某些规则,那么数据存储将正常运行。进程(process)的概念来源于操作系统,它定义为执行中的程序。从操作系统的角度来说,进程管理和调度也许是它要处理的最重要的问题。在本发明中,第一个进程记为pr1、第二个进程记为pr2、……、第j个进程记为prj、位于所述prj之前的进程记为prj-1、位于所述prj之后的进程记为prj+1、……、最后一个进程记为prW,j表示进程的标识号,j=1,2,…,W,W表示进程数量。采用集合形式表示所有进程PR={pr1,pr2,…,prj-1,prj,prj+1,…,prW}。
本发明的一种基于不一致窗口的索引表与主文件一致性强度的度量方法能够服务于一些常见的数据库,如HBase、Cassandra或者MySQL、PostgreSQL等。运行数据库的硬件载体有:任何安装此数据库软件的笔记本,台式机或是服务器均可。
本发明的一种基于不一致窗口的索引表与主文件一致性强度的度量方法,包括有下列步骤:
第一步骤,运行硬件平台上的数据库软件,且所述数据库上创建有主文件和索引表,提取所述主文件中的多条记录,并记下运行所述记录的进程数;
第二步骤,读与写的度量操作;
选取主文件中的任意一条记录(record),在同一进程(process)下对所述记录(record)进行读操作(read operation)或者写操作(write operation),得到多个度量操作;
遍历完成主文件中的所有记录,得到不同进程(process)下的度量操作集SOP。
写操作(write operation)
在本发明中,写操作(write operation)一方面是指向主文件(Primary File)中插入一条记录(record),得到更新后的主文件(new Primary File);另一方面根据所述更新后的主文件(new Primary File)中的索引列(Index column)更新索引表(IndexTable),得到更新后的索引表(new Index Table)。
读操作(read operation)
在本发明中,读操作(read operation)是指根据索引值VIndex读取索引表(IndexTable)中相应的主键(记为K),然后根据所述主键K读取主文件(Primary File)中相应的主文件值VFile
索引值VIndex是指索引表(Index Table)中主键K对应的值。
主文件值VFile是指主文件(Primary File)中列的值。
在本发明中,在不同进程(process)下针对主文件(Primary File)中的每条记录(record)进行读操作(read operation)或写操作(write operation),得到的是度量操作,记为OP,采用集合形式表示为OP={opread,opwrite},opread表示读操作,opwrite表示写操作。在数据库索引技术(Data Base Index Techniques)中按照操作开始时间(start time)先后记录度量操作,则存在有不同进程(process)下的第一个度量操作记为
Figure BDA0001305012050000071
第二个度量操作记为
Figure BDA0001305012050000072
……、第i个度量操作记为
Figure BDA0001305012050000073
位于所述
Figure BDA0001305012050000074
之前的度量操作记为位于所述
Figure BDA0001305012050000076
之后的度量操作记为
Figure BDA0001305012050000077
……、最后一个度量操作记为
Figure BDA0001305012050000078
i表示度量操作的标识号,i=1,2,…,M,M表示度量操作数量。针对主文件(Primary File)中的每条记录(record)得到的所有的度量操作采用集合形式记为不同进程(process)下的度量操作集SOP={OP1,OP2,…,OPi-1,OPi,OPi+1,…,OPM}。
第三步骤,多进程下的并发执行串行化获得执行序列;
对第二步骤获得的多个度量操作分进程(process)且按照被服务器开始处理的时间先后进行排序,得到执行序列ES。
在本发明中,并发执行串行化是指把顺序执行操作(sequential operation)和并发执行操作(concurrent operation)按照度量操作被服务器开始处理的时间先后进串行化。
在本发明中,由于同一个进程(process)内的读或写操作是顺序执行操作(sequential operation)的,所以同一个进程(process)中的度量操作依次顺序到达服务器。
在本发明中,属于不同进程(process)中的读或写操作为并发执行操作(concurrent operation)的,所以不同进程(process)中的度量操作是按照所述度量操作被服务器开始处理的时间先后进行串行化排顺序。
操作关系(operation relation)
在计算机领域中通常可以把一个应用程序分成若干个程序段,在各个程序段之间,必须按照某种先后次序顺序执行,仅当前一操作(程序段)执行完后,才能执行继续操作。进程的顺序执行是指按照程序所规定的顺序执行,一个操作的开始必须在其前一个操作结束之后。而并发性是指两个或多个事件在同一时间间隔内发生。并发执行是指在一段时间内宏观上有多个程序在同时运行。
在本发明中,操作关系(operation relation)包括有顺序执行(sequentialoperation)和并发执行(concurrent operation),采用集合形式表示为操作关系OR={orsequential,orconcurrent}。串行操作orsequential是指一个度量操作的结束时间(end time)早于另一个度量操作OPi+1的开始时间(start time),则此两个度量操作的操作关系(operation relation)记为串行操作orsequential。不属于所述串行操作orsequential的两个度量操作,其操作关系(operation relation)记为并发操作orconcurrent
例如,第i个度量操作OPi的结束时间(end time)早于第i+1个度量操作OPi+1的开始时间(start time),则OPi与OPi+1的操作关系(operation relation)记为串行操作
Figure BDA0001305012050000091
第二个度量操作OP2的结束时间(end time)早于第i个度量操作OPi的开始时间(start time),则OP2与OPi的操作关系(operation relation)记为串行操作
Figure BDA0001305012050000092
例如,第i个度量操作OPi的结束时间(end time)晚于第i+1个度量操作OPi+1的开始时间(start time),且第i个度量操作OPi的开始时间(start time)早于第i+1个度量操作OPi+1的开始时间(start time),则OPi与OPi+1的操作关系(operation relation)记为并发操作
Figure BDA0001305012050000093
第二个度量操作OP2的结束时间(end time)晚于第i个度量操作OPi的开始时间(start time),且第二个度量操作OP2的开始时间(start time)早于第i个度量操作OPi的开始时间(start time),则OP2与OPi的操作关系(operation relation)记为并发操作
Figure BDA0001305012050000094
执行序列(Execution Sequence)
在本发明中,执行序列(Execution Sequence)是指把度量操作OP按照度量操作的操作开始时间(start time)排序,得到一个执行序列ES={OP1,OP2,…,OPi-1,OPi,OPi+1,…,OPM}。
例如,有3个度量操作OPi-1、OPi和OPi+1,操作OPi-1与OPi的操作关系是串行操作所以度量操作OPi-1的开始时间早于度量操作OPi的开始时间;操作OPi与OPi+1的操作关系是并发操作并且度量操作OPi的操作开始时间早于度量操作OPi+1的操作开始时间,则此属于度量操作OPi-1、OPi和OPi+1的执行序列ES={OPi-1,OPi,OPi+1}。
第四步骤,对执行序列按照度量操作结束时间先后排序获得结果序列;
对第三步骤得到的执行序列ES按照度量操作结束时间先后进行排序,得到结果序列RS。
结果序列(Result Sequence)
在本发明中,结果序列(Result Sequence)是指把度量操作OP按照度量操作的操作结束时间(end time)排序,组成的一个操作集合RS={OP1,OP2,…,OPi-1,OPi,OPi+1,…,OPM}。
例如,有3个度量操作OPi-1,OPi和OPi+1,操作OPi-1与OPi的操作关系是串行操作
Figure BDA0001305012050000101
所以度量操作OPi-1的结束时间早于度量操作OPi的开始时间,并且度量操作OPi-1的结束时间早于度量操作OPi的结束时间;操作OPi与OPi+1的操作关系是并发操作
Figure BDA0001305012050000102
并且度量操作OPi+1的操作结束时间早于度量操作OPi的操作结束时间,则此属于度量操作OPi-1、OPi和OPi+1的结果序列RS={OPi-1,OPi+1,OPi}。
第五步骤,根据不一致窗口度量方法计算索引技术的不一致窗口大小;
步骤1,获取第二步骤得到的执行序列ES的窗口位置(单位为数值型),得到执行窗口位置
Figure BDA0001305012050000103
步骤2,获取第三步骤得到的结果序列RS的窗口位置(单位为数值型),得到结果窗口位置
步骤3,采用不一致窗口值
Figure BDA0001305012050000105
计算同一度量操作的执行窗口位置
Figure BDA0001305012050000106
与结果窗口位置
Figure BDA0001305012050000107
之间的距离,得到所述度量操作对应的不一致窗口值ICWSOP(单位为数值型);所述ICWSOP也称为索引一致性强度;
步骤4,选取所述ICWSOP中最大的一个不一致窗口,记为
Figure BDA0001305012050000108
所述
Figure BDA0001305012050000109
则作为数据库主文件与索引表之间的不一致窗口值;用于度量主文件与索引表之间的一致性强度。
不一致性窗口(Inconsistency Window)
在本发明中,不一致窗口(Inconsistency Window)是度量数据库中主文件与索引表之间一致性强度的度量指标,不一致窗口(Inconsistency Window)越大,则一致性越差。不一致窗口的计算方法如下:对执行序列ES上的任意一个度量操作OPi,其在执行序列ES中的顺序位置记为
Figure BDA00013050120500001010
其在结果序列RS中的位置为
Figure BDA0001305012050000111
则所述度量操作OPi的不一致窗口(Inconsistency Window)记为
Figure BDA0001305012050000112
采用不一致窗口的计算方法遍历完成SOP={OP1,OP2,…,OPi-1,OPi,OPi+1,…,OPM}中的各个度量操作,得到不一致窗口的最大值
Figure BDA0001305012050000113
实施例1:第一步骤,运行硬件平台上的数据库软件,且所述数据库上创建有主文件和索引表,提取所述主文件中的多条记录,并记下运行所述记录的进程数;
硬件平台为预装Linux系统的服务器,且服务器中安装的HBase数据库下运行Apache Phoenix索引。
表1:列举了一个交易订单数据的表结构:
类型
订单编号 数值型
商品数量 数值型
商品名称 字符型
价格 数值型
注:表1中“列”的各项内容称为订单品目。
在实施例1中从交易订单数据中按照“订单品目”作为主文件(Primary File)的表头进行登记每条记录(record),如表2所示。
表2:主文件(Primary File)
Figure BDA0001305012050000114
Figure BDA0001305012050000121
注:表2中每行为一条记录。
在实施例1中将表2中的“价格”列作为索引列进行升序排列,得到索引表(IndexTable),如表3所示。
表3:索引表(Index Table)
价格 订单编号
136 8
183 9
287 3
358 7
388 2
419 4
508 6
560 1
809 5
在实施例1公开的硬件平台、软件环境以及表2和表3信息数据,采用本发明的基于不一致窗口的索引表与主文件一致性强度的度量方法来评价表2与表3之间的一致性强度,具体处理的步骤为:
第二步骤,读与写的度量操作;
选取表2中的任意一条记录(record),在同一进程(process)对所述记录(record)进行读操作(read operation)或者写操作(write operation),得到多个度量操作,即度量操作集SOP;
例如,记录(record)选取(1,24,苹果,560);用2个进程对所述(1,24,苹果,560)进行读操作(read operation)或者写操作(write operation),得到的度量操作有;
在第一个进程pr1中对记录(1,24,苹果,560)进行写操作,得到的第一个度量操作为
Figure BDA0001305012050000122
所述“1”为主键K,所述“(1,24,苹果,560)”为主文件值VFile
在第一个进程pr1中对记录(1,24,小明,560)进行读操作,得到的第二个度量操作为
Figure BDA0001305012050000131
所述“580”为索引值VIndex
在第一个进程pr1中对记录(1,24,小明,560)进行读操作,得到的第三个度量操作为
Figure BDA0001305012050000132
在第一个进程pr1中对记录(1,24,小明,560)进行写操作,得到的第四个度量操作为
Figure BDA0001305012050000133
在第二个进程pr2中对记录(1,24,小明,560)进行写操作,得到的第五个度量操作为
在第二个进程pr2中对记录(1,24,小明,560)进行读操作,得到的第六个度量操作为
Figure BDA0001305012050000135
在第二个进程pr2中对记录(1,24,小明,560)进行读操作,得到的第七个度量操作为
Figure BDA0001305012050000136
在第二个进程pr2中对记录(1,24,小明,560)进行写操作,得到的第八个度量操作为
Figure BDA0001305012050000137
统计实施例1针对记录(record)为(1,24,苹果,560)的读或写操作,得到度量操作集
Figure BDA0001305012050000138
对第一个进程pr1和第二个进程pr2中的8个度量操作分别为:pr1_OP1、pr1_OP2、pr1_OP3、pr1_OP4、pr2_OP1、pr2_OP2、pr2_OP3和pr2_OP4。所述8个度量操作的到达服务器的时间如表4所示,所述8个度量操作的结束时间如表5所示。
表4:每个度量操作到达服务器的时间表
Figure BDA0001305012050000139
Figure BDA0001305012050000141
表5:每个度量操作的结束时间表
Figure BDA0001305012050000142
第三步骤,多进程下的并发执行串行化获得执行序列;
对第三步骤获得的多个度量操作分进程(process)且按照到达服务器的时间先后进行排序,得到执行序列ES。
在本发明中,并发执行串行化是指把顺序执行操作(sequential operation)和并发执行操作(parallel operation)按照度量操作到达服务器的时间先后进串行化。
在本发明中,由于同一个进程(process)内的读或写操作是顺序执行操作(sequential operation)的,所以同一个进程(process)中的度量操作依次顺序到达服务器。
在本发明中,属于不同进程(process)中的读或写操作为并发执行操作(paralleloperation)的,所以不同进程(process)中的度量操作是按照所述度量操作到达服务器的时间先后进行串行化排顺序。
在实施例1中结合表4,对度量操作集
Figure BDA0001305012050000151
分进程(process)且按照到达服务器的时间先后进行排序,得到的执行序列为
Figure BDA0001305012050000152
参见图2A所示的属于第一个进程pr1中的度量操作按照到达服务器的时间先后排序后的执行序列。
参见图2B所示的属于第二个进程pr2中的度量操作按照到达服务器的时间先后排序后的执行序列。
在实施例1中由于有2个进程(process),即第一个进程pr1和第二个进程pr2,所以对第一个进程pr1和第二个进程pr2中存在的度量操作需要采用并发执行串行化进行排序,才能得到按照到达服务器的时间先后排序的执行序列,如图2C所示。
第四步骤,对执行序列按照度量操作结束时间先后排序得到结果序列RS。
在实施例1中结合表5,按照度量操作结束时间先后对图2C中执行序列
Figure BDA0001305012050000161
进行排序,得到结果序列
Figure BDA0001305012050000162
第五步骤,根据不一致窗口度量方法计算索引技术的不一致窗口大小;
步骤1,获取第二步骤得到的执行序列ES的窗口位置(单位为数值型),得到执行窗口位置
Figure BDA0001305012050000163
步骤2,获取第三步骤得到的结果序列RS的窗口位置(单位为数值型),得到结果窗口位置
Figure BDA0001305012050000164
步骤3,采用不一致窗口值
Figure BDA0001305012050000165
计算同一度量操作的执行窗口位置
Figure BDA0001305012050000166
与结果窗口位置
Figure BDA0001305012050000167
之间距离,得到所述度量操作对应的不一致窗口值ICWSOP(单位为数值型);
步骤4,选取所述ICWSOP中最大的一个不一致窗口值,记为所述
Figure BDA0001305012050000169
则作为数据库主文件与索引表之间的不一致窗口值;用于度量主文件与索引表之间的一致性强度。
当所述越大,则说明使用中的数据库主文件与索引表之间一致性强度较弱。当所述
Figure BDA00013050120500001611
越小,则说明使用中的数据库主文件与索引表之间一致性强度较强。当所述
Figure BDA00013050120500001612
等于0为强一致性。
参见图3所示,
Figure BDA00013050120500001613
列示意出的数值代表了执行序列ES中度量操作的窗口位置,列示意出的数值代表了结果序列RS中度量操作的窗口位置,ICWSOP列示意出的数值代表了
Figure BDA00013050120500001615
Figure BDA00013050120500001616
对比后的每个度量操作所对应的不一致窗口。在实施例1中的执行序列
Figure BDA0001305012050000171
的窗口位置为顺序排序,则有
Figure BDA0001305012050000172
在实施例1中的结果序列
Figure BDA0001305012050000173
的窗口位置为顺序排序,则有
Figure BDA0001305012050000174
采用不一致窗口值
Figure BDA0001305012050000175
计算同一度量操作的执行窗口位置
Figure BDA0001305012050000176
与结果窗口位置
Figure BDA0001305012050000177
得到所述度量操作对应的不一致窗口值ICWSOP;例如度量操作pr1_OP1在执行序列ES中的位置为在结果序列RS中的位置为所述pr1_OP1对应的不一致窗口为
Figure BDA0001305012050000183
同理,计算出其余度量操作对应的不一致窗口参考图3所示。执行完成所有度量操作对应的不一致窗口,选取出属于记录(record)的(1,24,苹果,560)的不一致窗口的最大值,在实施例1中不一致窗口的最大值为2。所述最大值2将作为数据库中主文件与索引表之间的不一致窗口。
实施例2:实施例2同样使用实施例1公开的硬件平台、以及表2和表3中公开的数据信息,不同之处在于选用的进程(process)数不同。硬件平台为预装Linux系统的服务器,且服务器中安装的HBase数据库下运行HIndex索引。因此,实施例2采用本发明的基于不一致窗口的索引表与主文件一致性强度的度量方法来评价表2与表3之间的一致性强度,具体处理的步骤为:
第一步骤,运行硬件平台上的数据库软件,且所述数据库上创建有主文件和索引表,提取所述主文件中的多条记录,并记下运行所述记录的进程数;
第二步骤,读与写的度量操作;
选取表2中的任意一条记录(record),用进程(process)对所述记录(record)进行读操作(read operation)或者写操作(write operation),得到多个度量操作,即度量操作集SOP;
例如,记录(record)选取(2,54,香蕉,388);用1个进程对所述(2,54,香蕉,388)进行读操作(read operation)或者写操作(write operation),得到的度量操作有;
在进程pr1中对记录(2,54,香蕉,388)进行写操作,得到的第一个度量操作为
Figure BDA0001305012050000184
在进程pr1中对记录(2,54,香蕉,388)进行读操作,得到的第二个度量操作为
在进程pr1中对记录(2,54,香蕉,388)进行写操作,得到的第三个度量操作为
Figure BDA0001305012050000191
在进程pr1中对记录(2,54,香蕉,388)进行读操作,得到的第四个度量操作为
Figure BDA0001305012050000192
在进程pr1中对记录(2,54,香蕉,388)进行读操作,得到的第五个度量操作为
Figure BDA0001305012050000193
在进程pr1中对记录(2,54,香蕉,388)进行读操作,得到的第六个度量操作为
Figure BDA0001305012050000194
统计实施例2针对记录(record)为(2,54,香蕉,388)的读或写操作,得到度量操作集
Figure BDA0001305012050000195
对进程pr1中的6个度量操作分别为:pr1_OP1、pr1_OP2、pr1_OP3、pr1_OP4、pr1_OP5和pr1_OP6。所述6个度量操作的到达服务器的时间如表6所示,所述6个度量操作的结束时间如表7所示。
表6:每个度量操作到达服务器的时间表
表7:每个度量操作的结束时间表
Figure BDA0001305012050000201
第三步骤,多进程下的并发执行串行化获得执行序列;
对第一步骤获得的多个度量操作分进程(process)且按照到达服务器的时间先后进行排序,得到执行序列ES。
在本发明中,由于同一个进程(process)内的读或写操作是顺序执行操作(sequential operation)的,所以同一个进程(process)中的度量操作依次顺序到达服务器。
在实施例2中结合表6,对度量操作集分进程(process)且按照到达服务器的时间先后进行排序,得到的执行序列为
Figure BDA0001305012050000203
参见图4所示的属于进程pr1中的度量操作按照到达服务器的时间先后排序后的执行序列。
第四步骤,对执行序列按照度量操作结束时间先后排序获得结果序列;
对第三步骤得到的执行序列ES按照度量操作结束时间先后进行排序,得到结果序列RS。
在实施例2中结合表7,按照度量操作结束时间先后对图4中执行序列
Figure BDA0001305012050000211
进行排序,得到结果序列
Figure BDA0001305012050000212
第五步骤,根据不一致窗口度量方法计算此索引技术的不一致窗口大小;
步骤1,获取第二步骤得到的执行序列ES的窗口位置(单位为数值型),得到执行窗口位置
Figure BDA0001305012050000213
步骤2,获取第三步骤得到的结果序列RS的窗口位置(单位为数值型),得到结果窗口位置
Figure BDA0001305012050000214
步骤3,采用不一致窗口值计算同一度量操作的执行窗口位置
Figure BDA0001305012050000216
与结果窗口位置
Figure BDA0001305012050000217
之间距离,得到所述度量操作对应的不一致窗口值ICWSOP(单位为数值型);
步骤4,选取所述ICWSOP中最大的一个不一致窗口值,记为
Figure BDA0001305012050000218
所述
Figure BDA0001305012050000219
则作为数据库主文件与索引表之间的不一致窗口值;用于度量主文件与索引表之间的一致性强度。
参见图5所示,列示意出的数值代表了执行序列ES中度量操作的窗口位置,
Figure BDA00013050120500002111
列示意出的数值代表了结果序列RS中度量操作的窗口位置,ICWSOP列示意出的数值代表了
Figure BDA00013050120500002112
Figure BDA00013050120500002113
对比后的每个度量操作所对应的不一致窗口。在实施例2中的执行序列
Figure BDA00013050120500002114
的窗口位置为顺序排序,则有
Figure BDA0001305012050000221
在实施例2中的结果序列的窗口位置为顺序排序,则有
Figure BDA0001305012050000223
采用不一致窗口度量方法
Figure BDA0001305012050000224
对比同一度量操作的执行窗口位置
Figure BDA0001305012050000225
与结果窗口位置
Figure BDA0001305012050000226
得到所述度量操作对应的不一致窗口ICWSOP;例如度量操作pr1_OP1在执行序列ES中的位置为
Figure BDA0001305012050000227
在结果序列RS中的位置为
Figure BDA0001305012050000228
所述pr1_OP1对应的不一致窗口为
Figure BDA0001305012050000229
同理,计算出其余度量操作对应的不一致窗口参考图5所示。执行完成所有度量操作对应的不一致窗口,选取出属于记录(record)的(2,54,香蕉,388)的不一致窗口的最大值,在实施例2中不一致窗口的最大值为3。所述最大值3将作为数据库中主文件与索引表之间的不一致窗口。
根据上述两个实施例子,实施例1中得到的Apache Phoenix中的主文件和索引表的不一致窗口为2,实施例3得到的HIndex的主文件和索引表的不一致窗口为3;所以ApachePhoenix的一致性要强于HIndex的一致性。
本发明是一种基于不一致窗口的索引表与主文件一致性强度的度量方法,所要解决的是如何对数据库索引技术(Data Base Index Techniques)中索引表(Index Table)与主文件(Primary File)一致性强度的度量技术问题,该方法通过度量操作来获取主文件中多条记录的执行序列和结果序列,并通过不一致窗口位置来得到不一致窗口最大度量值的技术手段,从而实现对数据库索引技术(Data Base Index Techniques)的实时检测,一方面获得索引表与主文件之间一致性强度约束,另一方面对数据库索引技术(Data BaseIndex Techniques)进行度量的技术效果。
以下为与上述系统实施例对应的系统实施例,本实施系统可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施系统中依然有效,为了减少重复,这里不再赘述。相应地,本实施系统中提到的相关技术细节也可应用在上述实施方式中。
本发明还公开了一种基于不一致窗口的索引表与主文件一致性强度的度量系统,包括:
运行模块,运行硬件平台上的数据库软件,且所述数据库上创建有主文件和索引表,提取所述主文件中的多条记录,并记下运行所述记录的进程数;
度量模块,读与写的度量操作;
选取主文件中的任意一条记录,在同一进程下对所述记录进行读操作或者写操作,得到多个度量操作;
遍历完成主文件中的所有记录,得到不同进程下的度量操作集SOP;
所述写操作一方面是指向主文件中插入一条记录,得到更新后的主文件;另一方面根据所述更新后的主文件中的索引列更新索引表,得到更新后的索引表;
所述读操作是指根据索引值VIndex读取索引表中相应的主键,然后根据所述主键读取主文件中相应的主文件值VFile
执行模块,多进程下的并发执行串行化获得执行序列;
对度量模块获得的多个度量操作分进程且按照被服务器开始处理的时间先后进行排序,得到执行序列ES;
所述并发执行串行化是指把顺序执行操作和并发执行操作按照度量操作被服务器开始处理的时间先后进串行化;
排序模块,对执行序列按照度量操作结束时间先后排序获得结果序列;
对执行模块得到的执行序列ES按照度量操作结束时间先后进行排序,得到结果序列RS;
计算模块,根据不一致窗口度量系统计算索引技术的不一致窗口大小;
获取模块,获取度量模块得到的执行序列ES的窗口位置,得到执行窗口位置
Figure BDA0001305012050000241
同时还获取执行模块得到的结果序列RS的窗口位置,得到结果窗口位置
Figure BDA0001305012050000242
距离计算模块,采用不一致窗口值
Figure BDA0001305012050000243
计算同一度量操作的执行窗口位置
Figure BDA0001305012050000244
与结果窗口位置
Figure BDA0001305012050000245
之间的距离,得到所述度量操作对应的不一致窗口值ICWSOP
强度计算模块,选取所述ICWSOP中最大的一个不一致窗口值,记为
Figure BDA0001305012050000246
所述则作为数据库主文件与索引表之间的不一致窗口值;用于度量主文件与索引表之间的一致性强度。
所述的基于不一致窗口的索引表与主文件一致性强度的度量系统,还包括:在运行模块中,选取任意一条记录进行度量操作。
所述的基于不一致窗口的索引表与主文件一致性强度的度量系统,包括:在执行模块中属于不同进程中的读或写操作为并发执行操作,所以不同进程中的度量操作是按照所述度量操作被服务器开始处理的时间先后进行串行化排顺序。
所述的基于不一致窗口的索引表与主文件一致性强度的度量系统,包括:在执行模块中由于同一个进程内的读或写操作是顺序执行操作的,所以同一个进程中的度量操作依次顺序到达服务器。
所述的基于不一致窗口的索引表与主文件一致性强度的度量系统,包括:硬件平台是计算机、或者服务器。
所述的基于不一致窗口的索引表与主文件一致性强度的度量系统,包括:所述数据库软件是指HBase、Cassandra或者MySQL、PostgreSQL。
虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本技术领域技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。

Claims (6)

1.一种基于不一致窗口的索引表与主文件一致性强度的度量方法,其特征在于:
第一步骤,运行硬件平台上的数据库软件,且所述数据库上创建有主文件和索引表,提取所述主文件中的多条记录,并记下运行所述记录的进程数;
第二步骤,读与写的度量操作;
选取主文件中的任意一条记录,在同一进程下对所述记录进行读操作或者写操作,得到多个度量操作;
遍历完成主文件中的所有记录,得到不同进程下的度量操作集SOP;
所述写操作一方面是指向主文件中插入一条记录,得到更新后的主文件;另一方面根据所述更新后的主文件中的索引列更新索引表,得到更新后的索引表;
所述读操作是指根据索引值VIndex读取索引表中相应的主键,然后根据所述主键读取主文件中相应的主文件值VFile
第三步骤,多进程下的并发执行串行化获得执行序列;
对第二步骤获得的多个度量操作按照被服务器开始处理的时间先后进行排序,得到执行序列ES;
所述并发执行串行化是指把顺序执行操作和并发执行操作按照度量操作被服务器开始处理的时间先后进串行化;
第四步骤,对执行序列按照度量操作结束时间先后排序获得结果序列;
对第三步骤得到的执行序列ES按照度量操作结束时间先后进行排序,得到结果序列RS;
第五步骤,根据不一致窗口度量方法计算索引技术的不一致窗口大小;
步骤1,获取第三步骤得到的执行序列ES的窗口位置,得到执行窗口位置
Figure FDA0002232552820000011
步骤2,获取第四步骤得到的结果序列RS的窗口位置,得到结果窗口位置
Figure FDA0002232552820000012
步骤3,采用不一致窗口值
Figure FDA0002232552820000013
计算同一度量操作的执行窗口位置
Figure FDA0002232552820000014
与结果窗口位置
Figure FDA0002232552820000015
之间的距离,得到所述度量操作对应的不一致窗口值ICWSOP
步骤4,选取所述ICWSOP中最大的一个不一致窗口值,记为所述
Figure FDA0002232552820000022
则作为数据库主文件与索引表之间的不一致窗口值;用于度量主文件与索引表之间的一致性强度。
2.根据权利要求1所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,其特征在于:在第一步骤中,选取任意一条记录进行度量操作。
3.根据权利要求1所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,其特征在于:在第三步骤中属于不同进程中的读或写操作为并发执行操作,所以不同进程中的度量操作是按照所述度量操作被服务器开始处理的时间先后进行串行化排顺序。
4.根据权利要求1所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,其特征在于:在第三步骤中由于同一个进程内的读或写操作是顺序执行操作的,所以同一个进程中的度量操作依次顺序到达服务器。
5.根据权利要求1所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,其特征在于:硬件平台是计算机、或者服务器。
6.根据权利要求1所述的基于不一致窗口的索引表与主文件一致性强度的度量方法,其特征在于:所述数据库软件是指HBase、Cassandra或者MySQL、PostgreSQL。
CN201710380223.9A 2017-05-25 2017-05-25 基于不一致窗口的索引表与主文件一致性强度的度量方法 Active CN107291823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710380223.9A CN107291823B (zh) 2017-05-25 2017-05-25 基于不一致窗口的索引表与主文件一致性强度的度量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710380223.9A CN107291823B (zh) 2017-05-25 2017-05-25 基于不一致窗口的索引表与主文件一致性强度的度量方法

Publications (2)

Publication Number Publication Date
CN107291823A CN107291823A (zh) 2017-10-24
CN107291823B true CN107291823B (zh) 2020-02-28

Family

ID=60094297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710380223.9A Active CN107291823B (zh) 2017-05-25 2017-05-25 基于不一致窗口的索引表与主文件一致性强度的度量方法

Country Status (1)

Country Link
CN (1) CN107291823B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805416B1 (en) * 2005-09-30 2010-09-28 Emc Corporation File system query and method of use
JP4831418B2 (ja) * 2006-12-28 2011-12-07 ソニー株式会社 情報処理装置および方法、並びにプログラム
CN103793382A (zh) * 2012-10-26 2014-05-14 腾讯科技(北京)有限公司 一种数据库的数据处理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805416B1 (en) * 2005-09-30 2010-09-28 Emc Corporation File system query and method of use
JP4831418B2 (ja) * 2006-12-28 2011-12-07 ソニー株式会社 情報処理装置および方法、並びにプログラム
CN103793382A (zh) * 2012-10-26 2014-05-14 腾讯科技(北京)有限公司 一种数据库的数据处理方法及系统

Also Published As

Publication number Publication date
CN107291823A (zh) 2017-10-24

Similar Documents

Publication Publication Date Title
Konda Magellan: Toward building entity matching management systems
Wang et al. Performance prediction for apache spark platform
JP6669571B2 (ja) リレーショナルデータベースのチューニング装置及び方法
US8151248B1 (en) Method and system for software defect management
CN102945240B (zh) 一种支持分布式计算的关联规则挖掘算法实现方法及装置
US20030192028A1 (en) System and method for determining software object migration sequences
US20070250517A1 (en) Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries
CN112579586A (zh) 数据处理方法、装置、设备及存储介质
Rabl et al. Just can't get enough: Synthesizing Big Data
GB2378534A (en) SQL execution analysis
EP3396542B1 (en) Database operating method and device
US20090030880A1 (en) Model-Based Analysis
US8782641B2 (en) Tuning of work to meet performance goal
US11704216B2 (en) Dynamically adjusting statistics collection time in a database management system
US9965355B2 (en) System and method for dynamic collection of system management data in a mainframe computing environment
CN107291823B (zh) 基于不一致窗口的索引表与主文件一致性强度的度量方法
CN110851515A (zh) 一种基于Spark分布式环境下的大数据ETL模型执行方法及介质
US20220300513A1 (en) Asynchronous query optimization using spare hosts
CN112765170B (zh) 一种嵌入式时间序列数据管理方法及设备
CN115169578A (zh) 一种基于元宇宙数据标记的ai模型生产方法及系统
CN117716350A (zh) 链接Bloom过滤器以估计数据集中具有低频的键的数量
CN112925856B (zh) 实体关系分析方法、装置、分析设备及计算机存储介质
CN113553320B (zh) 数据质量监控方法及装置
Graf et al. Frost: Benchmarking and exploring data matching results
CN117891494A (zh) 一种针对版本控制系统重命名冲突的自动处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant