TW201502778A - 自第一節點到第二節點之位址範圍轉移技術 - Google Patents

自第一節點到第二節點之位址範圍轉移技術 Download PDF

Info

Publication number
TW201502778A
TW201502778A TW103111472A TW103111472A TW201502778A TW 201502778 A TW201502778 A TW 201502778A TW 103111472 A TW103111472 A TW 103111472A TW 103111472 A TW103111472 A TW 103111472A TW 201502778 A TW201502778 A TW 201502778A
Authority
TW
Taiwan
Prior art keywords
node
address
group
address range
memory
Prior art date
Application number
TW103111472A
Other languages
English (en)
Inventor
Douglas L Voigt
Original Assignee
Hewlett Packard Development Co
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 Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201502778A publication Critical patent/TW201502778A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Small-Scale Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

一群組位址範圍被映射至一非依電性記憶體之一記憶體位址範圍。如果一第一記憶體位址被映射至該群組位址範圍以及一寫入存取對於該第一記憶體位址被要求,則該記憶體位址範圍之一第一記憶體位址被複製至一依電性記憶體。響應於一同步命令,該群組位址範圍自一第一節點被轉移至一第二節點。該複製位址是在該群組位址範圍被轉移之後被寫入該非依電性記憶體(NVM)。

Description

自第一節點到第二節點之位址範圍轉移技術 發明領域
本發明係有關於自第一節點到第二節點之位址範圍轉移技術。
發明背景
由於最近固態儲存技術的創新,此技術正被整合進入資料系統中。該等資料系統之伺服器可能尋求將資料寫入至固態儲存技術或自固態儲存技術讀取資料。使用者,例如,管理員及/或供應商,可被挑戰以整合此技術進入系統而同時保持其微小性。
發明概要
依據本發明之一實施例,係特地提出一種第一節點,其包括:一群組表,其包含與被映射至一非依電性記憶體(NVM)之一記憶體位址範圍的一群組位址範圍相關聯之一群組,該群組位址範圍包含一寫時複製(COW)範圍,如果一第一記憶體位址被映射至該寫時複製(COW)範圍且 一寫入存取對於該第一記憶體位址被要求,則該記憶體位址範圍之該第一記憶體位址將被複製至一依電性記憶體;一控制器,其響應一同步命令,依據藉由該群組表被判定的一順序而將該群組位址範圍自該第一節點轉移至一第二節點,其中該控制器是在該轉移完成之後發送一標記,以及該控制器是在該第二節點承認該標記之後將該複製位址寫入至該非依電性記憶體(NVM)。
100‧‧‧第一節點
110‧‧‧群組表
112‧‧‧群組
114‧‧‧群組位址範圍
116‧‧‧寫時複製範圍
120‧‧‧控制器
130‧‧‧依電性記憶體
132‧‧‧資料
140‧‧‧非依電性記憶體
142‧‧‧記憶體位置範圍
144‧‧‧第一記憶體位址
150‧‧‧第二節點
200‧‧‧第一節點
210‧‧‧群組表
211‧‧‧群組編號行
213‧‧‧轉移屬性行
215‧‧‧啟始位址行
217‧‧‧範圍大小行
219‧‧‧備妥旗標行
220‧‧‧子群組表
221‧‧‧子群組編號行
223‧‧‧寫時複製行
225‧‧‧啟始位址行
227‧‧‧範圍大小行
229‧‧‧備妥旗標行
230‧‧‧記錄器
232‧‧‧啟始位址行
234‧‧‧範圍大小行
236‧‧‧資料行
238‧‧‧標記行
240‧‧‧寫時複製引擎
242‧‧‧資料複製
250‧‧‧控制器
260‧‧‧依電性記憶體
262‧‧‧複製位址
270‧‧‧臨界週期
272‧‧‧虛擬位址行
274‧‧‧實際位址行
276‧‧‧修改旗標行
278‧‧‧唯讀行
280‧‧‧臨界數目
282‧‧‧記憶體位置
290‧‧‧第二節點
400‧‧‧電腦裝置
410‧‧‧處理器
420‧‧‧儲存媒體
421-426‧‧‧指令
422‧‧‧產生指令
424‧‧‧複製指令
426‧‧‧轉移指令
500‧‧‧位址範圍轉移方法流程
510-580‧‧‧位址範圍轉移步驟
下面的詳細說明將參考圖形,於其中:圖1是轉移一位址範圍至一第二節點之一第一節點的範例方塊圖;圖2是轉移一位址範圍至一第二節點之一第一節點的另一範例方塊圖;圖3A-3D是圖2之第一節點的各種狀態之範例方塊圖;圖4是包含用以自一第一節點轉移一位址範圍至一第二節點之指令的電腦裝置範例方塊圖;以及圖5是用以自一第一節點轉移一位址範圍至一第二節點之方法的範例流程圖。
較佳實施例之詳細說明
特定詳細說明被給予於下面的說明中以提供對實施例之整體了解。但是,應了解,實施例可不必這些特定細節地被實行。例如,系統可以方塊圖方式被展示以避 免非必要的細節而混淆實施例。於其他實例中,為了避免混淆實施例,習知的處理程序、結構和技術可被展示而無非必要的細節。
非依電性記憶體(NVM)技術,例如,憶阻器(Memristor)可提供耐久性和記憶體快速存取兩者。這型式之NVM可以被映射進入伺服器記憶體空間中以供用於直接裝載/儲存存取。當應用一完全範圍之豐富資料服務以供用於冗餘、複製、備份以及歸檔至記憶體映射儲存器時,其可能必須建立在複數個記憶體系統內與跨越該等複數個記憶體系統而保持自身一致性的資料群組。
記憶體一致性一般利用處理器和記憶體控制器局部地被管理。雖然現有的方法可能強制執行嚴格排序和快取同調性,這些方法可能不適用於群集、聯盟、遠端複製及/或客戶/伺服器關係,例如,可能存在於應用伺服器及儲存伺服器之間的那些者。其根本原因是如於一單一處理器或對稱多處理器(SMP)系統所見的嚴格一致性可能是成本過高,而無法維持於一限定的實際範圍之上。
當NVM使用儲存指令直接地利用處理器被寫入時,在一完整多部份更新或處理已被累積之前,有些應用可能需要避免以新的資料過度寫入永久性資料。這藉由在進行中構成一暫時的工作複製被完成並且在稍後的時間(例如,寫時複製)而提交其至NVM。通常,這發生在每一次一頁或一記憶體範圍,如果有電力損失或失效,其將不允許微小的一整體更新。
實施例可結合寫時複製(COW)操作與同步操作以及群組以在一較大的範疇上達成其之微小性。這些群組可藉由應用被界定以滿足它們的特定一致性需求。一旦被耦合,寫入可被重新引導至原始NVM位置之一複製。正常同步操作可以沖除資料至該複製,但是可能不修改主要的頁也不指定用以發送之頁。例如,一第一節點可包含一群組表以及一控制器。該群組表可包含與被映射至NVM之一記憶體位址範圍的一群組位址相關聯範圍之群組。該群組位址範圍可包含一COW範圍。
如果第一記憶體位址被映射至COW範圍並且對於第一記憶體位址之一寫入存取被要求,則記憶體位址範圍之一第一記憶體位址可被複製至依電性記憶體。該控制器可響應於一同步命令,根據利用該群組表被判定的一順序,將該群組位址範圍自該第一節點轉移至一第二節點。控制器可在該轉移完成之後發送一標記。該控制器可在第二節點承認該標記之後寫入該複製位址至該NVM。
因此,實施例可經由一單一同步操作而在群組操作之內鏈接隔離位址群組方式範圍(或頁方式)COW操作在一起。因此,該等COW操作可與發送至另一節點之記憶體位址範圍而被協調。相對於電力損失或伺服器失效,這可致能COW操作成為微小性。
微小性藉由在恢復期間使用在群組內被達成之轉移的位址範圍以往前滾動NVM之主要影像,於該情況中,不是所有之COW頁由於電力損失或失效期間而被提交 至該主要的影像。因此,複數個COW操作可成為微小性。COW微小性之範疇跨越分離之記憶體位置範圍、記憶體系統以及伺服器被延伸。這些影像接著可轉換為各種型式之資料複製或被使用以進行資料分析,例如,需要資料之一致性和可恢復狀態之重複或分類。
接著參看至圖形,圖1是將一位址範圍轉移至一第二節點150之第一節點100的範例方塊圖。第一及/或第二節點100和150可以是下列構件之部件或被包含在其中者,例如,一儲存裝置、電腦、交換機、殼體、伺服器、控制器及/或連接到網路之任何型式的裝置。於圖1之實施例中,第一節點100被展示以包含一群組表110、一控制器120以及一依電性記憶體(VM)130。進一步地,該第一節點100被展示以與一NVM 140以及第二節點150介面。雖然,下面之說明主要是針對第一節點100,而第二節點150亦可包含相似功能及/或構件。
第一節點100可包含,例如,含有用以實行在下面被說明之功能的電子電路之硬體裝置,例如,控制邏輯及/或記憶體。此外或如一另外者,第一節點100可作為一指令系列被實行,該等指令可被編碼於一機器可讀取儲存媒體上以及可利用一處理器執行。依電性記憶體130,可以是任何型式之裝置,其需要電力以保持儲存之資訊,例如,處理器快取(未被展示於圖中)。
NVM 140可以包含當電源被關閉時保留其之資料的任何型式之裝置,例如,唯讀記憶體、快閃記憶體、 鐵電式RAM(F-RAM)、大部分型式之磁電腦儲存裝置(例如,硬碟、軟碟、和磁帶)與光碟及憶阻器為基礎者、自旋扭矩轉移、以及相變隨機存取記憶體。例如,NVM可包含一記憶體,其以每個位元組或每個處理器快取線為基礎者而被讀取或被寫入。
群組表110包含群組112,並且該群組112包含一群組位址範圍114。該群組位址範圍114可被映射至NVM 140之一記憶體位址範圍142。例如,該群組位址範圍114可包含被映射至記憶體位址範圍142之一個或多個位址的一個或多個位址。詞語“映射”可涉及用以包含一裝置(例如,NVM 140)之一個或多個記憶體位址進入另一裝置(例如,節點100之群組表110)之一位址列表的技術。雖然群組表110被展示以包含一單一群組112並且群組114被展示以包含一單一群組位址範圍114,群組表110之實施例也可包含複數個群組112,並且群組112之實施例也可包含複數個位址範圍114。
群組位址範圍可進一步包含一寫時複製(COW)範圍116。如果第一記憶體位址144被映射至COW範圍116以及對於第一記憶體位址14之一寫入存取被要求,則記憶體位址範圍142之一第一記憶體位址144可被複製132至VM 130。複製位址132可包含被儲存在第一記憶體位址144以及與第一記憶體位址144相關聯之任何資料,例如,經由一虛擬記憶體表(未被展示於圖中)。
控制器120可接收包含一同步位址範圍之一同步 命令。例如,一應用(未被展示於圖中),可偶爾產生該同步命令以便界定一恢復點。該同步命令可被產生,例如,經由一明確的呼叫或其可以是隱含於應用被寫入於其中之一些語言的使用。同步操作可以經由一軟體通道或一硬體通道至NVM 140。該應用可產生該等群組112之一個或多個以代表其之大尺寸資料結構,例如,資料列表、索引以及記錄。該應用接著可以群組位址範圍114填充於群組112,其反映該應用之整體資料結構。
同步操作可包含沖除指令,其是利用一處理器(未被展示於圖中)及/或被通訊至NVM 140之同步命令而被執行。例如,在同步操作期間,虛擬記憶體表(未被展示於圖中)、群組表110及/或子群組表(未被展示於圖中)可被使用以協調在那些利用同步命令之同步位址範圍116啟始地被參考之上的另外位址(或頁)之沖除。這些另外的位址可基於同步位址範圍是否被包含於群組表110之群組112的任何一群組位址範圍114中而利用群組表110被判定。
同步操作也可依據保持應用位準一致性之一順序(如利用群組表110被判定者)而轉移沖除之位址至另一節點,例如,第二節點150。例如,控制器120可響應於一同步命令,依據利用群組表110被判定的一順序,將群組位址範圍114自第一節點轉移至第二節點150。進一步地,第一節點100之控制器120可在該轉移完成之後發送一標記。該控制器可在該第二節點承認該標記之後,將複製位址132寫入至NVM 140。該群組表110將在下面參考圖2而更詳細地 被說明。
圖2是轉移一位址範圍至一第二節點290之第一節點100的另一範例方塊圖。於圖2中,第一節點200包含一群組表210、一子群組表220、一記錄器230、一寫時複製(COW)引擎240、一控制器250以及一VM 260、一臨界週期270以及一臨界數目280。第一節點200被展示以與一第二節點290和NVM 140介面,例如,經由一網路連接。
圖2之第一節點200和第二節點290可包含相似於圖1之第一節點100和第二節點150的功能及/或硬體。例如,圖2之群組表210、控制器250以及VM 260可分別地包含圖1之群組表110、控制器120以及VM 130的功能及/或硬體。
為了複製資料並且因此保持在各種型式的故障情況中之恢復能力之目的,控制器250可選擇地將被寫入至NVM 140及VM 260之記憶體位址範圍142的位址發送至其他裝置,例如,第二節點290。
群組表210被展示以包含一群組編號行211、一轉移屬性行213、一啟始位址行215、一範圍大小行217以及一備妥旗標行219。於此,該群組編號行211指示該群組表210具有三群組1-3。該等群組211之各者是與轉移屬性行213之一轉移屬性相關聯,其響應於同步命令而判定該相關聯的群組是否將被轉移。
例如,轉移屬性213可具有不曾、經常或條件性之一數值。該不曾數值可指示對應的群組不響應該同步命 令而被轉移。該經常數值可指示對應的群組是響應該同步命令而經常被轉移。該條件性數值可指示僅如果該同步命令之一型式是主要時,則該對應的群組將被轉移。因此,圖2中,響應於該同步命令,第一群組1可能不曾被轉移,第二群組2可能經常被轉移並且僅如果該同步命令是一主要型式(如,相對於一正常型式)時,該第三群組3方可被轉移。如下面之說明,當被組態而以一COW模式操作時,則寫入被重新指引至VM 260之複製位址262並且正常同步操作可沖除資料至VM 260之複製位址262,但是不修改在NVM 140之第一記憶體位址144也不指定用以轉移至NVM 140或第二節點290之複製。但是,主要型式的同步操作可導致所有複製位置將被沖除至NVM 140它本身以及被轉移至第二節點290。因此,主要型式的同步操作可經由一可兼容介面而致能與COW實行例之整合並且致能複製發送之進一步的最佳化。
圖1中說明之群組位址範圍114可包含來自啟始位址行215之一啟始位址以及來自群組表210之範圍測大小行217的一對應範圍大小。該範圍大小可指示下面被包含於群組位址範圍中之啟始位址的一些連續位址。於一實施例中,這些位址可以是它們不改變各處之存取脈絡或時間之實際位址。例如,這些位址可以參考NVM 140中之相同資料儲存位置,而無視於哪個處理器線程、處理程序或節點正處理該存取。雖然群組位址範圍由一啟始位址及一範圍大小所構成,群組位址範圍之實施例可以是任何之大小及/ 或位址解析。例如,該位址解析可以是位元組、快取線、快取頁或其他區塊係數。
該群組表210之備妥旗標行219可提供一備妥旗標以供用於群組位址範圍之各者。該備妥旗標可以關於排程相關的群組位址範圍至另一節點(例如,第二節點290)之轉移。例如,如果轉移備妥旗標被重置或0,這可指示目前不需要轉移相關的群組位址範圍。另一方面,如果該轉移備妥旗標被設定或1,這可指示相關的群組位址範圍之轉移是正在被編排(例如,被請求、被排列或正在進行中)。
於此,群組表210之三群組1-3各具有一不同的轉移屬性設定。被包含於各種群組1-3中之群組位址範圍是非重疊的。因此,NVM 140之各記憶體位置282多數是在一群組中。開始於啟始1和2000之該等群組位址範圍被設定備妥旗標。因此,為了冗餘、複製及/或參與其他富含資料服務之目的,它們目前正被轉移至另一伺服器。
子群組表220被展示以包含一子群組編號行221、COW行223、一啟始位址行225、一範圍大小行227以及一備妥旗標行229。該子群組220之子群組數目數碼行221、啟始位址行225、範圍大小行227以及備妥旗標行229可以是分別地相似於群組表210之群組數目數碼行211、啟始位址行215、範圍大小行217以及備妥旗標行219之功能。例如,子群組編號行221可以表列一個或多個子群組。該等子群組之各者可以是與一子群組位址範圍225和227以及來自備妥旗標行229之一備妥旗標相關聯。
子群組位址範圍225和227可由來自啟始位址行225之一啟始位址及來自範圍大小行227之一範圍大小所構成。子群組位址範圍225和227之各者被包含於群組表210之群組位址範圍215和217之一者中。因此,一子群組中之每個位址也是在該等群組之一者中。於這實施例中,任何子群組也是整體地被包含在該等群組之一單獨的一者內。該等子群組之各者也是與COW旗標行223之一COW旗標相關聯。該COW旗標可指示對應的子群組使用一COW操作。
如果寫入至對應的子群組位址範圍是將被實行於對應至子群組位址範圍的資料之一複製上,則COW旗標可被設定。例如,如果該COW旗標被設定,則在NVM 140之一個或更多位址的一複製,(例如,第一記憶體位址144、記憶體位址範圍142或位址之一頁)可被儲存在VM 260中以供用於至該NVM 140的原始位址之一寫入要求。隨後的讀取和寫入接著可被重新指引至複製資料。原始資料可被使用以在電力損失之後恢復至一致的狀態。控制器250可等待,以響應於同步命令而寫入複製資料返回至NVM 140,直至該複製資料被轉移至另一裝置(例如,第二節點290)為止。
該COW 240引擎可以是,例如,包含用以實行下面說明之功能電子電路的一硬體裝置,例如控制邏輯及/或記憶體。此外或如一另外者,該COW 240引擎可被實行,如可於一機器可讀取儲存媒體上被編碼並且可利用一處理器執行的一指令串列。該COW 240引擎可響應於利用處理 器260寫入至子群組位址範圍225和227之操作,而產生與子群組位址範圍225和227相關聯之資料242的複製。如果該COW旗標被設定以及同步命令之型式是主要的,則資料之複製可被寫入至NVM 140。
被包含於一群組中之子群組位址範圍225和227是與群組之轉移屬性相關聯。於此,子群組1和2是第三群組3之子集,其具有一條件性轉移屬性。因為該COW旗標被設定以供用於子群組2,如果主要型式的同步命令被接收而具有被包含於子群組2中之一同步位址範圍,接著子群組2之複製位址是用以在複製資料被轉移至第二節點290之後被寫入至NVM 140。
有一優先關係在群組和子群組之間,以至於在一子群組中之位址位置的同步操作不施加至其他子群組中之位置。但是,該等同步操作施加至該相同群組中之位置,其不是在任何其他子群組中。這致能一有用的能力以管理用於一些資料結構之細粒度一致性以及用於其他者的粗粒度一致性。例如,大量資料可以是在一群組中,但不是在一子群組中,而相關之元資料則可以是在在相同群組內之子群組中。於這範例中,如果同步範圍包含在含有元資料之子群組內的任何位置,這可自動地導致整個子群組以及在大的相關聯群組中之大量資料的同步。
非子群組資料可首先被同步,其之後緊隨的是子群組資料,之後緊隨的是利用同步位址範圍被指定的資料。如果子群組之COW旗標被設定,則複製資料可被寫回 至NVM 140作為子群組的同步的部份。群組位址範圍之備妥旗標可以不施加至目前是在子群組內之任何位置,因為其利用子群組之備妥旗標被超控。供用於子群組位址範圍225和227之備妥旗標的一數值可代替供用於包含子群組位址範圍225和227群組之位址範圍215和217之備妥旗標之一數值。
同步操作可包含沖除及/或轉移操作。該轉移操作可緊隨在沖除操作之後並且接著遵循上述相對於同步之順序。該轉移操作可響應於同步命令而利用控制器250被實行,具有沖除的資料被轉移至另一裝置,例如,第二節點290。例如,該控制器250可於子群組位址範圍225和227之前沖除以及轉移包含子群組位址範圍225及227之群組位址範圍215及217,並且如果同步位址範圍被包含在子群組位址範圍中,則可轉移且沖除於同步位址範圍之前的子群組位址範圍225和227。
將被轉移之群組或子群組位址範圍可以依據上面說明之優先序而首先藉由設定子群組或群組之任一者中的備妥旗標而被記錄。接著,位址範圍中之資料可被傳送至參與於群組中之第二節點290。除非該群組及/或子群組位址範圍是最後被轉移之範圍,否則群組和子群組位址範圍之備妥旗標可在一所給予的同步操作期間,於對應的群組及/或子群組位址範圍被轉移至第二節點290之後被重置。
於此情況中,該控制器250可等待以重置最後範 圍之備妥旗標,直至在整個轉移是完成之後。例如,如上所提及,控制器250一般可最後轉移同步位址範圍至第二節點290。接著,控制器250可發送一標記或封包至第二節點290以指示一個一致性點已被達到。可恢復之一致性點可跨越複數個記憶體範圍(例如,頁或快取線、複數個同步操作以及複數個伺服器)。
最後轉移備妥旗標之重置因此被延遲直至標記之轉移被完成並且所有的COW資料已被提交至NVM 140。當沒有更多與被設定的備妥旗標相關聯之位址範圍時,於子群組或群組中,該轉移完成。
記錄單元230可儲存順利地被轉移至第二節點290的一資料列表並且也可儲存用以被轉移至第二節點290之資料。於此,記錄單元230被展示以包含一啟始位址行232、一範圍大小行234、一資料行236以及一標記行238。記錄單元230之啟始位址232和範圍大小行234之功能可以是相似於群組表210之啟始位址215和範圍大小行217。例如,記錄單元230之啟始位址232和範圍大小行234可以表列正編排的群組或子群組位址範圍以供用轉移至第二節點290。資料行236可視為供用於將被轉移至第二節點290之資料的一佇列或緩衝器。
標記行238之一標記可在對應的群組及/或子群組位址範圍已順利地被轉移至第二節點之後而利用控制器250被設定。因此,於轉移被中斷之事件中,例如,在電源故障期間,控制器250可在之後檢查記錄單元230以判定哪 些的位址範圍順利地被轉移。因此,控制器250可能不再傳送用於設定標記之資料。相反地,控制器250可能放棄在標記被設定之後被傳送的任何資料,以便回復至一先前的一致性點。進一步地,由於記錄單元230作用如供用於資料之一緩衝器,記錄單元230可轉移無關於控制器250之資料,因此控制器250可自由地實行其他操作。因此,記錄單元230可改進資料轉移至第二節點290之效能。
臨界週期270可界定一時間量,第一節點200可等待來自第二節點290之一承認,例如,收到標記或群組位址範圍之承認。臨界數目280可界定,如果沒有承認被收到,則第一節點200可重新發送標記或群組位址範圍之次數。臨界週期270以及數目280可同時地利用控制器250被監控。例如,當等候承認之時,該控制器250可計算已消逝之時間量以及一位址或標記已被重新發送之一次數。如果臨界週期270及/或臨界數目280被超出,第一節點200可推斷第二節點290是不能提交至轉移並且因此放棄複製位址262以便保持第二節點290之微小性。
如上所述,第二節點290可包含相似於第一節點200之構件。例如,第二節點290也可包含一臨界週期(未被展示於圖中)、一臨界數目(未被展示於圖中)、以及一記錄(未被展示於圖中)。但是,臨界週期及/或數目可能是不同的及/或對於不同型式的發送被量測。進一步地,第二節點290之記錄也可記錄在轉移期間自第一節點200接收之位址範圍。
實施例可藉由允許應用明確地表示哪些記憶體位置將一起被同步化作為相同群組之部份而減低將被沖除及/或被轉移之一資料數量。具有群組位址範圍之群組的存在可致能將藉由同步操作被實行之應用一致性需求,而保持同步操作語法之向後兼容性。在群組內之子群組可致能較細粒度快取沖除而減低性能破壞。此外,在子群組內及在子群組外之位址範圍可在一單一群組內正確地被管理。群組及子群組可基於明確地被指定的應用需求以及行為,而致能用於冗餘、遠端複製或時間點複製之近期寫入的更有效發送,其中細粒度更新可被群組成為較不頻繁的發送。
圖3A-3D是在圖2之第一以及第二節點200與290之間的各種操作狀態之範例時序圖。圖3A例示一正常狀態。在一時間T0期間,第一節點200之控制器250接收至COW範圍之一位址的一寫入要求。控制器250接著傳送一命令以使NVM 140之一位址144,其係關聯COW範圍的位址,被複製至VM 260。依序的寫入操作接著在VM 260之複製位址262上被進行。接著,控制器250接收包含一同步位址範圍之一同步命令。於此,同步位址範圍被包含於一子群組並且其一群組具有允許轉移繼續進行之一轉移屬性數值。因此,開始於時間T1,控制器250開始轉移非群組位址至第二節點290,並且第二節點290承認這轉移之接收。
接著,控制器250轉移群組位址範圍(不包括任何子群組位址範圍),並且第二節點290承認接收。當接收到該承認時,控制器250重置對應的備妥旗標。接著,控制器 250轉移子群組位址範圍(不包括該同步位址範圍),並且第二節點290再次承認接收。當接收該承認時,控制器250重置對應的備妥旗標。隨後,控制器250轉移同步位址範圍,並且第二節點290承認其接收。
但是,控制器250不重置對應的備妥旗標。相反地,控制器250轉移標記。當接收該標記時,第二節點290提交所有被轉移的位址至其自己的NVM,並且接著傳回一承認。在時間T2,在接收來自第二節點290之承認之後,控制器250傳送一命令至VM 260以使複製位址262被寫入至NVM 140。僅在複製位址262重疊寫入至第一記憶體位址144內之後,控制器250重置最後備妥旗標並且因此完成轉移。此外,控制器250也可清除在這點之記錄230。選擇地,控制器250也可傳送一訊息至第二節點290以指示第一節點200之記錄230已被清除。第二節點290接著也可響應於這訊息而清除其之記錄。
於圖3B中,其中第一節點200在轉移中間電力損失或重置之一狀態被展示。於此,在時間T1,第一節點200在傳送群組位址範圍之一者以及接收一承認之後被重置。於此情況中,控制器250停止且留下未完成之轉移。進一步地,複製位址在被轉移至第二節點之前被遺失,因為其僅被儲存在VM 260中。當第二節點290不接收下一個位址範圍時,第二節點再傳送先前的承認。第二節點290可在第二節點290之一臨界週期的期間再多次傳送先前的承認,其次數高至第二節點290之一臨界數目。如果該臨界數目及/或 週期達到不被接收的下一個位址範圍,第二節點290可判定第一節點200是不可達到,並且放棄在這會期之期間自第一節點200所接收之所有被轉移的位址範圍。
圖3C例示其中第二節點290在轉移中間電力損失或被重置之一狀態。於此,在時間T1,當自第一節點250接收標記時,第二節點290被重置,並且因此不承認收到該標記。當第一節點290沒接收到該承認時,第一節點再傳送該標記。第一節點290可以在第一節點200之一臨界週期270期間,再多次傳送該標記(或任何位址範圍),直至達到第一節點200之一臨界數目280。如果臨界數目數碼280及/或週期270達到並且沒承認被接收,則第一節點200可判定第二節點290不是可達到,並且傳送一命令至VM 260以放棄複製位址262。該VM 260接著可放棄該複製位址262,因而第一節點200可保留與第二節點290之記憶體一致性。
於圖3D中,一狀態被展示,於其中,在發送標記之後但是在第一節點可提交複製位址262至NVM 140之前,第一節點200電力損失。於此,在時間T1,控制器250轉移最後位址範圍並接收來自第二節點290之接收承認。如上所述,控制器250尚未重置對應的備妥旗標。接著,控制器250發送該標記。當接收來自第一節點200之標記時,第二節點290提交該轉移至其之NVM並且傳送其之一承認。隨後,第一節點200遭受電力損失並且在其可自VM 260被取得之前失去複製位址262。當再被供電時並且注意到僅最後位址範圍之備妥旗標仍然被設定時,第一節點200察覺到該 轉移未被完成。
接著,第一節點200之控制器250檢查記錄230。如上所述,當收到確認時,位址範圍被記錄於記錄230中作為順利地被轉移。在注意到該標記順利地被轉移之後,該控制器250判定即使第一節點200遺失該複製位址262,該第二節點290仍然可具有該複製位址262。因此,該控制器250再次傳送最後群組位址範圍至第二節點290。當在已接收該標記之後再次地接收該最後位址範圍時,則該第二節點200判定第一節點200已遺失至少一些該被轉移的位址,例如,複製位址262。
接著,該第二節點290傳送至少該複製位址262並且高至所有被轉移的位址範圍返回至該第一節點200。該第一節點20接著提交任何以及所有遺失的位址至NVM 140。接著,控制器250承認收到一個或多個被轉回之位址。該控制器250接著也重置最後備妥旗標。
相似於圖3A,第一和第二節點200和290也可在隨後清除它們的記錄。因此,如果轉移因電力損失被中斷,控制器250是可自第二節點290接收複製位址262,該標記被記錄於記錄230中,該複製位址在該記錄230中標記以及該複製位址262尚未被寫入至NVM 140之前被記錄。
圖4是包含用以將一位址範圍自一第一節點轉移至一第二節點之指令的電腦裝置400之範例方塊圖。於圖4實施例中,該電腦裝置400包含一處理器410和一機器可讀取儲存媒體420。該機器可讀取儲存媒體420進一步地包含 用以將一位址範圍自一第一節點(未被展示於圖中)轉移至一第二節點(未被展示於圖中)之指令422、424和426。
該電腦裝置400可以是,例如,一安全微處理機、一筆記型電腦、一桌上型電腦、集所有功能於一身之一系統、一伺服器、一網路裝置、一控制器、一無線裝置、或可執行指令422、424及426之任何其他型式的裝置。於某些範例中,電腦裝置400可包含或是連接到另外的構件,例如,記憶體、控制器等等。
處理器410可以是,至少一中央處理單元(CPU)、至少一半導體為基礎之微處理機、至少一圖形處理單元(GPU)、適用於儲存在機器可讀取儲存媒體420中之指令的取出和執行之其他硬體裝置、或其之組合。處理器410可擷取、解碼、以及執行指令422、424及426以實行自一第一節點轉移位址範圍至一第二節點。另外地或除了取出和執行指令之外,處理器410可包含至少一積體電路(IC)、其他控制邏輯、其他電子電路、或包含用以進行指令422、424及426之功能的一些電子構件之組合。
機器可讀取儲存媒體420可以是包含或儲存可執行指令的任何電氣、磁式、光學、或其他實體儲存裝置。因此,機器可讀取儲存媒體420可以是,例如,隨機存取記憶體(RAM)、電氣可消除可程控唯讀記憶體(EEPROM)、儲存驅動器、小型光碟唯讀記憶體(CD-ROM)、以及其類似者。例如,機器可讀取儲存媒體420可以是非暫態的。如在下面更詳細地說明,機器可讀取儲存媒體420可藉由用以將 位址範圍自該第一節點轉移至第二節點之一串列可執行指令而被編碼。
此外,指令422、424和426當利用一處理器被執行時(例如,經由該處理器之一處理元件或複數個處理元件),可導致該處理器進行處理程序,例如,圖4之處理程序。例如,產生指令422可利用該處理器410被執行,以在第一節點,產生被映射至一非依電性記憶體(NVM)之記憶體位址範圍的一群組位址範圍。複製指令424可響應於用以被映射至群組位址範圍之第一記憶體位址的寫入操作,利用處理器410被執行,以在第一節點,複製記憶體位址範圍之一第一記憶體位址至一依電性記憶體(未被展示於圖中)。轉移指令426可利用處理器410被執行,以響應於包含一同步位址範圍之一同步命令而將群組位址範圍自第一節點轉移至第二節點。群組位址範圍包含複製位址,其中於同步位址範圍外以及於群組位址範圍內之一位址是將在同步範圍之前被轉移。
如果第二節點不在一第一臨界週期之內承認群組位址範圍之接收,則第一節點可放棄複製位址。如果第二節點在第二臨界週期之內承認群組位址範圍之接收,則複製位址可被寫入至NVM。
第一節點可以僅在群組位址範圍的轉移完成之後傳送一標記至第二節點。該第二節點可承認該標記以便承認該群組位址範圍之接收。如果該第二節點不在該第二臨界週期之內接收該標記,則該第二節點可放棄被轉移群 組位址範圍。
圖5是用以將一位址範圍自一第一節點轉移至一第二節點的方法500之範例流程圖。雖然方法500之執行將在下面參考該第一節點100被說明,用於方法400之執行的其他適當構件也可被採用,例如,第一節點200或300。另外地,用以執行方法500之構件可以在複數個裝置之間(例如,與輸入和輸出裝置通訊之一處理裝置)延伸。於某些情節中,協調行動中之複數個裝置可被考慮為一單一裝置以進行方法500。方法500可以由被儲存在一機器可讀取儲存器媒體(例如,儲存媒體420)上之可執行指令之形式、及/或電子電路形式而被實行。
在方塊510,第一節點100接收包含一同步位址範圍之一同步命令。接著,在方塊520,第一節點100判定包含同步位址範圍之一群組位址範圍114。群組位址範圍114可被映射至一NVM 140之一記憶體位址範圍142。如果一第一記憶體位址144被映射至該群組位址範圍114且一寫入存取對於該第一記憶體位址被要求,則記憶體位址範圍140之一第一記憶體位址144可被複製132至一VM 130。寫入存取接著可被准予至複製位址132,以代替第一記憶體位址144。
接著,在方塊530,第一節點100將包含同步位址範圍的群組位址範圍114轉移至一第二節點150,其使同步位址範圍最後被轉移。在方塊540,其被判定是否自該第一節點100至該第二節點150之轉移被完成。如果該轉移不被完成,例如,由於在第一節點100電力損失,則方法500行 進至方塊560,其中第一節點100放棄複製位址132。
另一方面,如果轉移被完成,方法500自方塊540行進至方塊550,其中第一節點100發送一標記至第二節點150。接著,在方塊570,方法500判定第二節點150是否在一第一時間臨界週期內承認至第一節點100之標記。如果該標記不被承認,則方法500返回至方塊560,其中複製位址132被第一節點100所放棄。
然而,如果標記被承認,則方法500自方塊570行進至方塊580,其中第一節點100寫入複製位址132至NVM 140。第二節點150可在第二節點150順利地儲存一整個被轉移群組位址範圍114之後承認該標記。如果第二節點150不在一第二時間臨界週期內接收該標記,則第二節點150可放棄被轉移之群組位址範圍114。
依據先前所述,實施例可鏈接記憶體COW操作與群組及/或子群組。這同步機構可被使用以實行在提交複數個COW範圍至一主要的記憶體影像(例如,NVM)的處理程序內之微小性。因而,在一COW同步操作期間之電力損失或失效情況中,同步化將以其之整體或全然沒有之任一者而完成。
100‧‧‧第一節點
110‧‧‧群組表
112‧‧‧群組
114‧‧‧群組位址範圍
116‧‧‧寫時複製(COW)範圍
120‧‧‧控制器
130‧‧‧依電性記憶體(VM)
132‧‧‧資料
140‧‧‧非依電性記憶體(NVM)
142‧‧‧記憶體位置範圍
144‧‧‧第一記憶體位址
150‧‧‧第二節點

Claims (15)

  1. 一種第一節點,其包括:一群組表,其包含與被映射至一非依電性記憶體(NVM)之一記憶體位址範圍的一群組位址範圍相關聯之一群組,該群組位址範圍包含一寫時複製(COW)範圍,如果一第一記憶體位址被映射至該寫時複製(COW)範圍且一寫入存取對於該第一記憶體位址被要求,則該記憶體位址範圍之該第一記憶體位址將被複製至一依電性記憶體;一控制器,其響應一同步命令,依據藉由該群組表被判定的一順序而將該群組位址範圍自該第一節點轉移至一第二節點,其中該控制器是在該轉移完成之後發送一標記,以及該控制器是在該第二節點承認該標記之後將該複製位址寫入至該非依電性記憶體(NVM)。
  2. 如請求項1之第一節點,其中,該群組位址範圍是與一備妥旗標相關聯,如果該群組位址範圍是將被轉移至該第二節點,則該控制器設定該群組位址範圍之該備妥旗標,並且在該群組位址範圍被轉移至該第二節點之後,該控制器重置該群組位址範圍之該備妥旗標。
  3. 如請求項2之第一節點,其中,該群組表包含複數個群組位址範圍,該等群組位址 範圍之各者是與複數個備妥旗標之一者相關聯,以及在該第二節點承認收到該標記及該複製位址被寫入至該非依電性記憶體之後,該控制器重置最後被轉移的該群組位址範圍之該備妥旗標。
  4. 如請求項3之第一節點,進一步包括:一記錄器,其在該等群組位址範圍被轉移至該第二節點之後記錄該等群組位址範圍,其中在該標記被轉移至該第二節點之後,該記錄器記錄該標記。
  5. 如請求項4之第一節點,其中,如果該複製位址在被轉移至該第二節點之前被遺失,則該控制器停止及留下該轉移未完成者,以及如果該第二節點未接收該標記,則該第二節點放棄自該第一節點被轉移之該群組位址範圍。
  6. 如請求項5之第一節點,其中,如果該轉移由於一電力損失被中斷,則該控制器自該第二節點接收該複製位址,該標記被記錄於該記錄器中,在該記錄器中之該標記及該複製位址未被寫入至該非依電性記憶體(NVM)之前該寫時複製(COW)範圍被記錄。
  7. 如請求項4之第一節點,其中,在該最後群組位址範圍之該備妥旗標被重置之後,該控制器清除該記錄,以及如果在該複製位址被寫入至該非依電性記憶體 (NVM)之前該第一節點失去電力,則該複製位址被遺失。
  8. 如請求項3之第一節點,其中,如果該第二節點不承認收到該標記,則該控制器重送該標記至該第二節點,並且在該第二節點自該第一節點接收該標記之後,該第二節點承認該標記並且被轉移至該第二節點的所有該等群組位址範圍被儲存在可利用該第二節點存取的一非依電性記憶體(NVM)。
  9. 如請求項3之第一節點,其中,如果該第一節點被重置並且在該第一節點被重置之後僅該最後群組位址範圍之該備妥旗標保持被設定,則該控制器傳送該最後群組位址範圍,以及如果在接收該標記之後該第二節點接收該最後群組位址範圍,則該第二節點傳送所有被轉移的該等群組位址範圍返回至該第一節點。
  10. 如請求項1之第一節點,其中,如果在該標記至該第二節點之一第一臨界週期及一第一臨界重新發送數目的至少一者之後,該標記不被該第二節點所承認,則該第一節點放棄該複製位址,以及如果在利用該第二節點最後接收的該群組位址範圍之一承認的一第二臨界週期及一第二臨界重新發送數目的至少一者之後,該第二節點不接收該標記,則該 第二節點放棄自該第一節點被轉移的該群組位址範圍。
  11. 如請求項1之第一節點,其中,該複製位址係響應對於該第一記憶體位址之一寫入存取而被修改,以及在該第二節點承認該標記之後,該控制器將該複製位址寫入返回至該非依電性記憶體(NVM)之該第一記憶體位址。
  12. 一種方法,其包括下列步驟:在一第一節點,接收包含一同步位址範圍之一同步命令;在該第一節點,判定包含該同步位址範圍之一群組位址範圍,該記憶體位址範圍將被映射至一非依電性記憶體(NVM)之一記憶體位址範圍,如果一第一記憶體位址被映射至該群組位址範圍且一寫入存取對於該第一記憶體位址被要求,且該寫入存取被許可至一複製位址,則該記憶體位址範圍的該第一記憶體位址將被複製至一依電性記憶體;自該第一節點將包含該同步位址範圍之該群組位址範圍轉移至一第二節點;在該轉移被完成之後,自該第一節點發送一標記至該第二節點;如果該第二節點承認該標記,則將該複製位址寫入至該非依電性記憶體(NVM);以及如果在一第一臨界週期之後,該轉移未被完成及該 第二節點不承認該標記之至少一者,則拋棄該複製位址。
  13. 如請求項12之方法,其中,在該第二節點順利地儲存一整體被轉移群組位址範圍之後,該第二節點承認該標記,以及如果在一第二臨界週期之內該第二節點未接收該標記,則該第二節點放棄該被轉移群組位址範圍。
  14. 一種儲存指令之非暫態電腦可讀取儲存媒體,如果該等指令藉由一裝置之一處理器被執行,則導致該處理器進行下列步驟:在一第一節點,產生被映射至一非依電性記憶體(NVM)之一記憶體位址範圍的一群組位址範圍;在該第一節點,響應供用於被映射至該群組位址範圍之一第一記憶體位址的一寫入操作,複製該記憶體位址範圍之該第一記憶體位址至一依電性記憶體;以及響應於包含一同步位址範圍之一同步命令,自該第一節點將該群組位址範圍轉移至該第二節點,該群組位址範圍包含該複製位址,其中如果在一第一臨界週期之內該第二節點未承認該群組位址範圍之接收,則該複製位址被該第一節點放棄,並且如果在一第二臨界週期之內該第二節點承認該群組位址範圍之接收,則該複製位址被寫入至該非依電性記憶體(NVM)。
  15. 如請求項14之非暫態電腦可讀取儲存媒體,其中,僅在該群組位址範圍之轉移完成之後,該第一節點傳送一標記至該第二節點;該第二節點承認該標記以承認該群組位址範圍之接收;以及如果在該第二臨界週期之內該第二節點未接收該標記,則該第二節點放棄該被轉移群組位址範圍。
TW103111472A 2013-03-28 2014-03-27 自第一節點到第二節點之位址範圍轉移技術 TW201502778A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034382 WO2014158166A1 (en) 2013-03-28 2013-03-28 Address range transfer from first node to second node

Publications (1)

Publication Number Publication Date
TW201502778A true TW201502778A (zh) 2015-01-16

Family

ID=51624948

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103111472A TW201502778A (zh) 2013-03-28 2014-03-27 自第一節點到第二節點之位址範圍轉移技術

Country Status (5)

Country Link
US (1) US9703701B2 (zh)
EP (1) EP2979185B1 (zh)
CN (1) CN104937565B (zh)
TW (1) TW201502778A (zh)
WO (1) WO2014158166A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019403B2 (en) * 2015-11-04 2018-07-10 International Business Machines Corporation Mapping data locations using data transmissions
CN106919531B (zh) * 2015-12-25 2020-02-21 华为技术有限公司 基于非易失性存储总线协议的交互方法及设备
US10795782B2 (en) 2018-04-02 2020-10-06 Hewlett Packard Enterprise Development Lp Data processing apparatuses and methods to support transferring control between a primary data processing system and a secondary data processing system in response to an event
TWI696951B (zh) * 2018-08-31 2020-06-21 威剛科技股份有限公司 儲存裝置異常斷電的處理系統和方法
US11544093B2 (en) * 2019-09-27 2023-01-03 Intel Corporation Virtual machine replication and migration
US10990526B1 (en) 2020-04-30 2021-04-27 Micron Technology, Inc. Handling asynchronous power loss in a memory sub-system that programs sequentially
CN112507032B (zh) * 2020-12-22 2022-05-27 正链科技(深圳)有限公司 一种kademlia协议的k-桶构造改进方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6360231B1 (en) * 1999-02-26 2002-03-19 Hewlett-Packard Company Transactional memory for distributed shared memory multi-processor computer systems
US6658540B1 (en) 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
US6728736B2 (en) 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
US6789156B1 (en) 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7133982B2 (en) 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
EP1510924B1 (en) 2003-08-27 2008-07-23 ARM Limited Apparatus and method for handling transactions with writes and reads to EEPROM or Flash memories
US7133986B2 (en) 2003-09-29 2006-11-07 International Business Machines Corporation Method, system, and program for forming a consistency group
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
JP2005310008A (ja) 2004-04-23 2005-11-04 Fuji Xerox Co Ltd 木構造データ同期装置および方法
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7975018B2 (en) * 2004-07-07 2011-07-05 Emc Corporation Systems and methods for providing distributed cache coherence
US7818515B1 (en) 2004-08-10 2010-10-19 Symantec Operating Corporation System and method for enforcing device grouping rules for storage virtualization
US8302178B2 (en) 2005-03-07 2012-10-30 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
US7475207B2 (en) 2005-07-14 2009-01-06 Emc Corporation Maintaining write order fidelity on a multi-writer system
US7464126B2 (en) 2005-07-21 2008-12-09 International Business Machines Corporation Method for creating an application-consistent remote copy of data using remote mirroring
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US7640395B2 (en) 2006-03-30 2009-12-29 Intel Corporation Maintaining write ordering in a system
US7788231B2 (en) 2006-04-18 2010-08-31 International Business Machines Corporation Using a heartbeat signal to maintain data consistency for writes to source storage copied to target storage
US7647454B2 (en) * 2006-06-12 2010-01-12 Hewlett-Packard Development Company, L.P. Transactional shared memory system and method of control
CN102522118A (zh) 2006-07-31 2012-06-27 株式会社东芝 控制非易失性存储器的方法
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US20090063807A1 (en) 2007-08-29 2009-03-05 International Business Machines Corporation Data redistribution in shared nothing architecture
JP5101378B2 (ja) 2008-04-16 2012-12-19 ソニー株式会社 リーダライタ、通信処理装置、通信処理方法、データ管理システム及び通信システム
US8099387B2 (en) 2008-06-02 2012-01-17 International Business Machines Corporation Managing consistency groups using heterogeneous replication engines
JPWO2010001602A1 (ja) 2008-07-01 2011-12-15 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、データ処理装置、不揮発性記憶装置システム及び方法
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8762642B2 (en) 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8438332B2 (en) 2009-06-22 2013-05-07 International Business Machines Corporation Apparatus and method to maintain write operation atomicity where a data transfer operation crosses a data storage medium track boundary
US9063886B2 (en) 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US9053027B1 (en) * 2011-12-21 2015-06-09 Emc Corporation Techniques for maintaining and restoring dirty caches across CPU resets
US9678863B2 (en) * 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US9058244B2 (en) * 2012-09-13 2015-06-16 International Business Machines Corporation Durable and coherent cache transactions between volatile and non-volatile memories

Also Published As

Publication number Publication date
CN104937565A (zh) 2015-09-23
EP2979185A4 (en) 2016-10-19
US9703701B2 (en) 2017-07-11
EP2979185B1 (en) 2019-01-30
CN104937565B (zh) 2017-11-17
WO2014158166A1 (en) 2014-10-02
US20150370702A1 (en) 2015-12-24
EP2979185A1 (en) 2016-02-03

Similar Documents

Publication Publication Date Title
TW201502778A (zh) 自第一節點到第二節點之位址範圍轉移技術
TWI531901B (zh) 群組表資料沖除技術
US9122401B2 (en) Efficient enforcement of command execution order in solid state drives
US10417190B1 (en) Log-structured file system for zone block devices with small zones
US20190391761A1 (en) Storage device with a callback response
WO2015054897A1 (zh) 数据存储方法、数据存储装置和存储设备
TW201241616A (en) Power failure management in components of storage area network
WO2020015366A1 (zh) 一种数据迁移方法及装置
CN103207894A (zh) 一种多路实时视频数据存储系统及其进行缓存控制的方法
TWI702500B (zh) 使用多串流的系統、方法以及製品
US11003614B2 (en) Embedding protocol parameters in data streams between host devices and storage devices
CN110457261A (zh) 数据访问方法、装置及服务器
WO2005109252A1 (en) System and method for facilitating a consistent point-in-time copy
TW201835771A (zh) 用於在非託管快閃記憶體設備中複製資料頁的方法和裝置
WO2020087931A1 (zh) 一种数据备份方法、装置及系统
CN101741809A (zh) 基于嵌入式一体化虚拟磁带库的远程数据复制的方法和系统
JP2006085408A (ja) データ保存管理方法およびデータライフサイクルマネージメントシステム
TWI582599B (zh) 資料傳輸方法、記憶體控制器、資料傳輸系統
US11468091B2 (en) Maintaining consistency of asynchronous replication
JP2016018384A (ja) ストレージ制御装置、ストレージシステム、及びプログラム
US20170085645A1 (en) Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
JP5963324B2 (ja) 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
CN114840054B (zh) 时间同步方法、装置、系统、设备及存储介质
WO2021212337A1 (zh) 一种数据访问方法及装置
JP2005301560A (ja) クラスタファイルサーバ