CN100430945C - 动态切换将事务数据写入盘中的模式的设备和方法 - Google Patents
动态切换将事务数据写入盘中的模式的设备和方法 Download PDFInfo
- Publication number
- CN100430945C CN100430945C CNB2006101291122A CN200610129112A CN100430945C CN 100430945 C CN100430945 C CN 100430945C CN B2006101291122 A CNB2006101291122 A CN B2006101291122A CN 200610129112 A CN200610129112 A CN 200610129112A CN 100430945 C CN100430945 C CN 100430945C
- Authority
- CN
- China
- Prior art keywords
- write
- dish
- formation
- transaction information
- situation
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种动态切换将事务数据写入盘中的模式的设备和方法,即能够在直写模式和后写模式之间动态切换的数据写设备和方法。其中所述数据写设备包括:存储器,它包括用于管理存储事务数据的写盘队列和写存储器队列的队列管理表;用于在负载超过预定阈值的情况下将写存储器队列注册到队列管理表中,在负载低于所述预定阈值的情况下删除队列管理表中的写存储器队列的装置;用于接收存储在写盘队列中的事务数据,以及用于将所接收的事务数据写入盘中的装置;和用于接收存储在写存储器队列中的事务数据,以及用于将所接收的事务数据写入冗余存储器中的装置。
Description
技术领域
本发明涉及将事务数据写入盘中的设备、方法和程序。所述系统、方法和程序能够在联机事务处理(OLTP)等当中根据负载的动态变化以及进程和硬件中的故障,在直写(write-through)模式和后写(write-behind)模式之间动态地切换将事务数据写入盘中的模式。
背景技术
在诸如证券交易系统这样的联机事务处理应用中,不允许固为故障的发生而丢失提交的数据。通常,使用直写模式作为一种针对故障来确保数据持久性的方法,借助该模式,数据在提交时被直接写入盘中。
传统上,因为将数据写入盘中一般会遇到高等待时间和低吞吐率等问题,所以使用后写模式作为一种解决以上问题的技术。图1简明地图示了后写模式的数据写处理。在后写模式中,首先,在提交时,通过将该数据临时拷贝到位于不同节点或不同进程的存储器(memory)(远程存储器)中(101)而使数据冗余。数据被拷贝到的远程存储器的位置和配置取决于需要耐受的故障的种类。在提交结束后,在本地进程中的存储器(本地存储器)上的数据被异步写入盘中(102)。即使在数据被写入盘中之前发生了故障,也可以从远程存储器中恢复数据(103)。一旦完成了将数据写入盘中的操作,就从本地存储器和远程存储器中删除该数据(104)。由于存储器(memory)具有比盘(disk)更高的数据写速率,所以这种应用可以减少等待时间并且提高吞吐率。
然而,通常的作法是在应用激活以前就静态地建立在直写模式和后写模式之间切换模式的数据持久性保证。在该作法中,不可能响应于在应用执行期间负载的变化或者进程或硬件的故障来动态地在两种模式之间进行模式切换。
日本专利申请公开No.平9-93265。
使用远程存储器代替盘作为数据提交时的存储装置就可以在保证数据持久性的同时改善事务数据的等待时间。但是,存储器与盘相比价格昂贵,因此导致容量较小。因此,在后写模式中,如果在一定时间段内在存储器中累积了超过一定量的提交数据,则该存储器的已用容量就达到了其上限。从而,不可能再额外地保存提交的数据。结果,数据从存储器中溢出。另一方面,如果为了防止以上情况发生,事务数据被配置为等待被写入盘中,那么写盘处理将变成瓶颈。
发明内容
为了解决以上问题,本发明提供了一种用于将事务数据写入盘中的设备,该设备能够在直写模式和后写模式之间动态地切换将事务数据写入盘中的模式。该设备配备有包括队列管理表的存储器,所述队列管理表用于管理存储事务数据的写盘队列和写存储器队列。另外,该系统包括用于在负载超过预定阈值的情况下将写存储器队列注册在队列管理表中,并且在负载低于所述预定阈值的情况下从队列管理表中删除写存储器队列的装置。此外,该系统包括:用于接收存储在写盘队列中的事务数据,并且将接收到的事务数据写入盘中的装置;以及用于接收存储在写存储器队列中的事务数据,并且将接收到的事务数据写入冗余存储器的装置。所述设备使得可以响应于负载,在直写模式和后写模式之间动态地切换将事务数据写入盘中的模式,从而可以高效地利用系统的资源。
根据本发明,提供了一种用于将事务数据写入盘中的设备,包括:存储器,它包括用于管理存储事务数据的写盘队列和写存储器队列的队列管理表;用于在负载超过预定阈值的情况下将写存储器队列注册到队列管理表中,在负载低于所述预定阈值的情况下删除队列管理表中的写存储器队列的装置;用于接收存储在写盘队列中的事务数据,以及用于将所接收的事务数据写入盘中的装置;和用于接收存储在写存储器队列中的事务数据,以及用于将所接收的事务数据写入冗余存储器中的装置。
根据本发明,提供了一种在直写模式和后写模式之间切换用于将事务数据写入盘中的模式的方法,包括以下步骤:检测盘上的写负载;如果所述负载从低于预定阈值的值变化到高于该预定阈值的值,则将写盘队列和写存储器队列注册到队列管理表中;以及如果所述负载从高于预定阈值的值变化到低于该预定阈值的值,则删除所述队列管理表中的写存储器队列。
附图说明
为了更完整地理解本发明及其优点,结合附图来参考以下描述。
图1简明地示出了在后写模式中的数据写处理。
图2示出了在直写模式和后写模式之间动态地切换将事务数据写入盘中的模式的系统的硬件配置图的一个例子。
图3示出了用于在直写模式和后写模式之间动态地切换将事务数据写入盘中的模式的设备的功能以及在该设备中处理的数据的一个例子。
图4示出了实现直写模式的状态的一个例子。
图5示出了实现后写模式的状态的一个例子。
图6举例说明了用于将数据写入盘中的模式从直写模式切换到后写模式的处理的流程。
图7举例说明了用于将数据写入盘中的模式从后写模式切换到直写模式的处理的流程700。
图8示出了只是从队列管理表中删除注册项的状态。
图9示出了在同一流程中执行图6和图7中的每项处理的情形的一个例子。
图10示出了将数据库和组播通信应用于后写模式的情形的一个例子。
具体实施方式
虽然借助本发明的实施方案来描述本发明,但是以下实施方案不限制根据权利要求书的范围的发明。此外,在实施方案中描述的一些特性组合只是为了方便理解本发明的内容,因此,并非所有的特性组合在解决本发明的技术问题时都是必要的。
虽然在以下每个实施方案中主要描述了方法和系统,但是本发明也可以被实现为可以在计算机上使用的程序,本领域的技术人员对此是清楚的。因此,本发明可以采取以下任何一种形式:配置为硬件的实施方案、配置为软件的实施方案以及配置为软件和硬件组合的实施方案。程序可以被记录在任意计算机可读介质上,例如硬盘、CD-ROM、光存储设备、磁存储设备等。
图2示出了系统用来根据负载的变化以及进程或硬件中的故障,在直写模式和后写模式之间动态地切换将事务数据写入盘中的模式的硬件配置200的概况。CPU 201是中央处理单元,它在各种操作系统的控制下执行各种程序。CPU 201通过总线202与存储器203、盘204、显示适配器205、用户接口206和网络接口207相连。盘204包括软件、操作系统、数据库系统等,它们用于使计算机成为可用来实现本发明的系统。
CPU 201通过用户接口206与键盘209和鼠标210相连,通过显示适配器205与显示设备208相连,并且通过网络接口207与网络211相连。CPU 201还通过网络211与实现冗余的节点/进程212相连。实现冗余的节点/进程212包括远程存储器213。为了使用后写模式来保证事务数据的持久性,该远程存储器213使存储器203中的事务数据冗余,并且保持该数据,所述数据已经被提交但是尚未反映在盘204中。该硬件配置200只不过是由计算机系统、总线布置和网络连接构成的一个实施方案的例子而已。本发明的特性可以实现在由多种系统配置(每种系统配置都包括多个相同的组成元件)组成的实施方案中,或者实现在多种系统配置还分布在网络上的实施方案中。
图3概念性地地图解说明了用于在直写模式和后写模式之间动态地切换将事务数据写入盘中的模式的设备的功能以及在该设备中处理的数据。在该图中表示的功能模块和数据配置可以用更小的单元来表示,也可以用更大的单元来表示。本领域的技术人员清楚:在用于表示这些功能模块和数据配置的单元之间的区别不是实现本发明的实质问题。盘301是诸如硬盘这样的设备,它一般具有较慢的数据写速率,并且数据库等当中的数据最终被记录在盘301中。存储器302与盘301相比具有较快的写速率,并且用于在后写模式中进行写操作时暂时使数据冗余。由于存储器302被用来使应用能够耐受故障,所以存储器302通常位于不同的节点或进程处。区域303是数据持久性保证方法用来切换的单元,在某个交易中被访问的任何数据集合都必然被包括在某一特定的区域中。至于“区域”的定义,整个数据可以被定义为一个区域。不然,在证券交易系统等当中,每个公司的事务数据可以被定义为相应的区域。附带提及,事务不能跨越区域之间的边界来访问数据。
队列管理表304是用于管理包含在每次事务提交时的数据的队列的表。针对区域和数据记录装置的每种组合来准备队列。在图3中,具有区域a和b的组合以及与盘相关的数据记录装置305和与存储器相关的数据记录装置306的组合。由此存在四种队列:与盘相关的队列{D,a}和{D,b}以及与存储器相关的队列{M,a}和{M,b}。与盘相关的队列{D,a}和{D,b}管理事务数据以将数据写入盘301,与存储器相关的队列{M,a}和{M,b}管理事务数据以将数据写入存储器302。队列管理器307在队列管理表304上进行队列的注册、删除、轮换等操作。队列管理器307的功能可以被合并为写定时控制装置308的一部分。
与盘相关的数据记录装置305从队列{D,a}和{D,b}接收事务数据,并将事务数据写入盘301中。与存储器相关的数据记录装置306从队列{M,a}和{M,b}接收事务数据,并将事务数据写入存储器302中。每个队列都包含事务数据自身或者指向记录事务数据的位置的指针。数据记录装置305和306中的每一个都根据这些队列来执行数据写处理。通常,队列{M,a}和{M,b}位于系统的本地存储器(图2中的本地存储器)上。然而,这些队列也有可能存在于另一个系统中。写定时控制装置308向与盘相关的数据记录装置305和与存储器相关的数据记录装置306分配线程,从而与盘相关的数据记录装置305和与存储器相关的数据记录装置306分别接收事务数据,并且分别进行事务数据的写处理。另外,写定时控制装置308管理一个线程池。写定时控制装置308根据需要从该线程池中向数据记录装置305和与存储器相关的数据记录装置306分配线程。写定时控制装置308将不再需要的线程送回到线程池中。于是,在每个队列上,每个进程相互独立地进行数据读和数据写。因此,每个进程向每个队列施加排它锁(互斥锁),以防止它自己在执行处理时在数据顺序方面犯错误。
在本发明中,为了最好地利用存储器的资源,在事务数据的写盘处理中,存储器被配置为当负载处于正常水平时不被使用。存储器被配置为高效地使用,以便在系统从低负载状态进入高负载状态时,可以一次处理大量的数据。也就是说,当负载处于正常水平时,在直写模式中执行数据写处理,此时不向存储器中进行数据累积。从而,存储器的可用空间保持最大,这样一来就可以在高负载状态下切换到后写模式时,增加可以累积到存储器中的数据量。另外,当系统的状态从高负载状态返回到平均负载状态时,通过从后写模式切换回直写模式来增大存储器的可用空间,从而应用可以耐受下次出现的高负载状态。这样,就可以在下次应用后写模式时增大可以累积在存储器中的数据量。
此外,当在直写模式期间在盘中发生了故障时,有一种情况是为了不停止应用,希望暂时切换到后写模式。与之相对,当在后写模式中在远程存储器中发生了故障时,有一种情况是为了不停止应用,必须类似地执行切换到直写模式的操作。例如,有一种情况是出现了响应延迟,其中,来自盘、管理盘的OS(操作系统)或数据库的响应由于某种原因而延迟。要是在数据库进程中发生了故障,也会出现数据库暂时不能响应的状况。类似地有这样一种情况,在后写模式中,管理远程存储器的OS和进程变为具有高负载,从而不能响应。在很多情况下,这些故障可以被很快消除。因此,当远程存储器或盘不响应超出预定的时间时,如果有可能在直写模式和后写模式之间切换的话,就可以保证应用的响应时间。
此外,当某一应用正在以后写模式运行时在进程中发生了故障时,如果要进行由另一个进程取代在前进程的故障恢复,那么就需要反映远程存储器上的数据和盘上的数据之间的差异。然而,假设已接管在前进程的进程在反映所述差异的任务完成之前不能执行新的事务,那么这将导致所述应用的可用性的降低。因此,如果应用的可用性很重要的话,那么非常希望当所述差异正在被反映时,在以后写模式将数据写入盘中的同时可以立即开始应用的处理。这种情况下,一直使用后写模式,直到完成反映差异的任务之后,此外还要等到反映基于故障恢复之后的事务的新数据的任务完成之后。此外还希望在处理完成之后,有可能根据需要切换到直写模式。注意,故障恢复可以被视为响应暂时发生延迟的响应延迟。
另外,有一种情况是负载集中于特定种类的数据。例如,在证券交易应用中,有一种情况是某一支股票的买卖都集中于短时期内。为此,有必要预先建立一种配置,其中可以对每种数据(例如,针对每个区域),例如在买卖证券时使用的股票名称进行直写模式和后写模式之间的切换。
图4示出了使用图3所示的配置来实现直写模式的状态的一个例子。这里,区域a和b(403)中的数据被与盘相关的数据记录装置405写入盘中。由于是以直写模式来写数据的,所以未使用与存储器相关的数据记录装置406。与盘相关的数据记录装置405所使用的分别针对区域a和b的队列{D,a}和{D,b}被注册在队列管理表404中。这里将描述针对区域a的事务被提交的情况作为例子。该事务的数据与区域a相关地被存储在队列{D,a}中。在直写模式中,必须在完成提交之前将数据写入盘中。为此,写定时控制装置408向与盘相关的数据记录装置405分配线程,并将数据传递给它,从而与盘相关的数据记录装置405写数据。
一旦与盘相关的数据记录装置405完成了数据写处理,也就完成了提交。由于属于不同区域的两个事务彼此没有关系,所以写定时控制装置408逐个队列地向数据记录装置分配线程。注意,因为在图4中数据写处理是使用直写模式来完成的,所以与盘相关的数据记录装置405可以接收尚未经过队列管理表404的数据。然而,如果在以直写模式写数据时也使数据经过了队列管理表404,那么就可以简化功能配置,这是因为可以使写定时控制装置408和与盘相关的数据记录装置405的功能在后写模式中功能共用。另外,如果在数据写处理中使数据不可避免地经过队列,那么这方便了根据数据的顺序对保持在队列中的数据进行写处理,即使在从后写模式切换到直写模式后也是如此。
图5示出了使用图3所示的配置来实现后写模式的状态的一个例子。这里,区域a和b(303)的数据被与盘相关的数据记录装置505写入盘501中,并被与存储器相关的数据记录装置506写入存储器502中。因此,在队列管理表中注册的四个队列是:用于管理想要被传递到与盘相关的数据记录装置505的数据的队列{D,a}和{D,b}以及用于管理想要被传递到与存储器相关的数据记录装置506的数据的队列{M,a}和{M,b}。在以后写模式写数据时,必须在完成提交之前将数据写入实现冗余的远程存储器(存储器502)。写定时控制装置508向与存储器相关的数据记录装置506分配线程。
来自应用的事务数据被存储在队列{M,a}和{M,b}中。一旦与存储器相关的数据记录装置506完成了将数据写入存储器502中,就完成了应用的提交处理。此后,写定时控制装置508向与盘相关的数据记录装置505分配线程,与盘相关的数据记录装置505接收数据,然后进行数据写处理。注意,由于一旦与盘相关的数据记录装置505完成了将数据写入盘501中,就不再需要冗余数据,因此写定时控制装置508发出删除存储器502中的数据的指令。在后写模式的情况下,由于应用一方的提交处理只需要完成写入存储器502的处理,所以可以在完成提交之前向与盘相关的数据记录装置505分配线程。另外,从存储器中删除数据的处理可以逐个事务地完成,或者为了改进应用的性能,可以以批处理的方式针对多项事务统一完成。
图6例示了对于区域a,将数据写入盘中的模式从直写模式切换到后写模式的处理的流程600。处理开始于步骤601。在步骤602进行对负载的检测。在步骤603中判断负载是否超过预定的阈值。例如,在有关在先事务的写盘处理完成之前,预定的阈值被确定为事务的数量和频率,该数量和频率是下一事务发生的程度。这意味着负载的阈值被确定落在满足与应用的吞吐率和等待时间有关的需求的范围内。如果在步骤603中判定负载不超过阈值(否),则处理前进到步骤606,在该步骤处,在不切换数据写入盘中的模式的情况下结束处理。
另一方面,如果在步骤603判定负载超过了阈值(是),则处理前进到步骤604。在步骤604中,对于队列{D,a}获得一个排它锁,对于该排它锁,将区域a的标识符设置为钥匙。也可以将不同于区域的标识符的对象设置为排它锁的钥匙。之所以要获得这样一个排它锁,是为了防止应用和数据写装置在将数据写模式从直写模式切换到后写模式的同时访问队列,从而防止因访问造成的差错。在步骤605中,将队列{M,a}注册在队列管理表中。在步骤606中,释放排它锁。在步骤607中,针对队列{M,a}向与存储器相关的数据记录装置分配线程。但是,在步骤607中,如果还留有线程的实例,就没有必要分配线程了。该处理变得不必要了。在步骤608中,结束切换处理。在步骤606完成后,线程被分配给与存储器相关的数据记录装置,从而开始以后写模式进行数据写处理。
顺便提及,在步骤603中,在检测到以下情况时也可以认为负载超过了阈值:当应用在运行中发生了进程中的故障时,由另一个进程取代在前进程的故障恢复;数据库的暂时响应延迟;数据库的故障恢复;或者盘的故障恢复。在这种情况下,处理从步骤603前进到步骤604,以将数据写入盘中的模式从直写模式切换到后写模式。
顺便提及,可以举在应用的故障恢复时的差异反映作为可在步骤602中检测负载的情况的一个例子。当应用运行在后写模式时发生了进程中的故障时,如果进行用另一个进程取代在前进程的故障恢复,则必须反映盘上的数据与远程存储器上的数据之间的差异。但是,如果要等待该反映的完成,那么将导致应用的可用性的降低。为此,通过使用本发明,就可以在反映差异的同时以后写模式将数据写入盘中,同时立即开始应用的处理。此后,在完成了反映差异的任务后,此外还要在完成反映故障恢复之后的事务的新数据之后,如果必要的话,可以切换到直写模式。
另外,可以举对数据库的暂时响应延迟的反应作为可在步骤602中检测负载的情况的另一个例子。有一种情况是:当以直写模式将数据写入数据库时,来自数据库的响应由于某种原因而暂时延迟。为了准备应付这种情况,可以通过以下方式来保证对应用的响应时间:如果数据库不响应超过预定的时间,就将写模式切换到后写模式。如果数据库后来又响应了,则可以切换回直写模式。动态切换使得有可能延长可耐受的响应延迟时间。
此外,可以举数据库的故障恢复时间被隐藏的情况作为可在步骤602中检测负载的情况的又一个例子。有一种情况是:当以直写模式将数据写入数据库时,因为在数据库中已发生了故障,所以数据库进程进行故障恢复。数据库的故障恢复通常需要比较长的时间,在故障恢复期间,数据库不能向应用返回响应。然而,如果将这种故障恢复当作响应延迟的一种形式,从而类似地切换到后写模式,那么就可以相对于应用隐藏数据库的故障恢复时间。这样一来,就可以增强应用的可用性。动态切换使得有可能延长可耐受的数据库故障恢复时间。
此外,还可以举盘的故障恢复作为可在步骤602中检测负载的情况的另一个例子。当正在以直写模式或后写模式使用的文件、数据库或盘自身发生了故障时,可能有一种情况是必须将数据写目的地切换到另一个文件或另一个数据库。只要切换与盘相关的数据记录装置写入数据的目的地,就可以实现以上任务。
另外,在步骤602中对负载的检测可以针对每个区域来进行。例如,当判断出对于区域b而言负载超过了阈值时,在步骤604中获得一个排它锁,区域b的标识符被设置为该排它锁的钥匙,并将队列{M,b}注册在队列管理表中。
图7举例说明了针对区域a将数据写入盘中的模式从后写模式切换到直写模式的处理流程700。处理开始于步骤701。在步骤702中进行负载的检测。在步骤703中判断负载是否低于预定的阈值。如果在步骤703中判断出负载不低于阈值(否),则处理前进到步骤707,在该步骤处结束处理,不切换将数据写入盘中的模式。相反,如果在步骤703中判断出负载低于阈值(是),则处理前进到步骤704。在步骤704中,对于队列{D,a}和{M,a}获得一个排它锁,区域a的标识符被设置为该排它锁的钥匙。在步骤705中,从队列管理表中删除队列{M,a}。在步骤706中,释放排它锁。在步骤707中,切换处理结束。
顺便提及,在步骤703中,处理可被允许前进到步骤704,以便同样在已检测到以下情况时将数据写入盘中的模式从后写模式切换到直写模式:运行中的应用的故障恢复的完成;从数据库的暂时响应延迟中恢复;数据库的故障恢复的完成;或者盘的故障恢复的完成。注意,在步骤705中,不删除队列{M,a}的实例本身,而只是删除该队列在队列管理表中的注册项,如图8所示。只要队列{M,a}的实例保留,即使已从队列管理表中删除了队列{M,a},被分配给与存储器相关的数据记录装置的线程也可以通过从队列{M,a}中获取已应用后写模式的剩余数据而继续数据写处理。然而,一旦队列{M,a}的写数据处理结束,就希望根据资源的需要删除所述实例。
图9是示出在同一流程中执行图6和图7中的每项处理的情形的一个例子的流程图900。由于步骤902中的负载检测可以被步骤602和702共享,所以两个处理流程可以被合并,如图9所示。步骤903和913分别是用于判断负载是否高于或低于阈值的处理。在步骤903中,判断负载是否已从低于预定阈值的值变为高于该阈值的值。在步骤913中,判断负载是否已从高于预定阈值的值变为低于该阈值的值。从步骤904到步骤906的步骤与图6中从步骤604到步骤607的步骤相同。从步骤914到步骤916的步骤与图7中从步骤704到步骤706的步骤相同。虽然处理在步骤908结束,但是该处理以规则的时间间隔重新启动,以对负载的变化作出反应。处理返回到步骤902,再次对负载进行检测,开始直写模式和后写模式之间的切换处理。
本发明可以在多种实施方案中实现。例如,如图10所示,本发明可应用于使用数据库和组播通信的后写模式。冗余度可以通过以下配置来增大:与盘相关的数据记录装置1005通过将数据库1001设置为一个盘来写数据,另外,与存储器相关的数据记录装置1006使用组播通信1010将所述数据拷贝到多个远程存储器1002中。通过改变由与存储器相关的数据记录装置1006提供的、关于数据写的完成的通知的定时,也可以改变数据针对远程存储器所发生的故障的持久性程度。例如,在有三个远程存储器用作拷贝目的地的情况下,如果在从三个中的预定数量的远程存储器(例如,头两个)接收到拷贝完成响应的同时报告了数据写的完成,那么最多可以耐受一个远程存储器中的故障。
另外,本发明可应用于只有一个区域的情况。在系统中只有一个区域的情况是允许的。在该情况中,通过在整个系统中统一地在直写模式和后写模式之间进行切换,就可以采用保证持久性的方法(它们是直写模式和后写模式)。
根据本发明的方法使得在作为保证数据持久性的方法的直写模式和后写模式之间实现切换成为可能。从而,在负载过高,导致产生盘瓶颈的状态下,可以节省存储器的使用,将负载保持在由阈值限定的范围内。结果就可以耐受高得超过阈值的负载。另外,可以增强在直写模式和后写模式下的抗故障能力,可以使故障恢复所用的时间变短,并且可以灵活地限定对保持数据持久性的方法进行切换的范围。
上面虽然已经利用实施方案描述了本发明,但是本发明的技术范围不限于在上述实施方案中描述的范围。本领域的技术人员清楚:可以向上述实施方案中加入各种替换或修改。同样,从说明书和权利要求书的范围可以看出,向上述实施方案中加入这样的替换或修改构造出来的实施方案也可以包含在本发明的技术范围中。
虽然已详细描述了本发明的优选实施方案,但是应当理解:可以对其作出多种改变、替换和修改,而不会偏离由所附的权利要求限定的本发明的精神和范围。
Claims (19)
1.一种用于将事务数据写入盘中的设备,包括:
存储器,它包括用于管理存储事务数据的写盘队列和写存储器队列的队列管理表;
用于在负载超过预定阈值的情况下将写存储器队列注册到队列管理表中,在负载低于所述预定阈值的情况下删除队列管理表中的写存储器队列的装置;
用于接收存储在写盘队列中的事务数据,以及用于将所接收的事务数据写入盘中的装置;和
用于接收存储在写存储器队列中的事务数据,以及用于将所接收的事务数据写入冗余存储器中的装置。
2.根据权利要求1的用于将事务数据写入盘中的设备,还包括:当尚未向用于将数据写入存储器中的装置分配线程时分配线程的装置。
3.根据权利要求1和2中任一个的用于将事务数据写入盘中的设备,其中,针对不同区域设置所述写盘队列和所述写存储器队列。
4.根据权利要求1和2中任一个的用于将事务数据写入盘中的设备,其中,用于将数据写入存储器中的装置通过组播将所述数据写入多个存储器中。
5.根据权利要求4的用于将事务数据写入盘中的设备,其中,一从预定数量的所述存储器接收到拷贝完成响应,所述用于将数据写入存储器中的装置还包括用于返回关于写数据已完成的通知的装置。
6.根据权利要求1的用于将事务数据写入盘中的设备,其中,应用的进程中发生故障的情况也被认为是负载超过预定阈值的情况。
7.根据权利要求1的用于将事务数据写入盘中的设备,其中,数据库发生暂时响应延迟的情况也被认为是负载超过预定阈值的情况。
8.根据权利要求1的用于将事务数据写入盘中的设备,其中,数据库中发生故障的情况也被认为是负载超过预定阈值的情况。
9.根据权利要求1的用于将事务数据写入盘中的设备,其中,盘发生故障的情况也被认为是负载超过预定阈值的情况。
10.根据权利要求1的用于将事务数据写入盘中的设备,其中,所述用于在负载超过预定阈值的情况下将写存储器队列注册到队列管理表中,在负载低于所述预定阈值的情况下删除队列管理表中的写存储器队列的装置还包括用于向写盘队列和写存储器队列施加排它锁和释放排它锁的装置。
11.一种在直写模式和后写模式之间切换用于将事务数据写入盘中的模式的方法,包括以下步骤:
检测盘上的写负载;
如果所述负载从低于预定阈值的值变化到高于该预定阈值的值,则将写盘队列和写存储器队列注册到队列管理表中;以及
如果所述负载从高于预定阈值的值变化到低于该预定阈值的值,则删除所述队列管理表中的写存储器队列。
12.根据权利要求11的切换用于将事务数据写入盘中的模式的方法,还包括以下步骤:当尚未分配用于处理写存储器队列中的事务数据的线程时,分配所述线程。
13.根据权利要求11和12中任一个的切换用于将事务数据写入盘中的模式的方法,其中,针对不同区域设置所述写盘队列和所述写存储器队列。
14.根据权利要求13的切换用于将事务数据写入盘中的模式的方法,还包括在所述注册步骤前的一个步骤:向与预期要注册的队列相对应的区域的写盘队列施加排它锁;以及在所述注册步骤后的一个步骤:释放所述向与预期要注册的队列相对应的区域的写盘队列施加的排它锁。
15.根据权利要求13的切换用于将事务数据写入盘中的模式的方法,还包括在所述删除步骤前的一个步骤:向与预期要删除的队列相对应的区域的写盘队列施加排它锁;以及在所述删除步骤后的一个步骤:释放所述向与预期要删除的队列相对应的区域的写盘队列施加的排它锁。
16.根据权利要求11的切换用于将事务数据写入盘中的模式的方法,其中,应用的进程发生故障的情况也被认为是负载超过预定阈值的情况。
17.根据权利要求11的切换用于将事务数据写入盘中的模式的方法,其中,数据库发生暂时响应延迟的情况也被认为是负载超过预定阈值的情况。
18.根据权利要求11的切换用于将事务数据写入盘中的模式的方法,其中,在数据库中发生故障的情况也被认为是负载超过预定阈值的情况。
19.根据权利要求11的切换用于将事务数据写入盘中的模式的方法,其中,盘发生故障的情况也被认为是负载超过预定阈值的情况。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005262155 | 2005-09-09 | ||
JP2005262155A JP4378335B2 (ja) | 2005-09-09 | 2005-09-09 | ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム |
JP2005-262155 | 2005-09-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1928872A CN1928872A (zh) | 2007-03-14 |
CN100430945C true CN100430945C (zh) | 2008-11-05 |
Family
ID=37858835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101291122A Expired - Fee Related CN100430945C (zh) | 2005-09-09 | 2006-09-08 | 动态切换将事务数据写入盘中的模式的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7490179B2 (zh) |
JP (1) | JP4378335B2 (zh) |
CN (1) | CN100430945C (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2328089B1 (en) * | 2005-04-20 | 2014-07-09 | Axxana (Israel) Ltd. | Remote data mirroring system |
US9195397B2 (en) | 2005-04-20 | 2015-11-24 | Axxana (Israel) Ltd. | Disaster-proof data recovery |
EP2201456A4 (en) * | 2007-10-08 | 2012-02-15 | Axxana Israel Ltd | SYSTEM FOR QUICK DATA RECOVERY |
EP2286343A4 (en) * | 2008-05-19 | 2012-02-15 | Axxana Israel Ltd | ROBUST DATA STORAGE IN THE EVENT OF REPLICATION ERRORS AND ROLLING DISASTERS |
WO2010076755A2 (en) * | 2009-01-05 | 2010-07-08 | Axxana (Israel) Ltd | Disaster-proof storage unit having transmission capabilities |
WO2011033635A1 (ja) * | 2009-09-17 | 2011-03-24 | 株式会社東芝 | 管理装置 |
WO2011067702A1 (en) | 2009-12-02 | 2011-06-09 | Axxana (Israel) Ltd. | Distributed intelligent network |
JP5515810B2 (ja) * | 2010-02-05 | 2014-06-11 | 日本電気株式会社 | 負荷制御装置 |
JP5742542B2 (ja) * | 2011-07-25 | 2015-07-01 | 富士通株式会社 | ストレージ装置及びその負荷状態低減方法 |
CN103838547B (zh) * | 2012-11-27 | 2018-05-11 | 中国电信股份有限公司 | 一种队列的管理方法和装置 |
US10769028B2 (en) | 2013-10-16 | 2020-09-08 | Axxana (Israel) Ltd. | Zero-transaction-loss recovery for database systems |
US20150244804A1 (en) * | 2014-02-21 | 2015-08-27 | Coho Data, Inc. | Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities |
GB2533415B (en) * | 2014-12-19 | 2022-01-19 | Advanced Risc Mach Ltd | Apparatus with at least one resource having thread mode and transaction mode, and method |
US10489203B2 (en) * | 2015-04-03 | 2019-11-26 | Oracle International Corporation | System and method for using an in-memory data grid to improve performance of a process defined by a process execution language in a SOA middleware environment |
US10379958B2 (en) | 2015-06-03 | 2019-08-13 | Axxana (Israel) Ltd. | Fast archiving for database systems |
US10592326B2 (en) | 2017-03-08 | 2020-03-17 | Axxana (Israel) Ltd. | Method and apparatus for data loss assessment |
CN109359118B (zh) * | 2018-08-31 | 2021-06-01 | 创新先进技术有限公司 | 一种数据写入方法及装置 |
EP3712899A1 (en) * | 2019-03-21 | 2020-09-23 | Siemens Healthcare GmbH | Generation of a result image |
CN110347482B (zh) * | 2019-07-18 | 2021-07-23 | 哈尔滨汇拓投资中心(有限合伙) | 基于OLTPShare的OLTP事务结合规则与队列模型改进方法 |
CN110908613B (zh) * | 2019-11-28 | 2024-02-23 | 深信服科技股份有限公司 | 一种数据写命令处理方法、装置、电子设备及存储介质 |
CN116627352B (zh) * | 2023-06-19 | 2024-03-08 | 深圳市青葡萄科技有限公司 | 一种分布式存储器下的数据管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0993265A (ja) * | 1995-09-28 | 1997-04-04 | Hitachi Ltd | 分散型ネットワーク管理方法 |
US6260125B1 (en) * | 1998-12-09 | 2001-07-10 | Ncr Corporation | Asynchronous write queues, reconstruction and check-pointing in disk-mirroring applications |
CN1543135A (zh) * | 2003-11-07 | 2004-11-03 | 清华大学 | San系统中基于负载自适应的异步远程镜像方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5089958A (en) * | 1989-01-23 | 1992-02-18 | Vortex Systems, Inc. | Fault tolerant computer backup system |
JP2976780B2 (ja) | 1992-12-07 | 1999-11-10 | 松下電器産業株式会社 | 情報記録再生装置 |
US5915129A (en) * | 1994-06-27 | 1999-06-22 | Microsoft Corporation | Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system |
US6085291A (en) | 1995-11-06 | 2000-07-04 | International Business Machines Corporation | System and method for selectively controlling fetching and prefetching of data to a processor |
US7039756B2 (en) * | 2003-04-28 | 2006-05-02 | Lsi Logic Corporation | Method for use of ternary CAM to implement software programmable cache policies |
-
2005
- 2005-09-09 JP JP2005262155A patent/JP4378335B2/ja not_active Expired - Fee Related
-
2006
- 2006-09-08 CN CNB2006101291122A patent/CN100430945C/zh not_active Expired - Fee Related
- 2006-09-08 US US11/517,684 patent/US7490179B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0993265A (ja) * | 1995-09-28 | 1997-04-04 | Hitachi Ltd | 分散型ネットワーク管理方法 |
US6260125B1 (en) * | 1998-12-09 | 2001-07-10 | Ncr Corporation | Asynchronous write queues, reconstruction and check-pointing in disk-mirroring applications |
CN1543135A (zh) * | 2003-11-07 | 2004-11-03 | 清华大学 | San系统中基于负载自适应的异步远程镜像方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4378335B2 (ja) | 2009-12-02 |
US20070266197A1 (en) | 2007-11-15 |
CN1928872A (zh) | 2007-03-14 |
JP2007072975A (ja) | 2007-03-22 |
US7490179B2 (en) | 2009-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100430945C (zh) | 动态切换将事务数据写入盘中的模式的设备和方法 | |
US20210263658A1 (en) | Data system with flush views | |
KR101827239B1 (ko) | 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피 | |
US10521135B2 (en) | Data system with data flush mechanism | |
US8301670B2 (en) | Managing snapshot storage pools | |
US8229897B2 (en) | Restoring a file to its proper storage tier in an information lifecycle management environment | |
CN1316362C (zh) | 重定位在多线程计算机中共享的计算机数据的设备和方法 | |
WO2017022002A1 (ja) | ストレージ装置、ストレージシステム、ストレージシステムの制御方法 | |
US7631214B2 (en) | Failover processing in multi-tier distributed data-handling systems | |
KR20180021923A (ko) | 분산 데이터베이스 시스템들을 위한 고속 장애 복구 | |
US20070174673A1 (en) | Storage system and data restoration method thereof | |
CN106104502B (zh) | 用于存储系统事务的系统、方法和介质 | |
CN104965850A (zh) | 一种基于开源技术的数据库高可用实现方法 | |
CN105630418A (zh) | 一种数据存储方法及装置 | |
CN101211289A (zh) | 恢复操作管理系统和方法 | |
JP2007241486A (ja) | 記憶装置システム | |
US20100023532A1 (en) | Remote file system, terminal device, and server device | |
US8359429B1 (en) | System and method for distributing volume status information in a storage system | |
CN106104515A (zh) | 利用非易失性存储器的文件系统设计和故障恢复方法 | |
CN113360082A (zh) | 存储系统及其控制方法 | |
US7334164B2 (en) | Cache control method in a storage system with multiple disk controllers | |
CN103377090A (zh) | 多处理器系统中共享不同数据集的多个编目的方法和系统 | |
US6823348B2 (en) | File manager for storing several versions of a file | |
CN104115127A (zh) | 存储系统和数据管理方法 | |
CN115168367B (zh) | 一种大数据的数据配置方法和系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081105 Termination date: 20200908 |