CN1517917A - 在多线程环境中管理和持久结构相关联的事务处理的方法 - Google Patents

在多线程环境中管理和持久结构相关联的事务处理的方法 Download PDF

Info

Publication number
CN1517917A
CN1517917A CNA2004100029932A CN200410002993A CN1517917A CN 1517917 A CN1517917 A CN 1517917A CN A2004100029932 A CNA2004100029932 A CN A2004100029932A CN 200410002993 A CN200410002993 A CN 200410002993A CN 1517917 A CN1517917 A CN 1517917A
Authority
CN
China
Prior art keywords
persistent object
event queue
persistent
cache memory
event
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.)
Granted
Application number
CNA2004100029932A
Other languages
English (en)
Other versions
CN1293501C (zh
Inventor
J
J·哈里斯
李家欣
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN1517917A publication Critical patent/CN1517917A/zh
Application granted granted Critical
Publication of CN1293501C publication Critical patent/CN1293501C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

提供了一种用于在多线程环境中对和一种持久结构相关联的事务处理进行管理的方法。该方法首先使每个单个的线程与一个事件队列相关联。然后一个事件被添加到和相应线程相关联的一个第一事件队列中。该事件和一个持久对象相关联。接下来,禁止除该相应线程之外的所有线程对该持久对象进行写访问。然后,执行在该第一事件队列中和该持久对象相关的事件。还提供了可以维持持久对象的事务处理状态的一种计算机可读取介质和系统。

Description

在多线程环境中管理和持久结构相关联的事务处理的方法
技术领域
本发明大体上涉及信息存储和检索系统并且更特别地涉及一种用于管理正在该信息和检索系统中被处理的数据的方法和系统。
背景技术
电子商务的出现和计算机联网的发展为通过和这些网络相关的数据库实现对正在被处理的数据进行管理提供了良机。传统的数据库,如关系数据库、对象数据库、分级数据库、平面文件等等,可以被用来检索用于应用的信息。这些数据库将具有持久存储的能力,即数据存储是独立于应用状态的。对于面向对象的软件,用于对通过存储系统发生的事务处理进行管理的软件必须保持所有持久对象的事务处理状态。
图1是一种持久结构(persistent framework)的简化的示意图。数据库100包含列表形式的数据,例如数据库表102。数据库表102包含多个域。例如,对于一种销售应用,数据库表102的域可能包含标识号、产品号、产品描述等等。因为客户可能正在定购产品并且改变被保存在持久结构中的现有的订单,所以必须按照一种有序的方式来对该事务处理进行管理。表104仅起到举例说明的作用,并且本领域的技术人员可以理解,应用所使用的数据来自由该应用创建的持久对象。对象106a-106n与数据库表102的相应的行相关联。例如,客户108可以通过修改109来改变先前定购的项目,该修改109被相应的持久对象(即对象1106a)捕获。然后,被对象1106a捕获的该修改被提交到数据库表102,从而更新数据库表中相应的订单。
在某个时刻,存储在数据库100中的数据与应用中的数据(由表104示意性地表示)之间会存在差别。对于应用正在使用的数据相对于持久存储中的数据之间的这些差别,一种被普遍采用的管理方法是使用多个高速缓冲存储器和事务处理状态,其中一个单个的高速缓冲存贮器与一个单个的状态相关联。也就是说,每个高速缓冲存储器存储与一个特定事务处理状态对象或属性相关联的持久对象。例如,所有具有旧的不清洁的(old-dirty)状态的对象被存储在一个高速缓冲存储器中,具有旧的清洁的(old-clean)状态的对象被存储在另一个高速缓冲器存储器,依此类推。
多高速缓冲存储器技术的一个缺点是不能支持多线程、多用户等等。例如,由于和一个特定线程相关联的对象被分散到所有的多个高速缓冲存储器中,因此不可能保存由一个特定的线程所做的改变。另外,修改或创造持久对象的顺序未被保持。多高速缓冲存储器技术的另一个缺点是:对一个特定对象所进行的搜索要求对每个高速缓冲存储器都进行搜索,这使得对特定对象所进行的搜索难以实现并且很复杂。
对于应用正在使用的数据相对于持久存储中的数据之间的这些差别,另一种管理方法是使用单个的大高速缓冲存储器。每个持久对象被赋予一个用于其当前事务处理状态的存储附加属性。在前面所提到的技术当中,一个单独的高速缓冲存储器被用于属于相同的事务处理状态的持久对象的每个集合。与多高速缓冲存储器技术一样,使用单个的大高速缓冲存储器也不能保存一个特定线程的修改。另外,必须对整个高速缓冲存储器进行扫描才能确定对一个提交操作或回卷操作所采取的适合的动作。
因此,需要解决现有技术的问题从而提供一种用于对持久结构中的事务处理进行有效管理的方法和系统。
发明内容
广泛而言,本发明通过提供一种用于在多用户环境中对持久对象的修改进行管理的方法,从而满足了以上提到的这些需要。应该理解,可以通过多种方式来实现本发明,包括将本发明实现为一种方法、一种系统,或一种设备。下面描述本发明的几种发明实施方案。
在一种实施方案中,提供了一种用于在多线程环境中对和一种持久结构相关的事务处理进行管理的方法。该方法首先将每个单独的线程与一个事件队列相关联。然后,一个事件被添加到和一个相应线程相关的第一事件队列中。该事件与一个持久对象相关。接下来,禁止除该相应线程之外的所有线程对该持久对象进行写访问。然后,在该第一事件队列中的与该持久对象相关的事件得以执行。
在另一种实施方案中,提供了一种用于在多用户环境中保持持久对象的事务处理状态的方法。该方法首先接收一个对存储在主高速缓冲存储器中的持久对象进行修改的请求。然后,将该持久对象从该主高速缓冲存储器复制到与该请求相关的一个事件队列中。接下来,修改后的持久对象和相应的事务处理状态与该持久对象一起被存储到该事件队列中。然后,该修改后的持久对象被写入到主高速缓冲存储器和一个持久存储中。接下来,该持久对象被从该主高速缓冲存储器和该持久存储中移走。
在另一种实施方案中,提供了一种保持可以被多个客户访问的持久对象的事务处理状态的方法。该方法首先将多个客户中的每个客户与一个事件队列相关联。每个事件队列和持久结构的一个单个的高速缓冲存储器相关联。然后,请求将一个持久对象修改为一个修改后的持久对象。该持久对象被存储在单个的高速缓冲存储器中。接下来,按照一种方式将该修改后的持久对象、一个事务处理状态指示符和该持久对象的拷贝存储到一个相应的事件队列中,从而保持对存储在各自的事件队列中的附加持久对象所进行的连续修改的顺序。然后,禁止该多个客户中的其他客户对存储在该单个的高速缓冲存储器中的持久对象进行写访问。接下来,相应事件队列中的修改后的对象被提交到单个的高速缓冲存储器。
在另一种实施方案中,提供了一种被配置成在计算机系统上被执行的计算机程序产品。该计算机程序产品包含用于使每个单独的线程与一个事件队列相关联的程序指令。该计算机程序产品还包含用于将一个事件添加到和相应线程相关联的一个第一事件队列中的程序指令。这里,该事件与一个持久对象相关联。该计算机程序产品另外还包含用于禁止除了该相应线程之外的所有线程对该持久对象进行写访问的程序指令,和用于执行该第一事件队列中与该持久对象相关联的事件的程序指令。
在另一种实施方案中,提供了一种具有程序指令的计算机可读取介质,这些程序指令用于保持可以被多个客户访问的持久对象的事务处理状态。该计算机可读取介质包含用于将多个客户中的每个客户与一个事件队列相关联的程序指令,其中每个事件和该持久结构的一个持久对象相关联。提供了用于请求将一个持久对象修改为一个修改后的持久对象的程序指令。该持久对象被存储在单个的高速缓冲存储器中。该计算机可读取介质包含这样一种程序指令,它用于按照一种方式将该修改后的持久对象、事务处理状态指示符和该持久对象的拷贝存储到一个相应的事件队列中,从而保持对存储在相应事件队列中的附加持久对象进行的连续修改的顺序。提供了禁止多个客户中的其他客户对存储在该单个高速缓冲存储器中的持久对象进行写访问的程序指令。还提供了用于将相应事件队列中的修改后的对象提交到单个的高速缓冲存储器中的程序指令。
在另一种实施方案中,提供了一种可以保持持久对象的事务处理状态的系统。该系统包含一个持久存储单元。该系统还包含与该持久存储单元进行通信的服务器。该服务器包含至少一个中央处理单元(CPU)。该CPU包含一个被配置用来存储持久对象的主高速缓冲存储器。该主高速缓冲存储器与多个事件队列相关联,其中每个事件队列与一个单独的线程相关联。每个事件队列进一步被配置用来存储数据,这些数据包括来自主高速缓冲存储器的每个持久对象的拷贝、对应于持久对象的相应拷贝的修改,以及对应于持久对象的每个拷贝的事务处理状态。使事件队列可以允许执行存储在其中的修改的至少一个子集。
结合附图,对本发明原理采用举例说明的方式,通过下面的详细描述可以清楚地显示出本发明的其它方面和优势。
附图简述
通过下面结合附图的详细描述,本发明将会很容易被理解,并且同样的参考数字代表同样的结构元件。
图1是一种持久结构的简化示意图。
图2是一种系统的简化示意图,该系统被配置用来根据本发明的一种实施方案对持久对象进行管理。
图3A是系统的服务器端的更加详细的图,其中该系统是图2中被配置用来管理持久对象的系统。
图3B是举例说明根据本发明的一种实施方案用于对在图3A中被添加的持久对象的修改进行管理的技术的示意图。
图4A是举例说明根据本发明的一种实施方案,当添加一个新值的时候,包含在事件队列的块中的数据的框图。
图4B是举例说明根据本发明的一种实施方案,包含在事件队列的块中、用于修改现有值的数据的框图。
图5A到5H的示意图举例说明了根据本发明的一种实施方案用于处理对持久结构的持久对象的修改的管理技术。
图6是根据本发明的一种实施方案,用于在多程环境中对和持久结构相关联的事务处理进行管理的方法操作的流程图。
图7是根据本发明的一种实施方案,用于保持可以被多个客户访问的持久对象的事务处理状态的方法操作的流程图。
具体实施方式
本发明描述了一种用于管理持久存储结构的持久对象的系统和方法。但是,对于本领域的技术人员来说很明显的是,可以在没有这些特定的细节中的一些细节或所有这些特定的细节的情况下实施本发明。在其它的情况下,为了不给本发明造成不必要的模糊,就没有对熟知的方法操作进行详细的描述。图1已经在“发明背景”一节中得以描述。这里所使用的术语“大约”指参考值的+/-10%。
本发明的实施方案提供了一种用于管理持久存储的方法和装置,其中可由多个用户在多线程环境中对持久对象进行修改,例如改变、添加、或者删除。该管理技术使用单个的高速缓冲存储器来存储已经被从持久存储机制中读取的持久对象,其中该单个的高速缓冲存储器又被称作主高速缓冲存储器。在一种实施方案中,使用一种最近使用的(MRU)方法来管理单个高速缓冲存储器中的持久对象数量。也就是说,当单个的高速缓冲存储器接近它的存储容量时,最近使用的持久对象被保留在单个的高速缓冲存储器中,而较老的持久对象被转移到持久存储机制中。示例性的持久存储机制包含关系数据库、对象数据库、分级数据库、平面文件等等。一个事件队列被用来存储每个持久对象的事务处理状态和持久对象被添加、删除或者改变的顺序。在一种多线程环境中,对持久对象执行修改的每个线程和一个单独的事件队列相关联,其中每个线程又被称作一个对话。因此,通过使用事件队列使得事务处理状态从该单个高速缓冲存储器中分离出来。
该管理技术还包含禁止对一个正在被修改的对象进行写访问的能力。在一种实施方案中,每当一个对话添加、改变或者删除持久对象的时候,就向主存储器或持久存储机制中的该持久对象加锁,由此来实现禁止对一个正在被修改的对象进行写访问。相应地,使得向持久对象加锁的对话独具对该持久对象进行读/写访问的权力,而其它对话对该持久对象只能进行只读访问。当然,在主高速缓冲存储器中被加锁的持久对象一直保持在主高速缓冲存储器中,直到对该持久对象加锁的对话执行了提交或回卷操作。在该提交或回卷操作之后,该锁被从该持久对象上移走,以此允许其它对话对该对象进行修改。应该理解,术语对话、线程,以及客户在这里是可以被互换使用的。
图2是根据本发明的一种实施方案、被配置用来管理持久对象的一种系统的简化示意图。客户1 110a到客户n 110n通过分布式网络112(如互联网)与服务器114进行通信。服务器114包含中央处理单元(CPU)116。在一种实施方案中,服务器114包含多个CPU。CPU116被配置用来执行在这里所讨论的用于持久对象的管理技术。服务器114与数据库118进行通信。数据库118被配置用来提供用于持久对象的持久存储。例如,数据库118可以是关系数据库、对象数据库、分级数据库、平面文件等等。应该理解,参考图2所述的系统可以包含企业资源计划(ERP)系统,该系统用于销售系统、金融系统、会计系统、人力资源规划或使用持久结构的商业组织的任意其它功能。
在一种实施方案中,客户1-n 110a-110n被配置用来向服务器114发送销售订单。相应地,在某个时刻在数据库118中的数据和服务器114上被执行的应用正在对其进行处理的数据之间会存在差异。例如,一个客户可能定购了数据库118中的一定数量的产品。在这些产品被交付之前,该客户可能决定增加所定购的产品数量。因此,尽管通过应用在服务器114上对最初的订单进行了增加,但是直到对最初订单的修改被提交到数据库118的时候,该修改才在该数据库中被捕获。应该理解,对于图的所有讨论中的销售应用的引用仅用于举例说明而非限制本发明,这是因为该管理方案可以被应用到任意合适的应用。
图3A是系统服务器端的更加详细的图,其中的系统是图2中被配置用来管理持久对象的系统。客户1-n 110a-110n通过网络112向服务器114发送销售数据。在一个特殊的例子中,客户2110b向服务器114发送订单A。订单A被存储在事件队列2 126b和主高速缓冲存储器124中。在一种实施方案中,事件队列2 126b被配置为一个堆栈。由客户2承担增加订单A的事件会导致订单A的拷贝被存储到数据库118。应该理解,客户1-n 110a-110n中的每个客户分别和事件队列126a-126n相关联。也就是说,在事件队列和客户之间存在一种一一对应的关系,每个客户和一个单独的事件队列相关联。
图3B的示意图举例说明了根据本发明的一种实施方案,用于对在图3A中被添加的持久对象的修改进行管理的技术。应该理解,图3B是图3A的扩展,这是因为图3A的被添加的销售订单A在图3B中被修改。这里,客户110a发送数据从而将订单A修改为订单A’。例如,创建订单A的一方可能想要改变被交付的销售产品的数量、交付日期,或者与销售数据相关联的任意其它数据。修改数据(订单A’)被存储在事件队列126a的块128中。这里,一旦在事件队列126a中接收到相应数据,就向主高速缓冲存储器124中的订单A加锁并且订单A’可以被复制到主高速缓冲存储器从而替代订单A。应该理解,订单A可以被存储到持久存储机制中,即数据库118,而不是被存储到主高速缓冲存储器124中,特别是如果订单A是一个较老的持久对象并且MRU技术被用来管理主高速缓冲存储器124。如果订单A没有被存储在主高速缓冲存储器124中,那么来自数据库118的订单A的拷贝会被放到该主高速缓冲存储器中。在一种实施方案中,当订单A被复制到主高速缓冲存储器124中的时候在订单A上加锁。当事件队列126a的块128的数据提交时,订单A上的锁被移走,并且在主高速缓冲存储器124和/或数据库118中订单A被订单A’代替。应该理解,每个事件队列提供了存储在该事件队列中的事件的时间顺序。在一种实施方案中,连续的修改被添加到每个事件队列126a-126n的底部从而保持事件的顺序。因此,在较早时候被添加的事件更加接近事件队列的顶部,而在较晚时候被添加的事件更加接近事件队列的底部。
图4A是举例说明根据本发明的一种实施方案,当添加一个新值的时候,包含在事件队列中块的数据的框图。这里,块130中包含识别订单A为新事件的事务处理状态指示符和订单A的值,其中订单A的值即为参考图3A与订单A相关联的数据。应该理解,使事务处理状态指示符和数据联系到一起并且通过使每个客户与一个单独的事件队列相关联,可以允许这里所描述的管理技术以一种有效的和有序的方式维护持久对象。也就是说,事务处理状态并不被存储在主高速缓冲存储器中,而是被存储在相应的事件队列中,该相应的事件队列与一个特定的用户相关联。另外,一旦一个客户提交或回卷一个事务处理,仅对与该客户相关联的事件队列进行扫描,从而更新主高速缓冲存储器和持久存储。因此,用于一个提交或回卷操作所上载的数据量被极大地减小。
图4B是举例说明根据本发明的一种实施方案,包含在用于修改现有值的事件队列的块中的数据的框图。参考图3B,块128包含一个事务处理状态、用于订单A’的数据,以及用于订单A的数据,其中由订单A’对订单A的数据进行更新。本领域的技术人员可以理解,可以对事务处理状态进行配置以便涵盖任意类型的事务处理,如添加事务处理、改变事务处理,或者删除事务处理。示例性的事务处理状态包含新的清洁的、新的不清洁的、新的删除、旧的清洁的、旧的不清洁的、旧的删除,或者用于识别一种事务处理状态的任意其它合适的指示符。事务处理状态指示发生提交或回卷操作时所要求的动作。如在图4B中举例说明的,用于最初的订单A的数据和用于修改后的订单A’的数据都被包含在内,因此,如果在进行回卷操作的情况下需要用于最初的订单A的数据的话,可以很容易地获得用于最初的订单A的该数据。另外,在这种配置之下,搜索也被简化。
图5A到5H的示意图举例说明根据本发明的一种实施方案,用于处理对持久结构的持久对象的修改的管理技术。图5A举例说明了具有主高速缓冲存储器144和事件队列1 142a到事件队列N 142n的持久结构146。事件队列1 142a和对话1 140a相关联,而事件队列N 142n和对话N 140n相关联。应该理解,对话1 140a到对话N 140n可以代表线程或客户。相应地,持久结构146代表服务器端,而对话1 140a到对话n 140n代表客户端。对于本领域的技术人员来说很明显的是,客户端通过一个网络与服务器端进行通信。而且,对话1 140a到对话N 140n可以分别和图2的客户1 110a到客户n 110n相关联。如举例说明的那样,每个对话和一个单个的事件队列相关联。持久存储148也被包含在持久结构146中。如上面所提到的,持久存储148可以被配置为一个数据库,如关系数据库、分级数据库、对象数据库等等。
图5B代表了一个示意图,其中添加一个新的持久对象。也就是说,在这里添加了一个原来并不在持久存储148中的持久对象。这里,对话1 140a被用来向事件队列1 142a添加事件对象A。当新的持久对象A被添加的时候,该对象被添加到主高速缓冲存储器144。在一种实施方案中,如果在发生一个添加事件的时候相关的事件队列被填满了,那么最老的事件就被保存到持久存储并且被从该事件队列中移走。可替换地,最后的改变被丢弃。图5C是举例说明当删除对象A时持久机构的瞬时状态的示意图。这里,图5C代表持久结构在提交该删除事件之前的状态。通过对话1 140a,事件队列1 142a接收到一个删除事件。应该理解,该删除事件包含被删除对象的一个拷贝,该被删除的对象即为对象A。另外,给相应的对象(对象A)加锁,这样另一个对话不能对和该删除事件相关联的主高速缓冲存储器中的对象进行写访问。应该理解,在一个提交操作之后,对象A将被从主高速缓冲存储器和事件队列1 142a中删除。
图5D举例说明了在更新一个对象之后,但在提交该更新之前时持久结构的示意图。这里,对话1 140a被用来向持久存储148中的对象A提供一个更新。相应地,一个更新事件被添加到事件队列1 142a中,事件队列1 142a具有对象A、对象A’和相应的事务处理状态。在一种实施方案中,修改后的对象的值在主高速缓冲存储器中被更新。在另一种实施方案中,如果对象并不存在于主高速缓冲存储器中,那么它的新值被添加到主高速缓冲存储器中。本领域的技术人员可以理解,依赖于连接速度、存储器资源等等,持久对象可以被从持久存储148或主高速缓冲存储器144中读取。根据本发明的一种实施方案,通过向相应的事件队列的末端添加事件来维持被更新的事件的顺序。因此,在这种实施方案中,用于事件队列1 142a的被更新的事件被添加到该事件队列的末端。应该理解,事件队列1 142a包含持久对象的旧值和更新后的值。本领域的技术人员可以理解,在事件队列中同时具有旧值和更新后的值将会允许处理回卷操作和提交操作。在一种实施方案中,只要对象同时出现在事件队列142和主高速缓冲存储器144中,就对在主高速缓冲存储器中的相应对象加锁。
图5E举例说明了根据本发明的一种实施方案,在用于对话1 140a的对话提交之前持久结构的示例性状态。与对话1 140a相关联的事件队列1 142a包含要对主高速缓冲存储器144或者持久存储148中的持久对象所作的多个修改。这里,事件队列1 142a包含这样一些修改:添加事件对象A,更新事件对象A’,以及删除对象B。持久对象A’、C、B和D都存在于主高速缓冲存储器144中。持久对象B和D存在于持久存储148中。在一种实施方案中,用于添加事件对象A和更加事件对象A’的修改可以被合并在事件队列1 142a中,如块150所举例说明的那样,以便节省存储空间。应该理解,为了维持和每个持久对象相关联的状态,主高速缓冲存储器144中的持久对象可以被加锁。在一种实施方案中,如果在持久结构的事件队列中有相关的活动发生,例如对事件队列的修改还没有被提交,那么主高速缓冲存储器144的持久对象被加锁。图5F举例说明了在图5E的用于对话1的对话提交之后持久结构的状态。在一种实施方案中,对话提交将由线程所做的所有改变都保存到相应的持久对象中。如下面所描述的那样,一个对话提交可以被配置为部分提交或回卷。也就是说,只有用于事件队列中的一个特定状态或对象的事务处理被提交或回卷。在一种实施方案中,对话提交操作贯穿整个事件队列,从起点开始,并且将改变写入持久存储机制。这里,一旦事件被写入,它就被从相应的事件队列移走。另外,加在相应于该事件的持久对象上的锁也被移走。因此,在图5F中,对象A’保持在主高速缓冲存储器144中,而在用于对话1的对话提交之后对象B被从主高速缓冲存储器144和持久存储148中删除。如可以看到的,然后,事件队列1 142a被从先于该对话提交的每个事件中清除。
图5G举例说明了根据本发明的一种实施方案,在用于对话1的对话回卷之前的持久结构的状态。这里,事件队列1 142a包含以下这些修改:添加事件对象A、更新事件对象E’,以及删除事件对象B。图5H举例说明了完成用于对话1的对话回卷时图5G的持久结构。应该理解,对话回卷解除了对持久对象所作的所有改变并且回复到持久存储机制中存储的持久对象的值。与对话提交操作相似,对话回卷可以贯穿整个事件队列,从末端开始,并且检查每个事件对象。因此,如果事件是删除,那么就简单地将事件对象从事件队列中移走。但是,如果事件是更新,那么相应持久对象的旧值被存储在主高速缓冲存储器中。另外,如果事件是添加,那么事件对象被从事件队列和主高速缓冲存储器中移走。相应地,图5H显示对象A和对象E’已经被从主高速缓冲存储器144中移走。因为对象E’的更新被回卷,所以对象E已经被恢复到主高速缓冲存储器114中。先前在事件队列1 142a中用于对象B的删除事件已经被从事件队列1中移走。
图6是根据本发明的一种实施方案,用于在多线程环境中对和持久结构相关联的事务处理进行管理的方法操作的流程图。该方法以操作160作为开始,其中每个单个的线程都与一个事件队列相关联。如参考图3A和3B所描述的那样,每个事件队列与一个单个的线程相关联。该单个的线程与一个客户相关联。另外,该事件队列被配置,以维护从相应客户接收到的事件的时间顺序。在一种实施方案中,事件队列为被保持在存储器中的堆栈。然后该方法前进到操作162,其中一个事件被添加到与相应线程相关联的一个第一事件队列中。这里,如此处所述的那样,事件可以是修改、添加或者删除。可以通过一种分布式网络(例如互联网)将事件从客户发送到事件队列。应该理解,这里所使用的事件是指一个事务处理。与持久对象相关联的事务处理状态被包含到事件的发送当中,其中该事件相关于该持久对象。如果事件是对持久对象的修改或删除,那么最初的持久对象也被包含在该发送当中。在一种实施方案中,用于一个特定事件队列的每个连续事件被添加到该特定事件队列的底部以维护事件的顺序。
然后图6的方法前进到操作164,其中禁止除了与该第一事件队列相关联的该相应线程之外的所有线程对该持久对象进行写访问,其中该事件与该持久对象有关。这里,对该持久对象加锁,这样其它的线程对该持久对象可以进行读访问而不能进行写访问。因此,对于一个如上述那样正在被修改的销售对象来说,发起该修改的客户可以对相应持久对象进行读访问和写访问。但是,其余的客户仅被提供对该持久对象进行读访问的权力,这是因为加在该持久对象上的锁阻止了其余的客户对该持久对象的写访问。
然后,图6的方法进行到操作166,其中和该持久对象相关联的事件得以执行。也就是说,添加、修改、删除等等事件按照参考图5A-5H的上述方式得以执行。在一种实施方案中,一个提交操作可以启动事件的执行。该提交操作可以被配置从而执行用于一个相应线程的事件队列中的所有事件。可替换地,该提交操作可以被配置从而提交用于相应线程的事件队列中的一部分事件。例如,可以提交和一个特定的事务处理状态或一个特定的持久对象相关联的事件。在另一种实施方案中,一个回卷操作被执行,该回卷操作取消对一个持久对象的所有改变并且恢复存储在持久对象机制中的持久对象的值。在这里又一次,回卷操作可以被配置从而回卷事件队列中的一部分事件或全部事件。
图7是根据本发明的一种实施方案用于保持可以被多个客户访问的持久对象的事务处理状态的方法操作的流程图。该方法从操作170开始,其中每个客户与一个单独的事件队列相关联。因此,如参考图5A-5H所示的那样,在事件队列和客户之间存在一一对应的关系。在一种实施方案中,事件队列是一个被分配给一个特定客户的堆栈并且客户事务处理被记录在该堆栈中,以便保持事务处理的顺序。然后该方法前进到操作172,在此要求对持久对象进行修改。例如,如上述的那样,一个客户可以请求对以前输入的销售订单进行增加操作。这里,如参考图2、3A和3B所讨论的那样,通过网络将该请求发送到服务器。
然后图7的方法前进到操作174,其中将修改后的持久对象、事务处理状态指示符和持久对象的拷贝存储到相应事件队列中。,如上所述,数据以这样一种方式存储,该方式可以保持对存储在事件队列中的对象进行修改的顺序,如每个修改可以进入到事件队列的底部。应该理解,事务处理状态指示符指出自从持久对象最后一次被从持久对象存储机制中读出之后该持久对象是否已经被修改。然后该方法前进到操作176,其中禁止对存储在高速缓冲存储器或持久存储中的持久对象进行写访问。在一种实施方案中,对高速缓冲存储器或持久存储中的持久对象加锁从而仅允许对该持久对象进行读访问。因此,要求对被加锁的持久对象进行访问的任意其他的客户、线程、对话等等仅被提供了对数据进行读访问的权力而没有被提供对数据进行写访问的权力。在另一种实施方案中,如果持久对象被加锁,该对象一直保持在主高速缓冲存储器中,直到给该对象加锁的对话执行了提交或回卷操作。在该提交或回卷操作之后,将该锁移走并且允许其它的对话对该对象执行修改。
仍然参考图7,该方法前进到操作178,其中相应事件队列中的修改后的持久对象被提交到主高速缓冲存储器。这里,如果最初的对象被改变了,那么改变后的对象被存储在高速缓冲存储器中并且最初的对象被从高速缓冲存储器中移走。如果该修改是要删除最初的对象,那么该最初的对象被从高速缓冲存储器中移走。当然,如果该修改是要添加一个新的对象,那么该新的对象被存储到高速缓冲存储器中。应该理解,可用来替换提交操作的是回卷操作,从本质上说回卷操作是使和相应的事件队列相关联的对象重新回到它被修改之前的状态,如参考在图5A-5H中图解的例子所讨论的那样。应该理解,通过将最初的对象和修改后的对象包含进事件队列中,由于所需要的数据就在事件队列中,因此回卷操作易于被执行。而且,提交操作和回卷操作可以被配置从而用于整个事件队列,即一个原子过程。可替换地,提交操作和回卷操作可以被配置从而用于执行事件队列的一部分,即部分提交或部分回卷。该部分提交或部分回卷可以基于一种事务处理状态或事务处理状态的组合,如所有旧的不清洁的状态等等,或者基于一个特定的对象或者对象的组合。
总而言之,上述发明考虑到了一种用于在和一种持久结构相关的多用户环境中管理对持久对象的修改的方法和系统。考虑到持久结构中只有一个单个的高速缓冲存储器,所以每个客户与一个单独的事件队列相关联。由于只有一个高速缓冲存储器,因此查寻或搜索一个持久对象被简化。另外,由于和事件队列相关联的持久对象被加锁,对持久对象的修改仅存在于一个事件队列中,由此对持久对象的修改的搜索得以简化。将事务处理状态指示符和最初的持久对象与修改后的持久对象一起包含进事件队列中,使得可以简化提交操作和回卷操作,这是因为所有需要的数据都在事件队列的一个单个的块中。因此,基于这里所描述的管理技术,可以支持用于单个线程的提交和回卷。修改的顺序(其中修改也被称作事件)在每个事件队列中被保存,便于根据该顺序(即最靠前的x个修改,最靠后的y个修改等等)的部分提交或回卷。本领域的技术人员可以理解,可以设计一种包含逻辑门或者有限状态机的半导体芯片来提供上述的功能。例如,一种硬件描述语言(HDL)可以被用来综合固件和逻辑门的布局,以提供这里所描述的必要的功能。
考虑到上述实施方案,应该理解本发明可以使用各种由计算机实施的操作,这些操作涉及存储在计算机系统中的数据。这些操作是那些要求对物理量进行物理事务处理的操作。通常,尽管并不必需,但是这些量所具有的形式为电信号或磁信号,他们可以被存储、被转移、被合并、被比较以及被执行其它操作。而且,所执行的事务处理经常被称作以下这些术语,例如生成、识别、确定,或者比较。
也可以使用计算机可读取介质上的计算机可读取代码来实现本发明。该计算机可读取介质是任意数据存储设备,它可以存储此后由计算机系统读取的数据。该计算机可读取介质还包含一种电磁载波,并且计算机代码在其中得以实现。计算机可读取介质的例子包含硬盘驱动器、网络连接存储器(NAS)、只读存储器、随机访问存储器、CD-ROM、CD-R、CD-RW、磁带,以及其它的光学和非光学的数据存储设备。该计算机可读取介质还可以被分布在一个通过网络连接起来的计算机系统上,以便按照一种分布方式来存储和执行计算机可读取代码。
尽管为了使本发明更清楚地被理解,已经对本发明进行了详细的描述,但是很明显,在所附的权利要求的范围之内可以做出某些改变和修改。所以,本实施方案应被视为示例性的而非限制性的,并且本发明并不限于这里所给出的详细描述,而是可以在所附权利要求的范围和等价物之内进行修改。

Claims (31)

1.一种用于在多线程环境中对和持久结构相关联的事务处理进行管理的方法,该方法包含:
将每个单独的线程与一个事件队列相关联;
向和相应线程相关联的第一事件队列添加一个事件,该事件和一个持久对象相关联;
禁止除该相应线程之外的所有线程对该持久对象进行写访问;以及
执行在该第一事件队列中和该持久对象相关联的事件。
2.如权利要求1所述的方法,其中该事件是被从这样一个组中选择出来的,该组包括删除持久对象、改变持久对象或者添加一个新的持久对象。
3.如权利要求1所述的方法,其中向和相应线程相关联的第一事件队列添加一个事件的方法操作包括,
在该第一事件队列中保持事件的顺序,其中该事件和一个持久对象相关联。
4.如权利要求1所述的方法,其中禁止除该相应线程之外的所有线程对该持久对象进行写访问的方法操作包含,
给高速缓冲存储器中和每个事件队列相关联的该持久对象加锁。
5.如权利要求1所述的方法,进一步包含:
向该第一事件队列添加多个事件;以及
执行该多个事件中的一部分事件。
6.一种用于在多用户环境中维持持久对象的事务处理状态的方法,该方法包含:
接收对存储在主高速缓冲存储器中的持久对象进行修改的请求;
将该持久对象从该主高速缓冲存储器复制到一个和该请求相关的事件队列中;
将修改后的持久对象和相应的事务处理状态与该持久对象一起存储到事件队列中;
将该修改后的持久对象写到该主高速缓冲存储器和一个持久存储中;以及
将该持久对象从该主高速缓冲存储器和该持久存储中移走。
7.如权利要求6所述的方法,进一步包含:
当该持久对象被从该主高速缓冲存储器复制到该事件队列中的时候,禁止对存储在该主高速缓冲存储器中的该持久对象进行写访问。
8.如权利要求6所述的方法,其中多用户环境中的每个用户和一个单独的事件队列相关联。
9.如权利要求6所述的方法,进一步包含:
通过将和该事件队列相关的每个连续请求添加到该事件队列的底部,从而保持对修改该持久对象的请求的接收顺序。
10.如权利要求6所述的方法,其中该事件队列对应于多用户环境中的一个单个的用户。
11.一种用于保持可以被多个客户访问的持久对象的事务处理状态的方法,该方法包含:
将多个客户中的每个客户与一个事件队列相关联,其中每个事件队列和持久结构的一个单个的高速缓冲存储器相关联;
接收将持久对象修改为修改后的持久对象的请求,其中该持久对象被存储在该单个的高速缓冲存储器中;
按照一种方式在相应事件队列中存储修改后的持久对象、事务处理状态指示符和该持久对象的拷贝,从而保持对存储在相应事件队列中的附加持久对象所进行的连续修改的顺序;
禁止多个客户中的其它客户对存储在该单个的高速缓冲存储器中的持久对象进行写访问;以及
向该单个的高速缓冲存储器提交相应事件队列中的修改后的持久对象。
12.如权利要求11所述的方法,其中将对存储在相应事件队列中的附加持久对象所进行的连续修改的一部分修改与该修改后的持久对象一起提交到该单个的高速缓冲存储器中。
13.如权利要求12所述的方法,其中通过一个通用事务处理状态指示符来识别该部分修改。
14.如权利要求11所述的方法,进一步包含:
防止该相应事件队列中的修改后的持久对象被存储到任意其它事件队列中。
15.如权利要求11所述的方法,进一步包含:
在提交该修改后的持久对象之后,将该修改后的持久对象和该持久对象从该相应事件队列中移走,以及
用该修改后的持久对象来替换该单个的高速缓冲存储器中的该持久对象,其中该修改后的持久对象可以由多个客户进行写访问和读访问。
16.一种被配置用来在计算机系统上执行的计算机程序产品,该计算机程序产品包含:
用于使每个单独的线程和一个事件队列相关联的程序指令;
用于向和相应线程相关联的第一事件队列添加一个事件的程序指令,其中该事件和一个持久对象相关联;
用于禁止除该相应线程之外的所有线程对该持久对象进行写访问的程序指令;以及
用于执行在该第一事件队列中和该持久对象相关联的事件的程序指令。
17.如权利要求16所述的计算机程序产品,其中该事件是从这样一个组中选择出来的,该组包括删除持久对象、改变持久对象或者添加一个新的持久对象。
18.如权利要求16所述的计算机程序产品,其中用于向和相应线程相关的第一事件队列添加一个事件的该程序指令包含,
用于保持该第一事件队列中的事件顺序的程序指令,其中该事件和一个持久对象相关。
19.如权利要求16所述的计算机程序产品,其中用于禁止除该相应线程之外的所有线程对该持久对象进行写访问的程序指令包含,
用于给高速缓冲存储器中和每个事件队列相关联的持久对象加锁的程序指令。
20.如权利要求16所述的计算机程序产品,进一步包含:
用于向该第一事件队列添加多个事件的程序指令;以及
用于执行该多个事件中的一部分事件的程序指令。
21.一种具有程序指令的计算机可读取介质,其中该程序指令用于维持可以被多个客户访问的持久对象的事务处理状态,并且该计算机可读取介质包含:
用于使多个客户中的每个客户与一个事件队列相关联的程序指令,其中每个事件队列和持久结构的一个单个的高速缓冲存储器相关联;
用于请求将一个持久对象修改为一个修改后的持久对象的程序指令,其中该持久对象被存储在该单个的高速缓冲存储器中;
用于按照一种方式在相应事件队列中存储修改后的持久对象、事务处理状态指示符和该持久对象的拷贝,从而保持对存储在相应事件队列中的附加持久对象所进行的连续修改的顺序的程序指令;
用于禁止对存储在该单个的高速缓冲存储器中的持久对象进行写访问的程序指令;以及
用于向该单个的高速缓冲存储器提交相应事件队列中的修改后的持久对象的程序指令。
22.如权利要求21所述的计算机可读取介质,进一步包含,
用于将对存储在相应事件队列中的附加持久对象所进行的连续修改的一部分修改与该修改后的持久对象一起提交到该单个的高速缓冲存储器中的程序指令。
23.如权利要求22所述的计算机可读取介质,其中通过一个通用事务处理状态指示符来识别该部分修改。
24.如权利要求21所述的计算机可读取介质,进一步包含:
用于防止该相应事件队列中的修改后的持久对象被存储到任意其它的事件队列中的程序指令。
25.如权利要求21所述的计算机可读取介质,进一步包含:
用于在提交该修改后的持久对象之后,将该修改后的持久对象和该持久对象从该相应事件队列中移走的程序指令,以及
用于使用该修改后的持久对象来替换该单个的高速缓冲存储器中的该持久对象的程序指令,其中该修改后的持久对象可以由多个客户进行写访问和读访问。
26.一种可以保持持久对象的事务处理状态的系统,该系统包含:
一个持久存储单元;
一个与该持久存储单元进行通信的服务器,该服务器包含至少一个中央处理单元(CPU),该至少一个CPU包含被配置用来存储该持久对象的一个主高速缓冲存储器,该主高速缓冲存储器和多个事件队列相关联,该多个事件队列中的每个事件队列和一个单独线程相关联,该多个事件队列中的每个事件队列进一步被配置用来存储数据,该数据包含来自该主高速缓冲存储器的每个持久对象的拷贝、对应于该持久对象的相应拷贝的修改,以及对应于该持久对象的每个拷贝的事务处理状态,其中使得一个单个的事件队列可以允许执行存储在其中的修改的至少一个子集。
27.如权利要求26所述的系统,其中每个单独的线程和一个客户相关联。
28.如权利要求26所述的系统,其中该持久存储单元是从由关系数据库、分级数据库和对象数据库组成的组中选择出来的数据库。
29.如权利要求26所述的系统,其中该主高速缓冲存储器被配置用来在持久对象之一被复制到该多个事件队列中的一个事件队列的时候,禁止对该持久对象的写访问。
30.如权利要求26所述的系统,其中向该持久对象中的一个持久对象加锁,从而禁止写访问。
31.如权利要求26所述的系统,其中基于一个事务处理状态和一个特定的持久对象来执行存储在事件队列中的修改的至少一个子集。
CNB2004100029932A 2003-01-27 2004-01-21 在多线程环境中管理和持久结构相关联的事务处理的方法 Expired - Fee Related CN1293501C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/352322 2003-01-27
US10/352,322 US7111001B2 (en) 2003-01-27 2003-01-27 Event driven transaction state management with single cache for persistent framework

Publications (2)

Publication Number Publication Date
CN1517917A true CN1517917A (zh) 2004-08-04
CN1293501C CN1293501C (zh) 2007-01-03

Family

ID=32735941

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100029932A Expired - Fee Related CN1293501C (zh) 2003-01-27 2004-01-21 在多线程环境中管理和持久结构相关联的事务处理的方法

Country Status (3)

Country Link
US (2) US7111001B2 (zh)
JP (1) JP2004227569A (zh)
CN (1) CN1293501C (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117308B (zh) * 2010-01-06 2012-11-14 卓望数码技术(深圳)有限公司 一种数据处理方法和数据处理系统
CN103514112A (zh) * 2012-06-29 2014-01-15 浙江大华技术股份有限公司 一种数据存储方法及系统
CN104123240A (zh) * 2008-01-31 2014-10-29 甲骨文国际公司 用于事务缓存的系统和方法
CN104932946A (zh) * 2009-07-28 2015-09-23 瑞典爱立信有限公司 用于处理电信网络中的事件的设备和方法
CN106155794A (zh) * 2016-07-21 2016-11-23 浙江大华技术股份有限公司 一种应用于多线程系统中的事件分配方法及装置
CN107562891A (zh) * 2017-09-05 2018-01-09 荷花科技(北京)有限公司 数据库操作方法及装置
CN107678856A (zh) * 2017-09-20 2018-02-09 苏宁云商集团股份有限公司 一种处理业务实体中增量信息的方法及装置
CN110109936A (zh) * 2019-05-13 2019-08-09 四川新网银行股份有限公司 一种规避数据库锁等待以及事务合并提交的方法
CN110532067A (zh) * 2018-05-25 2019-12-03 杭州海康威视数字技术股份有限公司 事件处理方法、装置、设备及存储介质

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447852B1 (en) 2003-08-07 2008-11-04 Crossroads Systems, Inc. System and method for message and error reporting for multiple concurrent extended copy commands to a single destination device
US7251708B1 (en) * 2003-08-07 2007-07-31 Crossroads Systems, Inc. System and method for maintaining and reporting a log of multi-threaded backups
US7552294B1 (en) 2003-08-07 2009-06-23 Crossroads Systems, Inc. System and method for processing multiple concurrent extended copy commands to a single destination device
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US20110295842A1 (en) * 2004-08-18 2011-12-01 Google Inc. Applying Scanned Information to Identify Content
US7634517B1 (en) * 2006-02-10 2009-12-15 Google Inc. System and method for dynamically updating a document repository without interrupting concurrent querying
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7814243B2 (en) * 2007-06-01 2010-10-12 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
JP5256685B2 (ja) 2007-10-18 2013-08-07 日本電気株式会社 情報処理装置
US9021503B2 (en) * 2007-11-16 2015-04-28 Microsoft Technology Licensing, Llc Coordinating application state and communication medium state
US8505030B2 (en) * 2007-11-16 2013-08-06 Microsoft Corporation Coordinating resources using a volatile network intermediary
US8719841B2 (en) * 2007-11-16 2014-05-06 Microsoft Corporation Dispatch mechanism for coordinating application and communication medium state
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US9542708B2 (en) * 2008-05-20 2017-01-10 Oracle International Corporation Event server using caching
US7818370B2 (en) * 2008-05-20 2010-10-19 Bea Systems, Inc. Event server using clustering
US8301706B2 (en) 2009-06-15 2012-10-30 Microsoft Corporation Routing of pooled messages via an intermediary
US8726147B1 (en) * 2010-03-12 2014-05-13 Symantec Corporation Systems and methods for restoring web parts in content management systems
US8549538B2 (en) 2010-03-18 2013-10-01 Microsoft Corporation Coordinating communication medium state for subtasks
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8868487B2 (en) * 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8677055B2 (en) 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8250234B2 (en) 2010-04-26 2012-08-21 Microsoft Corporation Hierarchically disassembling messages
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US10089711B2 (en) * 2010-09-03 2018-10-02 Adobe Systems Incorporated Reconstructable digital image cache
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8880485B2 (en) * 2011-03-30 2014-11-04 Sap Se Systems and methods to facilitate multi-threaded data retrieval
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
JP5707348B2 (ja) * 2012-02-10 2015-04-30 日本電信電話株式会社 イベント駆動型処理実行装置およびその動作方法
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US8694961B2 (en) 2012-04-03 2014-04-08 Microsoft Corporation Thread-agile execution of dynamic programming language programs
CN103197958B (zh) * 2013-04-01 2016-08-10 天脉聚源(北京)传媒科技有限公司 一种数据传输方法及系统与转发器设备
US9892177B2 (en) * 2013-07-11 2018-02-13 Salesforce.Com, Inc. Systems and methods for interacting with external content objects
US9524246B2 (en) * 2014-09-10 2016-12-20 International Business Machines Corporation Resetting memory locks in a transactional memory system
KR101848277B1 (ko) * 2016-08-22 2018-05-28 한양대학교 에리카산학협력단 캐시 데이터 제어 장치 및 방법
US10592307B2 (en) * 2016-12-13 2020-03-17 Salesforce.Com, Inc. Multi user threaded executor
US10445322B1 (en) * 2018-11-29 2019-10-15 Capital One Services, Llc Real-time processing of event-based streaming with NoSQL
CN111752911A (zh) * 2020-06-29 2020-10-09 苏州浪潮智能科技有限公司 一种基于Flume的数据传输方法、系统、终端及存储介质
CN112347107A (zh) * 2020-11-11 2021-02-09 Oppo(重庆)智能科技有限公司 数据持久化方法、移动终端及计算机可读存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5632032A (en) * 1994-02-07 1997-05-20 International Business Machines Corporation Cross address space thread control in a multithreaded environment
US5727203A (en) 1995-03-31 1998-03-10 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
US5893077A (en) 1995-08-23 1999-04-06 Microsoft Corporation Method and apparatus for generating and collecting a billing event object within an on-line network
US6000011A (en) * 1996-12-09 1999-12-07 International Business Machines Corporation Multi-entry fully associative transition cache
US6049807A (en) * 1997-09-03 2000-04-11 International Business Machines Corporation Technique for maintaining object integrity during modification of a persistent store of objects
US6263404B1 (en) * 1997-11-21 2001-07-17 International Business Machines Corporation Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6499048B1 (en) * 1998-06-30 2002-12-24 Sun Microsystems, Inc. Control of multiple computer processes using a mutual exclusion primitive ordering mechanism
SE521433C2 (sv) * 1998-07-22 2003-11-04 Ericsson Telefon Ab L M En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas
US6240479B1 (en) * 1998-07-31 2001-05-29 Motorola, Inc. Method and apparatus for transferring data on a split bus in a data processing system
US6377939B1 (en) 1999-05-04 2002-04-23 Metratech Pipelined method and apparatus for processing communication metering data
JP2001035063A (ja) * 1999-07-15 2001-02-09 Kenwood Corp リジューム機能付きの再生装置
US7188344B1 (en) * 1999-12-21 2007-03-06 Unisys Corporation Architecture for a read/write thread lock
US7007279B2 (en) 2000-04-28 2006-02-28 Fujitsu Limited Apparatus for switching an object managing method and a method thereof
IL139628A0 (en) 2000-11-12 2002-02-10 Eci Telecom Ltd Data mirroring restoration in a distributed system
US20020073082A1 (en) 2000-12-12 2002-06-13 Edouard Duvillier System modification processing technique implemented on an information storage and retrieval system
US20020103815A1 (en) 2000-12-12 2002-08-01 Fresher Information Corporation High speed data updates implemented in an information storage and retrieval system
US20020103814A1 (en) 2000-12-12 2002-08-01 Edouard Duvillier High speed, non-log based database recovery technique
US20020073110A1 (en) 2000-12-12 2002-06-13 Edouard Duvillier Version collection technique implemented on an intrinsic versioning information storage and retrieval system
US20020103819A1 (en) 2000-12-12 2002-08-01 Fresher Information Corporation Technique for stabilizing data in a non-log based information storage and retrieval system
US6567905B2 (en) 2001-01-23 2003-05-20 Gemstone Systems, Inc. Generational garbage collector with persistent object cache

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123240A (zh) * 2008-01-31 2014-10-29 甲骨文国际公司 用于事务缓存的系统和方法
CN104123240B (zh) * 2008-01-31 2017-07-28 甲骨文国际公司 用于事务缓存的系统和方法
CN104932946A (zh) * 2009-07-28 2015-09-23 瑞典爱立信有限公司 用于处理电信网络中的事件的设备和方法
CN102117308B (zh) * 2010-01-06 2012-11-14 卓望数码技术(深圳)有限公司 一种数据处理方法和数据处理系统
CN103514112A (zh) * 2012-06-29 2014-01-15 浙江大华技术股份有限公司 一种数据存储方法及系统
CN103514112B (zh) * 2012-06-29 2016-11-02 浙江大华技术股份有限公司 一种数据存储方法及系统
CN106155794A (zh) * 2016-07-21 2016-11-23 浙江大华技术股份有限公司 一种应用于多线程系统中的事件分配方法及装置
CN106155794B (zh) * 2016-07-21 2019-11-19 浙江大华技术股份有限公司 一种应用于多线程系统中的事件分配方法及装置
CN107562891A (zh) * 2017-09-05 2018-01-09 荷花科技(北京)有限公司 数据库操作方法及装置
CN107678856A (zh) * 2017-09-20 2018-02-09 苏宁云商集团股份有限公司 一种处理业务实体中增量信息的方法及装置
CN110532067A (zh) * 2018-05-25 2019-12-03 杭州海康威视数字技术股份有限公司 事件处理方法、装置、设备及存储介质
CN110109936A (zh) * 2019-05-13 2019-08-09 四川新网银行股份有限公司 一种规避数据库锁等待以及事务合并提交的方法

Also Published As

Publication number Publication date
US7444329B2 (en) 2008-10-28
CN1293501C (zh) 2007-01-03
US20060265432A1 (en) 2006-11-23
JP2004227569A (ja) 2004-08-12
US7111001B2 (en) 2006-09-19
US20040148283A1 (en) 2004-07-29

Similar Documents

Publication Publication Date Title
CN1293501C (zh) 在多线程环境中管理和持久结构相关联的事务处理的方法
JP4828102B2 (ja) 自己維持型リアルタイム・データ集約
Santos et al. Real-time data warehouse loading methodology
DE202020005681U1 (de) Tabellen mit Journal in Datenbanksystemen
DE102012216568B4 (de) Scheduling und Managen von Rechentasks mit unterschiedlichen Ausführungsprioritätsstufen
US6772155B1 (en) Looking data in a database system
US7444477B2 (en) System and method for efficiently performing memory intensive computations including a bidirectional synchronization mechanism for maintaining consistency of data
US7590639B1 (en) System and method for ordering a database flush sequence at transaction commit
US20030088625A1 (en) Arbitration of state changes
CN106716409A (zh) 基于查询需求从行存储数据库自适应地构建和更新列存储数据库的方法和系统
CN109828833A (zh) 一种神经网络训练任务的排队系统及其方法
CN103177063A (zh) 用于时间数据聚合的时间滑动操作器
US7653651B1 (en) System and method for transparent persistence management
US8315972B2 (en) Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema
CN106529917A (zh) 一种工作流处理方法和装置
US20070073655A1 (en) Enhancing tables and SQL interaction with queue semantics
CN1996312A (zh) 用于管理海量存储系统的方法和数据处理系统
Santos et al. Optimizing data warehouse loading procedures for enabling useful-time data warehousing
US9177115B2 (en) Data subscription management system
US20160371225A1 (en) Methods for managing a buffer cache and devices thereof
CN107678856B (zh) 一种处理业务实体中增量信息的方法及装置
EP1215590A2 (en) Method and system for scalable, high performance hierarchical storage management
JP6402537B2 (ja) 更新処理プログラム、装置、及び方法
CN109376001A (zh) 一种资源分配的方法及设备
US8156110B1 (en) Rescheduling of modification operations for loading data into a database system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070103

Termination date: 20160121

EXPY Termination of patent right or utility model