CN1293501C - 在多线程环境中管理和持久结构相关联的事务处理的方法 - Google Patents
在多线程环境中管理和持久结构相关联的事务处理的方法 Download PDFInfo
- Publication number
- CN1293501C CN1293501C CNB2004100029932A CN200410002993A CN1293501C CN 1293501 C CN1293501 C CN 1293501C CN B2004100029932 A CNB2004100029932 A CN B2004100029932A CN 200410002993 A CN200410002993 A CN 200410002993A CN 1293501 C CN1293501 C CN 1293501C
- Authority
- CN
- China
- Prior art keywords
- persistent object
- persistent
- event queue
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种用于在多线程环境中对和一种持久结构相关联的事务处理进行管理的方法。该方法首先使每个单个的线程与一个事件队列相关联。然后一个事件被添加到和相应线程相关联的一个第一事件队列中。该事件和一个持久对象相关联。接下来,禁止除该相应线程之外的所有线程对该持久对象进行写访问。然后,执行在该第一事件队列中和该持久对象相关的事件。还提供了可以维持持久对象的事务处理状态的一种计算机可读取介质和系统。
Description
技术领域
本发明大体上涉及信息存储和检索系统并且更特别地涉及一种用于管理正在该信息和检索系统中被处理的数据的方法和系统。
背景技术
电子商务的出现和计算机联网的发展为通过和这些网络相关的数据库实现对正在被处理的数据进行管理提供了良机。传统的数据库,如关系数据库、对象数据库、分级数据库、平面文件等等,可以被用来检索用于应用的信息。这些数据库将具有持久存储的能力,即数据存储是独立于应用状态的。对于面向对象的软件,用于对通过存储系统发生的事务处理进行管理的软件必须保持所有持久对象的事务处理状态。
图1是一种持久结构(persistent framework)的简化的示意图。数据库100包含列表形式的数据,例如数据库表102。数据库表102包含多个域。例如,对于一种销售应用,数据库表102的域可能包含标识号、产品号、产品描述等等。因为客户可能正在定购产品并且改变被保存在持久结构中的现有的订单,所以必须按照一种有序的方式来对该事务处理进行管理。表104仅起到举例说明的作用,并且本领域的技术人员可以理解,应用所使用的数据来自由该应用创建的持久对象。对象106a-106n与数据库表102的相应的行相关联。例如,客户108可以通过修改109来改变先前定购的项目,该修改109被相应的持久对象(即对象1 106a)捕获。然后,被对象1 106a捕获的该修改被提交到数据库表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发送销售数据。在一个特殊的例子中,客户2 110b向服务器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 (16)
1.一种用于在多线程环境中对和持久结构相关联的事务处理进行管理的方法,该方法包含:
将每个单独的线程与一个事件队列相关联;
向和相应线程相关联的第一事件队列添加一个事件,该事件和一个持久对象相关联;
禁止除该相应线程之外的所有线程对该持久对象进行写访问;以及
执行在该第一事件队列中和该持久对象相关联的事件。
2.如权利要求1所述的方法,其中该事件是被从这样一个组中选择出来的,该组包括删除持久对象、改变持久对象或者添加一个新的持久对象。
3.如权利要求1所述的方法,其中向和相应线程相关联的第一事件队列添加一个事件的方法操作包括,
在该第一事件队列中保持事件的顺序,其中该事件和一个持久对象相关联。
4.如权利要求1所述的方法,其中禁止除该相应线程之外的所有线程对该持久对象进行写访问的方法操作包含,
给高速缓冲存储器中和每个事件队列相关联的该持久对象加锁。
5.如权利要求1所述的方法,进一步包含:
向该第一事件队列添加多个事件;以及
执行该多个事件中的一部分事件。
6.一种用于保持可以被多个客户访问的持久对象的事务处理状态的方法,该方法包含:
将多个客户中的每个客户与一个事件队列相关联,其中每个事件队列和持久结构的一个单个的高速缓冲存储器相关联;
接收将持久对象修改为修改后的持久对象的请求,其中该持久对象被存储在该单个的高速缓冲存储器中;
按照一种方式在相应事件队列中存储修改后的持久对象、事务处理状态指示符和该持久对象的拷贝,从而保持对存储在相应事件队列中的附加持久对象所进行的连续修改的顺序;
禁止多个客户中的其它客户对存储在该单个的高速缓冲存储器中的持久对象进行写访问;以及
向该单个的高速缓冲存储器提交相应事件队列中的修改后的持久对象。
7.如权利要求6所述的方法,其中将对存储在相应事件队列中的附加持久对象所进行的连续修改的一部分修改与该修改后的持久对象一起提交到该单个的高速缓冲存储器中。
8.如权利要求7所述的方法,其中通过一个通用事务处理状态指示符来识别该部分修改。
9.如权利要求6所述的方法,进一步包含:
防止该相应事件队列中的修改后的持久对象被存储到任意其它事件队列中。
10.如权利要求6所述的方法,进一步包含:
在提交该修改后的持久对象之后,将该修改后的持久对象和该持久对象从该相应事件队列中移走,以及
用该修改后的持久对象来替换该单个的高速缓冲存储器中的该持久对象,其中该修改后的持久对象可以由多个客户进行写访问和读访问。
11.一种可以保持持久对象的事务处理状态的系统,该系统包含:
一个持久存储单元;
一个与该持久存储单元进行通信的服务器,该服务器包含至少一个中央处理单元(CPU),该至少一个CPU包含被配置用来存储该持久对象的一个主高速缓冲存储器,该主高速缓冲存储器和多个事件队列相关联,该多个事件队列中的每个事件队列和一个单独线程相关联,该多个事件队列中的每个事件队列进一步被配置用来存储数据,该数据包含来自该主高速缓冲存储器的每个持久对象的拷贝、对应于该持久对象的相应拷贝的修改,以及对应于该持久对象的每个拷贝的事务处理状态,其中使得一个单个的事件队列可以允许执行存储在其中的修改的至少一个子集。
12.如权利要求11所述的系统,其中每个单独的线程和一个客户相关联。
13.如权利要求11所述的系统,其中该持久存储单元是从由关系数据库、分级数据库和对象数据库组成的组中选择出来的数据库。
14.如权利要求11所述的系统,其中该主高速缓冲存储器被配置用来在持久对象之一被复制到该多个事件队列中的一个事件队列的时候,禁止对该持久对象的写访问。
15.如权利要求11所述的系统,其中向该持久对象中的一个持久对象加锁,从而禁止写访问。
16.如权利要求11所述的系统,其中基于一个事务处理状态和一个特定的持久对象来执行存储在事件队列中的修改的至少一个子集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/352,322 US7111001B2 (en) | 2003-01-27 | 2003-01-27 | Event driven transaction state management with single cache for persistent framework |
US10/352322 | 2003-01-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1517917A CN1517917A (zh) | 2004-08-04 |
CN1293501C true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109936A (zh) * | 2019-05-13 | 2019-08-09 | 四川新网银行股份有限公司 | 一种规避数据库锁等待以及事务合并提交的方法 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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 | 日本電気株式会社 | 情報処理装置 |
US8719841B2 (en) * | 2007-11-16 | 2014-05-06 | Microsoft Corporation | Dispatch mechanism for coordinating application and communication medium state |
US8505030B2 (en) * | 2007-11-16 | 2013-08-06 | Microsoft Corporation | Coordinating resources using a volatile network intermediary |
US9021503B2 (en) * | 2007-11-16 | 2015-04-28 | Microsoft Technology Licensing, Llc | Coordinating application state and communication medium state |
EP2274676A1 (en) | 2008-01-31 | 2011-01-19 | Oracle International Corporation | System and method for transactional cache |
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 |
CN104932946B (zh) * | 2009-07-28 | 2022-01-25 | 瑞典爱立信有限公司 | 用于处理电信网络中的事件的设备和方法 |
CN102117308B (zh) * | 2010-01-06 | 2012-11-14 | 卓望数码技术(深圳)有限公司 | 一种数据处理方法和数据处理系统 |
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 |
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 |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
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 |
CN103514112B (zh) * | 2012-06-29 | 2016-11-02 | 浙江大华技术股份有限公司 | 一种数据存储方法及系统 |
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 |
CN106155794B (zh) * | 2016-07-21 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种应用于多线程系统中的事件分配方法及装置 |
KR101848277B1 (ko) * | 2016-08-22 | 2018-05-28 | 한양대학교 에리카산학협력단 | 캐시 데이터 제어 장치 및 방법 |
US10592307B2 (en) * | 2016-12-13 | 2020-03-17 | Salesforce.Com, Inc. | Multi user threaded executor |
CN107562891A (zh) * | 2017-09-05 | 2018-01-09 | 荷花科技(北京)有限公司 | 数据库操作方法及装置 |
CN107678856B (zh) * | 2017-09-20 | 2022-04-05 | 苏宁易购集团股份有限公司 | 一种处理业务实体中增量信息的方法及装置 |
CN110532067A (zh) * | 2018-05-25 | 2019-12-03 | 杭州海康威视数字技术股份有限公司 | 事件处理方法、装置、设备及存储介质 |
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的数据传输方法、系统、终端及存储介质 |
CN112347107B (zh) * | 2020-11-11 | 2024-07-26 | Oppo(重庆)智能科技有限公司 | 数据持久化方法、移动终端及计算机可读存储介质 |
Citations (4)
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 |
CN1245920A (zh) * | 1998-07-31 | 2000-03-01 | 摩托罗拉公司 | 用于在数据处理系统中执行事务处理的方法和设备 |
JP2001035063A (ja) * | 1999-07-15 | 2001-02-09 | Kenwood Corp | リジューム機能付きの再生装置 |
CN1319203A (zh) * | 1998-07-22 | 2001-10-24 | 艾利森电话股份有限公司 | 涉及数据库中事务处理的方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6377939B1 (en) * | 1999-05-04 | 2002-04-23 | Metratech | Pipelined method and apparatus for processing communication metering data |
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 |
US20020103815A1 (en) * | 2000-12-12 | 2002-08-01 | Fresher Information Corporation | High speed data updates implemented in an information storage and retrieval system |
US20020073082A1 (en) | 2000-12-12 | 2002-06-13 | Edouard Duvillier | System modification processing technique implemented on an 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 |
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 |
US6567905B2 (en) * | 2001-01-23 | 2003-05-20 | Gemstone Systems, Inc. | Generational garbage collector with persistent object cache |
-
2003
- 2003-01-27 US US10/352,322 patent/US7111001B2/en not_active Expired - Fee Related
-
2004
- 2004-01-09 JP JP2004004126A patent/JP2004227569A/ja not_active Withdrawn
- 2004-01-21 CN CNB2004100029932A patent/CN1293501C/zh not_active Expired - Fee Related
-
2006
- 2006-07-28 US US11/460,950 patent/US7444329B2/en not_active Expired - Fee Related
Patent Citations (4)
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 |
CN1319203A (zh) * | 1998-07-22 | 2001-10-24 | 艾利森电话股份有限公司 | 涉及数据库中事务处理的方法 |
CN1245920A (zh) * | 1998-07-31 | 2000-03-01 | 摩托罗拉公司 | 用于在数据处理系统中执行事务处理的方法和设备 |
JP2001035063A (ja) * | 1999-07-15 | 2001-02-09 | Kenwood Corp | リジューム機能付きの再生装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109936A (zh) * | 2019-05-13 | 2019-08-09 | 四川新网银行股份有限公司 | 一种规避数据库锁等待以及事务合并提交的方法 |
CN110109936B (zh) * | 2019-05-13 | 2020-12-25 | 四川新网银行股份有限公司 | 一种规避数据库锁等待以及事务合并提交的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2004227569A (ja) | 2004-08-12 |
US20060265432A1 (en) | 2006-11-23 |
CN1517917A (zh) | 2004-08-04 |
US7111001B2 (en) | 2006-09-19 |
US20040148283A1 (en) | 2004-07-29 |
US7444329B2 (en) | 2008-10-28 |
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 | |
US6772155B1 (en) | Looking data in a database system | |
US6513084B1 (en) | Arbitration of state changes | |
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 | |
CA2302303A1 (en) | System for accessing database tables mapped into memory for high performance | |
CN100458792C (zh) | 用于管理海量存储系统的方法和数据处理系统 | |
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) | 一种工作流处理方法和装置 | |
Santos et al. | Optimizing data warehouse loading procedures for enabling useful-time data warehousing | |
CN101046822A (zh) | 数据节点的集中管理 | |
CN107678856B (zh) | 一种处理业务实体中增量信息的方法及装置 | |
Schulz et al. | On the relevance of reports—Integrating an automated archiving component into a business intelligence system | |
US10942912B1 (en) | Chain logging using key-value data storage | |
US20160371225A1 (en) | Methods for managing a buffer cache and devices thereof | |
Alrahwan et al. | ASCF: Optimization of the Apriori Algorithm Using Spark‐Based Cuckoo Filter Structure | |
JP6402537B2 (ja) | 更新処理プログラム、装置、及び方法 | |
US8156110B1 (en) | Rescheduling of modification operations for loading data into a database system | |
CN111598507A (zh) | 一种基于预定库存时生成库存信息的方法 | |
CN118131993B (zh) | Ipfs的键值对存储扩展系统和方法 | |
Noble | Hardware Usage | |
Noble | Optimizing Databases for T-SQL |
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 |