背景技術(shù):
消費者機(jī)器可以具有處理器和存儲器并且可以運行操作系統(tǒng)和應(yīng)用。儲存提供器可以包括諸如硬盤驅(qū)動器陣列的儲存設(shè)備。消費者機(jī)器可以通過諸如光纖通道、互聯(lián)網(wǎng)小型計算機(jī)系統(tǒng)接口(iscsi)、串行連接小型計算機(jī)系統(tǒng)接口(sas)等的i/o通道來與儲存提供器進(jìn)行通信。消費者機(jī)器可以構(gòu)建和排隊i/o請求。消費者機(jī)器還可以高速緩存來自儲存提供器的數(shù)據(jù),以減少對經(jīng)常使用的數(shù)據(jù)的訪問時間。處理i/o請求和數(shù)據(jù)高速緩存可能會消耗消費者機(jī)器處理器的資源。
附圖說明
下面將參考以下附圖描述各種示例。
圖1是根據(jù)實現(xiàn)的包括儲存存儲器直接訪問(smda)提供器的示例系統(tǒng)的框圖。
圖2是根據(jù)實現(xiàn)的用于對來自消費者機(jī)器的固定(pin)命令進(jìn)行響應(yīng)的示例方法的流程圖。
圖3是根據(jù)實現(xiàn)的用于對來自消費者機(jī)器的解除固定(unpin)命令進(jìn)行響應(yīng)的示例方法的流程圖。
圖4是根據(jù)實現(xiàn)的用于監(jiān)視隱式一致性點條件的示例方法的流程圖。
圖5是根據(jù)實現(xiàn)的用于對多個解除固定命令進(jìn)行響應(yīng)的示例方法的流程圖。
圖6是根據(jù)實現(xiàn)的示例smda提供器的框圖。
圖7是根據(jù)實現(xiàn)的用于對固定命令進(jìn)行響應(yīng)和用于對解除固定命令進(jìn)行響應(yīng)的示例方法的流程圖。
圖8是示出用經(jīng)由存儲器地址訪問smda提供器的儲存存儲器區(qū)域中的數(shù)據(jù)的示例指令進(jìn)行編碼的非暫時機(jī)器可讀介質(zhì)的框圖。
具體實施方式
消費者機(jī)器(例如,服務(wù)器、工作站或其他計算設(shè)備)可以具有處理器和存儲器。消費者機(jī)器的操作系統(tǒng)可以管理存儲器并且可以運行應(yīng)用。消費者機(jī)器還可以與包括諸如硬盤驅(qū)動器、固態(tài)驅(qū)動器、硬盤驅(qū)動器陣列、磁帶驅(qū)動器、光盤驅(qū)動器等的(一個或多個)儲存設(shè)備的儲存提供器進(jìn)行通信。消費者機(jī)器可以遠(yuǎn)離儲存提供器和/或與儲存提供器隔離。消費者機(jī)器可以通過諸如光纖通道、互聯(lián)網(wǎng)小型計算機(jī)系統(tǒng)接口(iscsi)、串行連接小型計算機(jī)系統(tǒng)接口(sas)等的i/o通道來與儲存提供器進(jìn)行通信。為了執(zhí)行這樣的通信,消費者機(jī)器可以構(gòu)建和排隊i/o請求(例如,數(shù)據(jù)讀取、寫入、修改),并將i/o請求發(fā)送到儲存提供器。儲存提供器然后可以處理接收到的i/o請求。與消費者機(jī)器處理器能夠構(gòu)建和排隊i/o請求的速度相比,儲存提供器在處理i/o請求時可能較慢,這至少部分是由于儲存提供器的(一個或多個)儲存設(shè)備的訪問時間所引起的。由于儲存提供器的i/o請求處理速度可能較慢,所以消費者機(jī)器可以高速緩存來自儲存提供器的數(shù)據(jù),以減少常用數(shù)據(jù)的訪問時間。此外,消費者機(jī)器處理器可以在寫入或修改儲存提供器處的數(shù)據(jù)之前執(zhí)行數(shù)據(jù)日志記錄,以支持諸如數(shù)據(jù)更新的原子性之類的事務(wù)完整性原則。i/o請求、數(shù)據(jù)高速緩存和日志記錄的管理可以利用消費者機(jī)器的處理器資源,但計算資源成本可以被認(rèn)為至少是可接受的--鑒于相對較慢的儲存提供器速度。
諸如非易失性雙列直插式存儲器模塊(nv-dimm)、憶阻存儲器、閃存、相變存儲器等的非易失性或持久存儲器可以用作儲存設(shè)備,并且更具體地,用作儲存提供器的(一個或多個)儲存設(shè)備。非易失性或持久存儲器可比硬盤驅(qū)動器、固態(tài)驅(qū)動器、磁盤陣列、磁帶驅(qū)動器、光學(xué)驅(qū)動器等更快,并且可以在速度上與系統(tǒng)存儲器相當(dāng)。因此,在將非易失性或持久性存儲器用作儲存設(shè)備的情況下,由消費者機(jī)器處理器管理i/o請求、數(shù)據(jù)高速緩存和日志記錄的計算成本可能是更加明顯的。
本申請的示例技術(shù)可以涉及儲存存儲器直接訪問(smda)提供器。響應(yīng)于來自消費者機(jī)器的固定命令,smda提供器可以將儲存存儲器區(qū)域固定到消費者機(jī)器的存儲器地址。儲存存儲器區(qū)域可以對消費者機(jī)器可用,以用于經(jīng)由存儲器地址進(jìn)行數(shù)據(jù)訪問,并且儲存存儲器區(qū)域可以對應(yīng)于在固定命令中由消費者機(jī)器請求的儲存設(shè)備的儲存范圍。響應(yīng)于來自消費者機(jī)器的解除固定命令,smda提供器可以原子地提交在儲存存儲器區(qū)域中的數(shù)據(jù)。因此,對于向消費者機(jī)器將儲存設(shè)備呈現(xiàn)為存儲器并且用于從消費者機(jī)器卸載諸如事務(wù)完整性支持的特征,本申請的技術(shù)可能是有用的。
現(xiàn)在參見附圖,圖1是包括示例儲存存儲器直接訪問(smda)提供器100-1的框圖,消費者機(jī)器120-1可以用smda提供器100-1來發(fā)起和操作smda會話。smda提供器100-1可以包括接口102和smda控制器104。smda提供器100-1可以與儲存設(shè)備110通信,和/或可以包括儲存設(shè)備110,儲存設(shè)備110諸如是硬盤驅(qū)動器、固態(tài)驅(qū)動器、磁盤陣列(例如,小型計算機(jī)系統(tǒng)接口或scsi陣列)非易失性或持久存儲器(例如,nv-dimm、憶阻存儲器、閃存、相變存儲器等)或適用于數(shù)據(jù)的持久儲存的其他設(shè)備。在一些實現(xiàn)中,可以將smda提供器100-1包括在包括處理器的計算設(shè)備中。
smda控制器104可以與接口102通信,并且接口102可以與消費者機(jī)器(例如120-1)通信。因此,smda控制器104,并且更一般來講,smda提供器100-1,可以經(jīng)由接口102來與消費者機(jī)器120-1通信(即,傳送數(shù)據(jù)、機(jī)器可讀指令等)用于smda會話。例如,在一些實現(xiàn)中,接口102可以是或可以包括存儲器總線接口。在一些實現(xiàn)中,接口102可以包括網(wǎng)絡(luò)接口。
消費者機(jī)器120-1可以被包括在諸如服務(wù)器、工作站、臺式計算機(jī)、膝上型計算機(jī)、平板計算設(shè)備、移動設(shè)備等等的計算系統(tǒng)中,或者可以是操作在上述計算系統(tǒng)上的虛擬機(jī)器。在一些實現(xiàn)中,消費者機(jī)器120-1、smda提供器100-1和儲存設(shè)備110可以全部被包括或封閉在相同的計算設(shè)備中。在一些實現(xiàn)中,smda提供器100-1可以與消費者機(jī)器120-1相分離或遠(yuǎn)離消費者機(jī)器120-1。消費者機(jī)器120-1可以由用戶操作。
如在此下文中將進(jìn)一步描述的,smda提供器100-1可以在多個相似的smda提供器(例如,100-1至100-n)之中,并且消費者機(jī)器120-1可以在多個消費者機(jī)器(例如,120-1至120-n)之中。smda提供器100-1至100-n可以彼此通信。消費者機(jī)器120-1至120-n可以彼此通信。另外,特定的消費者機(jī)器可以與多個smda提供器通信,并且特定的smda提供器可以與多個消費者機(jī)器進(jìn)行通信。在討論多個smda提供器100-1至100-n與多個消費者機(jī)器120-1至120-n之間的關(guān)系之前,將首先描述消費者機(jī)器120-1和smda提供器100-1之間的smda會話的示例方面。
在一些實現(xiàn)中,可以使用smda應(yīng)用編程接口(api)的函數(shù)調(diào)用或命令來執(zhí)行smda會話。消費者機(jī)器120-1可以通過向smda提供器100-1發(fā)出smda開始命令來發(fā)起smda會話。在一些實現(xiàn)中,消費者機(jī)器120-1可以提供會話id與smda開始命令,以用作后續(xù)命令的識別參數(shù)(例如,固定命令和解除固定命令)。消費者機(jī)器120-1可以通過向smda提供器100-1發(fā)出smda停止命令連同識別會話id來終止smda會話。在smda會話期間,消費者機(jī)器120-1可以發(fā)送由smda提供器100-1--并且更具體來講由smda控制器104--處理的固定命令和解除固定命令。一般取決于儲存設(shè)備110的速度,smda控制器104可以以同步或異步的方式處理固定和解除固定命令。
smda控制器104可以包括固定模塊106以及解除固定模塊108,固定模塊106用于將儲存存儲器區(qū)域112固定到消費者機(jī)器120-1的存儲器地址,解除固定模塊108用于原子地提交在儲存存儲器區(qū)域中的數(shù)據(jù)。smda控制器104還可以包括上行調(diào)用模塊109,用于在檢測到影響儲存存儲器區(qū)域112的觸發(fā)事件的情況下經(jīng)由接口102向消費者機(jī)器120-1發(fā)送通知。如本文所使用的,術(shù)語“模塊”可以指代編碼在設(shè)備(例如,smda提供器100)的機(jī)器可讀介質(zhì)上并且可由設(shè)備的處理器執(zhí)行的指令集。另外或替代地,模塊可以包括硬件設(shè)備,所述硬件設(shè)備包含用于實現(xiàn)下面描述的功能性的電子電路。
固定模塊106可以將儲存存儲器區(qū)域112固定(即,映射)到消費者機(jī)器120-1的存儲器地址,特別是響應(yīng)于從消費者機(jī)器120-1接收的固定命令。從消費者機(jī)器接收的固定命令可以伴隨有諸如會話id和儲存設(shè)備110的儲存范圍113之類的輸入?yún)?shù),其可以由至少一個三元組來識別,所述三元組包括卷id、邏輯塊編號和大小??梢詮莫氄紭?biāo)志、初始化標(biāo)志、只讀標(biāo)志和/或存儲器類型中選擇其他輸入?yún)?shù)。在一些實現(xiàn)中,固定模塊106可以異步地處理固定命令(例如,由于較慢速度的儲存設(shè)備110)。更具體地,在異步模式中,smda提供器100-1可以在接收到固定命令時發(fā)送“待定”狀態(tài)消息,并且在處理固定命令完成時用“成功”狀態(tài)消息向消費者機(jī)器120-1進(jìn)行回呼。對于異步實現(xiàn),固定命令輸入?yún)?shù)可以包括回呼相關(guān)參數(shù),諸如指向回呼例程的指針和針對回呼例程的上下文?,F(xiàn)在將參考圖2來描述固定模塊106的操作和固定命令輸入?yún)?shù)的影響。
圖2是用于處理從消費者機(jī)器(例如,120-1)接收的固定命令的smda提供器(例如,100-1)--并且更具體來講是smda控制器(例如,104)的固定模塊(例如,106)--的示例方法200的流程圖。方法200可以以電子電路形式和/或以存儲在機(jī)器可讀存儲介質(zhì)上的可執(zhí)行指令的形式來實現(xiàn)。在本公開的一些實現(xiàn)中,可以以與圖2中所示出的順序不同的順序或基本上同時地執(zhí)行方法200的一個或多個框。在本公開的一些實現(xiàn)中,方法200可以包括比圖2中所示出的框更多或更少的框。在一些實現(xiàn)中,方法200的一個或多個框可以以某些次數(shù)持續(xù)和/或可以重復(fù)。
方法200可以開始于框202,并且在框204處,smda提供器100-1可以從消費者機(jī)器120-1接收固定命令。在一些實現(xiàn)中,固定命令可以包括指定儲存設(shè)備(例如,110)的特定儲存范圍(例如,113)的輸入?yún)?shù),并且更具體地,由卷id、邏輯塊編號和大小的至少一個三元組來指定儲存范圍113。在一些實現(xiàn)中,被請求的儲存范圍113可以是由多個這樣的三元組所指定的在儲存設(shè)備110中的多個位置。消費者機(jī)器120-1可以請求儲存范圍113以便訪問其中的數(shù)據(jù),或者可以請求儲存范圍113以便在smda提供器100處分配特定量的儲存。
在框206處,固定模塊106對固定命令和其中所請求的儲存范圍進(jìn)行響應(yīng)。固定模塊106首先分配對應(yīng)于所請求的儲存范圍113的儲存存儲器區(qū)域(例如,112)(在圖1中通過儲存存儲器區(qū)域112和儲存范圍113之間的虛線表示對應(yīng)關(guān)系)。例如,在一些實現(xiàn)中,儲存存儲器區(qū)域112和儲存范圍113可以在大小方面進(jìn)行對應(yīng)。在一些實現(xiàn)中,可以從包括在smda提供器100-1中的存儲器分配儲存存儲器區(qū)域112。在其中儲存設(shè)備110是非易失性或持久存儲器(例如,nv-dimm、憶阻存儲器、閃存、相變存儲器等)的實現(xiàn)中,可以從儲存設(shè)備110分配儲存存儲器區(qū)域112。在分配儲存存儲器區(qū)域112之后,固定模塊106將儲存存儲器區(qū)域112固定或映射到消費者機(jī)器120-1的存儲器地址空間中的存儲器地址(即,消費者機(jī)器120-1的處理器可尋址的存儲器地址)并將存儲器地址輸出到消費者機(jī)器120-1。在一些實現(xiàn)中,(例如,由于存儲器分段)可以將儲存存儲器區(qū)域112固定或映射到多個存儲器地址。借助于將儲存存儲器區(qū)域112固定(或映射)到消費者機(jī)器120-1的存儲器地址,消費者機(jī)器120-1可以在smda提供器100-1處不是作為i/o操作而是作為存儲器操作來執(zhí)行數(shù)據(jù)訪問(例如,讀取、寫入、修改等)。
在一些實現(xiàn)中,固定命令可以包括存儲器類型輸入?yún)?shù),其可以指定消費者機(jī)器120-1期望的存儲器屬性。示例存儲器類型包括持久、暫時或存儲器速度。響應(yīng)于存儲器類型輸入?yún)?shù),固定模塊106可以基于對存儲器類型輸入?yún)?shù)的適用性而在框206處從可用存儲器設(shè)備分配儲存存儲器區(qū)域112。例如,與用于暫時存儲器類型輸入?yún)?shù)的易失性存儲器相反,固定模塊106可以從用于持久存儲器類型輸入?yún)?shù)的非易失性存儲器分配儲存存儲器區(qū)域112。作為另一示例,與用于較低速存儲器類型輸入?yún)?shù)的閃存相反,固定模塊106可以從用于高速存儲器類型輸入?yún)?shù)的憶阻存儲器中分配儲存存儲器區(qū)域112。
在框208處,如果固定命令包括作為輸入?yún)?shù)的獨占標(biāo)志,則控制可以轉(zhuǎn)到框210(在框208處為“是”)。在框210處,固定模塊106防止與smda提供器100-1通信的其它消費者機(jī)器(例如,除了發(fā)布標(biāo)志獨占的固定命令的消費者機(jī)器120-1之外的消費者機(jī)器,諸如消費者機(jī)器120-n)訪問由消費者機(jī)器120-1請求的儲存設(shè)備110的儲存范圍113、再現(xiàn)對消費者機(jī)器120-1獨占的儲存存儲器區(qū)域112和/或儲存范圍113的訪問。在一些實現(xiàn)中,當(dāng)從消費者機(jī)器120-1接收到識別獨占的儲存存儲器區(qū)域112和/或儲存范圍113而沒有獨占標(biāo)志的固定命令時,可以終止獨占性。在一些實現(xiàn)中,如果固定模塊106從另一消費者機(jī)器接收到識別獨占的儲存范圍113的固定命令,則固定模塊106可以(以在下面關(guān)于框230所描述的方式)向消費者機(jī)器120-1發(fā)送上行調(diào)用通知,請求消費者機(jī)器120-1以上述方式終止獨占性。
返回到框208,如果固定命令不包括作為輸入?yún)?shù)的獨占標(biāo)志(在框208處為“否”),或者在其他實現(xiàn)中如果固定命令包括共享標(biāo)志而不是獨占標(biāo)志,那么控制可以轉(zhuǎn)到框212,并且固定模塊106可以允許其他消費者機(jī)器(例如,120-n)經(jīng)由固定命令來固定儲存范圍113的相同或重疊的部分。在消費者機(jī)器之間共享儲存范圍113的至少一部分的情況下,在一些實現(xiàn)中共享的消費者機(jī)器可以借助于以下關(guān)于框230所描述的上行調(diào)用通知來協(xié)調(diào)對它們之間的共享區(qū)域的更新。在框208和框210之后,控制可以轉(zhuǎn)到框214。
在框214處,如果固定命令包括作為輸入?yún)?shù)的初始化標(biāo)志(在框214處為“是”),則控制可以轉(zhuǎn)到框216。在框216處,固定模塊106可以用零(或任何其他合適的初始化方案)來初始化儲存存儲器區(qū)域112。借助于初始化儲存存儲器區(qū)域112,為了安全起見,可以擦除從過去的smda會話或其他存儲器操作而持久的儲存存儲器區(qū)域112中的內(nèi)容。在一些實現(xiàn)中,這種安全性可能不是必需的,并且框216認(rèn)為儲存存儲器區(qū)域112被初始化并且準(zhǔn)備好由消費者機(jī)器120-1進(jìn)行訪問而無需任何擦除操作。返回框214,如果固定命令不包括初始化標(biāo)志(在框214處為“否”),則控制可以轉(zhuǎn)到框218。在框218處,固定模塊106可以將數(shù)據(jù)從儲存設(shè)備110的被請求儲存范圍113復(fù)制到儲存存儲器區(qū)域112。在框218之后,控制可以轉(zhuǎn)到框220。
在框220處,如果固定命令包括作為輸入?yún)?shù)的只讀標(biāo)志(在框220處為“是”),則控制可以轉(zhuǎn)到框222。如果固定命令不包括只讀標(biāo)志(在框220處為“否”),則控制可以直接轉(zhuǎn)到框224。在框222處,固定模塊106防止對儲存存儲器區(qū)域的數(shù)據(jù)修改--特別是如果在框218處將數(shù)據(jù)從儲存范圍113復(fù)制到儲存存儲器區(qū)域的情況下。在框222之后,控制可以轉(zhuǎn)到框224。
在框224處,smda提供器100-1接收或允許消費者機(jī)器120-1對儲存存儲器區(qū)域112的數(shù)據(jù)訪問。例如,消費者機(jī)器120-1,并且更具體來講其處理器在框204處將數(shù)據(jù)訪問操作(讀取、寫入、修改等)尋址到由解除固定模塊提供的存儲器地址,并且smda控制器104將數(shù)據(jù)訪問引至儲存存儲器區(qū)域112。儲存存儲器區(qū)域112中的數(shù)據(jù)可以是非持久性的,直到smda控制器104響應(yīng)于來自消費者機(jī)器120-1的解除固定命令才將數(shù)據(jù)提交為持久性,如下面將要描述的那樣。
在框226處,smda控制器204監(jiān)視觸發(fā)事件。如果檢測到觸發(fā)事件(在框228處為“是”),則控制可以轉(zhuǎn)到框230,其中上行調(diào)用模塊109可以向(一個或多個)消費者機(jī)器發(fā)送上行調(diào)用通知。上行調(diào)用通知所發(fā)送到的特定消費者機(jī)器以及上行調(diào)用通知的內(nèi)容可以取決于在框228處檢測到的觸發(fā)事件的類型?,F(xiàn)在將描述觸發(fā)事件的各種示例。
在一些實現(xiàn)中,觸發(fā)事件可以是來自另一消費者機(jī)器(例如,120-n)的訪問儲存范圍113的請求。例如,該請求可以是來自另一消費者機(jī)器120-n的固定命令的形式,其識別已經(jīng)與消費者機(jī)器120-1的存儲器地址相關(guān)聯(lián)的儲存范圍113的至少一個重疊部分。作為響應(yīng),上行調(diào)用模塊109可以通知消費者機(jī)器120-1:另一消費者機(jī)器120-n正在請求訪問儲存范圍113。另外,如果與儲存范圍113相關(guān)聯(lián)的儲存存儲器區(qū)域112被獨占地固定到消費者機(jī)器120-1,則上行調(diào)用模塊109還可以請求消費者機(jī)器120-1終止獨占固定。
在一些實現(xiàn)中,觸發(fā)事件可以是儲存存儲器區(qū)域112或儲存設(shè)備110的儲存范圍113的非smda訪問。只是作為一個示例,非smda訪問可以是針對基于scsi陣列的儲存設(shè)備110的scsii/o操作。作為響應(yīng),上行調(diào)用模塊109可以向消費者機(jī)器120-1(以及共享儲存存儲器范圍112的任何其他消費者機(jī)器)發(fā)送上行調(diào)用通知,指示存儲器范圍113或儲存存儲器區(qū)域112中的數(shù)據(jù)已經(jīng)改變。
在一些實現(xiàn)中,觸發(fā)事件可以是從另一消費者機(jī)器(例如,120-n)到smda控制器104的用于(例如,使用解除固定命令)原子地提交在儲存存儲器區(qū)域112中的數(shù)據(jù)的請求--特別是當(dāng)消費者機(jī)器120-1和另一消費者機(jī)器120-n共享儲存存儲器區(qū)域112時。作為響應(yīng),上行調(diào)用模塊109可以發(fā)送上行調(diào)用通知以通知消費者機(jī)器120-1有關(guān)儲存存儲器區(qū)域112的待定提交。
在一些實現(xiàn)中,觸發(fā)事件可以是由smda控制器104調(diào)度的儲存存儲器區(qū)域112中的數(shù)據(jù)的原子提交,以建立一致性點(如下文關(guān)于解除固定模塊108和圖3將描述的那樣)。作為響應(yīng),上行調(diào)用模塊109可以發(fā)送上行調(diào)用通知以通知消費者機(jī)器120-1(和共享儲存存儲器范圍112的任何其他消費者機(jī)器)有關(guān)對儲存存儲器區(qū)域112的待定更新。
方法200可以在框232處結(jié)束。在發(fā)送固定命令并經(jīng)由存儲器地址訪問儲存存儲器區(qū)域112中的數(shù)據(jù)(即,在框224處)之后的某個點,消費者機(jī)器120-1可以發(fā)送解除固定命令給smda提供器100-1以提交儲存存儲器區(qū)域112中的數(shù)據(jù)或釋放儲存存儲器區(qū)域112。在一些實現(xiàn)中,如果在諸如電源故障等等之類的影響smda控制器100-1的故障之前smda控制器100-1沒有從消費者機(jī)器120-1接收到請求以原子地提交數(shù)據(jù)(即,解除固定命令),則smda控制器100-1可以在這樣的故障之后丟棄儲存存儲器區(qū)域112中的數(shù)據(jù)。在一些情況下,消費者機(jī)器120-1可以響應(yīng)于指示儲存存儲器區(qū)域112中的數(shù)據(jù)已經(jīng)改變或被調(diào)度為更新的上行調(diào)用通知來發(fā)送解除固定命令(如上面關(guān)于圖2的框230所討論的),并且然后(盡管不是必定的)消費者機(jī)器120-1可以發(fā)送隨后的固定命令以用更新的數(shù)據(jù)重新固定該儲存范圍113。
再次參見圖1,解除固定模塊108可以原子地提交由消費者機(jī)器120-1經(jīng)由存儲器地址訪問的儲存存儲器區(qū)域112中的數(shù)據(jù)--特別是響應(yīng)于從消費者機(jī)器120-1接收到的解除固定命令。從消費者機(jī)器120-1接收到的解除固定命令可以伴隨有輸入?yún)?shù)。例如,輸入?yún)?shù)可以包括會話id、儲存范圍113和存儲器地址。附加的輸入?yún)?shù)可以包括臟標(biāo)志、一致性點標(biāo)志、保持固定標(biāo)志和獨占標(biāo)志。與固定命令一樣,在異步實現(xiàn)中,輸入?yún)?shù)還可以包括指向回呼例程的指針和針對回呼例程的上下文,并且在接收到解除固定命令時smda提供器100-1可以向消費者機(jī)器120-1發(fā)送“待定”狀態(tài)消息,并且在處理解除固定命令完成時(例如,經(jīng)由回呼例程)發(fā)送“成功”狀態(tài)消息?,F(xiàn)在將參照圖3來描述解除固定模塊108的操作和解除固定命令輸入?yún)?shù)的影響。
圖3是用于處理從消費者機(jī)器(例如,120-1)接收到的解除固定命令的smda提供器(例如,100-1)--并且更具體來講是smda控制器(例如,104)的解除固定模塊(例如,108)--的示例方法300的流程圖。方法300可以以電子電路形式和/或以存儲在機(jī)器可讀存儲介質(zhì)上的可執(zhí)行指令的形式來實現(xiàn)。在本公開的一些實現(xiàn)中,可以以與圖3中所示出的順序不同的順序或基本上同時地執(zhí)行方法300的一個或多個框。在本公開的一些實現(xiàn)中,方法300可以包括比圖3中所示出的框更多或更少的框。在一些實現(xiàn)中,方法300的一個或多個框可以以某些次數(shù)持續(xù)和/或可以重復(fù)。
方法300可以在框302處開始,并且在框304處,smda提供器100-1可以從消費者機(jī)器120-1接收解除固定命令。在一些實現(xiàn)中,解除固定命令可以包括指定包括卷id、邏輯塊編號、大小和存儲器地址的至少一個四元組的輸入?yún)?shù)。四元組可以對應(yīng)于用先前固定命令所請求的儲存范圍113和響應(yīng)于該固定命令而由固定模塊106返回的存儲器地址?;诮獬潭詈桶殡S的至少一個四元組,解除固定模塊108可以識別和定位要被解除固定的儲存存儲器區(qū)域(例如,112)。
在框306處,如果解除固定命令包括作為輸入?yún)?shù)的臟標(biāo)志(在框306處為“是”),則控制可以轉(zhuǎn)到框308。在框308處,解除固定模塊108可以將儲存存儲器區(qū)域數(shù)據(jù)聚合到由解除固定模塊108(在本文中也被稱為“隱式一致性點”)所確定的一致性點,并且可以將聚合的儲存存儲器區(qū)域數(shù)據(jù)原子地提交為持久性。換句話說,解除固定模塊108可以延遲提交由解除固定命令所識別的特定儲存存儲器區(qū)域,直到達(dá)到隱式一致性點。例如,在一些實現(xiàn)中,可以通過將由多個解除固定命令所識別的多個儲存存儲器區(qū)域的數(shù)據(jù)更新聚合(或累積、收集、聚合、排隊、組合等)到閾值數(shù)量(例如,以字節(jié)為單位的數(shù)量,相應(yīng)的存儲地址或儲存范圍的數(shù)量,或數(shù)據(jù)更新數(shù)量的其它度量)來達(dá)到隱式一致性點。在一些實現(xiàn)中,可以通過用臟標(biāo)志聚合接收到的解除固定命令的閾值數(shù)量來達(dá)到隱式一致性點。在一些實現(xiàn)中,可以在基于時間的調(diào)度上達(dá)到隱式一致性點,并且(例如,在其間從接收到的解除固定命令中)聚集儲存存儲器區(qū)域數(shù)據(jù)直到下一個調(diào)度的一致性點。在一些實現(xiàn)中,smda提供器100-1可以在接收到解除固定命令之后但在滿足隱式一致性點之前向消費者機(jī)器120-1發(fā)送“成功”狀態(tài)消息。一旦已經(jīng)滿足隱式一致性點,則解除固定模塊108可以通過諸如以下的技術(shù)來將聚集的儲存存儲器區(qū)域數(shù)據(jù)原子地提交為持久性(在本示例中包括由在框304處接收到的解除固定命令所識別的儲存存儲器區(qū)域112):如果從儲存設(shè)備110(例如,其中儲存設(shè)備110是憶阻存儲器)分配了一個或多個聚集的儲存存儲器區(qū)域,則設(shè)置持久性比特以使一個或多個聚合的儲存存儲器區(qū)域是持久的;將數(shù)據(jù)從一個或多個聚合的儲存存儲器區(qū)域復(fù)制到儲存設(shè)備110的相應(yīng)儲存范圍(例如,其中儲存設(shè)備110是硬盤驅(qū)動器,scsi陣列等)等。在一些實現(xiàn)中,當(dāng)已經(jīng)將聚集的儲存存儲器區(qū)域數(shù)據(jù)成功地提交為持久性時,smda提供器100-1可以用“成功”狀態(tài)消息向消費者機(jī)器120-1進(jìn)行回呼,以指示已經(jīng)將數(shù)據(jù)提交為持久性。在其中smda提供器100-1經(jīng)歷故障(例如,由于電源故障或其他系統(tǒng)故障)但是聚集的儲存存儲器區(qū)域數(shù)據(jù)未達(dá)到隱式一致性點的情況下,由于故障,所以這樣的數(shù)據(jù)可能被認(rèn)為不可恢復(fù)(并且在一些實現(xiàn)中,方法300可以直接進(jìn)行到框330并結(jié)束)。然而,借助于解除固定模塊108確定隱式一致性點,smda提供器100-1可以以靈活和有效的方式將數(shù)據(jù)原子地提交為持久性。
在一些實現(xiàn)中,根據(jù)圖4中所描繪的示例方法400,解除固定模塊108可以針對具有在框304處接收的臟標(biāo)志的解除固定命令執(zhí)行框308。方法400可以在框402處開始。在框404處,解除固定模塊108可以通過向消費者機(jī)器120-1發(fā)送諸如例如“成功”消息的狀態(tài)消息來對解除固定命令進(jìn)行響應(yīng)。在框406處,解除固定模塊108可以監(jiān)視是否已經(jīng)滿足或達(dá)到隱式一致性點條件。例如,如在上面關(guān)于框308所描述的,隱式一致性點條件可以涉及以下中的至少一個:對(一個或多個)儲存存儲器區(qū)域的數(shù)據(jù)更新的閾值數(shù)量、接收到的解除固定命令(具有臟標(biāo)志)的閾值數(shù)量、或基于時間的調(diào)度表。與框406同時地或者作為框406的一部分,在一些實現(xiàn)中,解除固定模塊108可以聚合對應(yīng)于至少一個解除固定命令--或者更具體來說對應(yīng)于識別多個儲存存儲器區(qū)域的多個解除固定命令--的儲存存儲器區(qū)域數(shù)據(jù)。在框408處,如果滿足隱式一致性點條件(在框408處為“是”),則控制可以轉(zhuǎn)到框410,在這里解除固定模塊108可以將聚合的儲存存儲器區(qū)域數(shù)據(jù)原子地提交為持久性,并且在一些實現(xiàn)中,也可以用指示數(shù)據(jù)已被提交的“成功”狀態(tài)消息來對消費者機(jī)器120-1進(jìn)行回呼。在另一方面,如果不滿足隱式一致性點條件(在框408處為“否”),則控制可以返回到框406,并且解除固定模塊可以繼續(xù)監(jiān)視是否已經(jīng)滿足隱式一致性點條件。方法400可以在框412處結(jié)束。
借助于上述方法400,可以理解的是,smda提供器100-1可以響應(yīng)于具有臟標(biāo)志的解除固定命令向消費者機(jī)器120-1發(fā)送“成功”狀態(tài)消息(在框404處)而不等待數(shù)據(jù)提交完成,并且解除固定模塊108可以作為后臺操作以異步的方式檢查(在框406、408處)隱式一致性點是否已被滿足或達(dá)到。例如,消費者機(jī)器120-1在接收到在框404處響應(yīng)于特定的解除固定命令而發(fā)送的狀態(tài)消息之后,可以執(zhí)行其他數(shù)據(jù)更新并發(fā)出其他固定或解除固定命令,而不等待在特定解除固定命令中識別的儲存存儲器區(qū)域的數(shù)據(jù)已被提交的確認(rèn)。作為另一示例,解除固定模塊108可以在后臺執(zhí)行框406、408的同時,根據(jù)方法300來處理其他解除固定命令。
再次參見圖3,在框308之后,或者如果解除固定命令不包括作為輸入?yún)?shù)的臟標(biāo)志(在框306處為“否”),則控制可以轉(zhuǎn)到框310。在框310處,如果解除固定命令包括作為輸入?yún)?shù)的一致性點標(biāo)志(在框310處為“是”),則控制可以轉(zhuǎn)到框312。例如為了事務(wù)一致性的目的,一致性點標(biāo)志指示消費者機(jī)器120-1期望(并且可以等待)儲存存儲器區(qū)域112的數(shù)據(jù)被提交為持久性。因此,在框312處,解除固定模塊108將與消費者機(jī)器所請求的一致性點相關(guān)聯(lián)的儲存存儲器區(qū)域數(shù)據(jù)原子地提交為持久性。這樣的一致性點也可以被稱為顯式一致性點,因為它由消費者機(jī)器明確地請求,而不是由解除固定模塊108確定為隱式一致性點。在一些實現(xiàn)中,具有一致性點標(biāo)志的解除固定命令可以識別在諸如根據(jù)上述方法400等待隱式一致性點的具有臟標(biāo)志的解除固定之類的待定解除固定命令中涉及的儲存存儲器區(qū)域,并且解除固定模塊108可以中斷那個待定解除固定命令以將儲存存儲器區(qū)域數(shù)據(jù)原子地提交為持久性,正如具有一致性點標(biāo)志的解除固定命令所顯式請求的那樣。正如框308,解除固定模塊108可以通過切換一個或多個持久性比特、復(fù)制數(shù)據(jù)、或者其他合適的方法來原子地提交數(shù)據(jù)。在一些實現(xiàn)中,當(dāng)將與顯式一致性點相關(guān)聯(lián)的儲存存儲器區(qū)域數(shù)據(jù)提交為持久性時,smda提供器100-1可以用“成功”狀態(tài)消息對消費者機(jī)器120-1進(jìn)行回呼。在框312之后,或者如果解除固定命令不包括作為輸入?yún)?shù)的一致性點標(biāo)志(在框310處為“否”),則控制可以轉(zhuǎn)到框314。
在框314處,如果解除固定命令不包括作為輸入?yún)?shù)的保持固定標(biāo)志(在框314處為“否”),則控制可以轉(zhuǎn)到框316,在那里解除固定模塊108可以釋放儲存存儲器區(qū)域112。因此,如果解除固定命令不包括臟標(biāo)志、一致性點標(biāo)志或保持固定標(biāo)志,則消費者機(jī)器120-1有效地釋放(或“忘記”)儲存存儲器區(qū)域112而不進(jìn)行持久數(shù)據(jù)更新。在框316之后,控制然后可以轉(zhuǎn)到框324,這將在下面描述。在另一方面,在框314處,如果解除固定命令包括作為輸入?yún)?shù)的保持固定標(biāo)志(在框314處為“是”),那么儲存存儲器區(qū)域保持固定到消費者機(jī)器120-1的存儲器地址,并且控制可以轉(zhuǎn)到框318。
在框318處,消費者機(jī)器120-1可以以與上面關(guān)于圖2描述的獨占標(biāo)志類似的方式(例如,框208、210和212)改變固定的儲存存儲器區(qū)域112的獨占/共享狀態(tài)。如果解除固定命令包括獨占標(biāo)志(在框318處為“是”),則控制可以轉(zhuǎn)到框320,并且解除固定模塊108防止其他消費者機(jī)器(例如,120-n)訪問儲存存儲器區(qū)域112。如果解除固定命令不包括獨占標(biāo)志(在框318處為“否”),或者在其他實現(xiàn)中包括共享標(biāo)志,那么控制可以轉(zhuǎn)到框322,并且解除固定模塊108可以允許其他消費者機(jī)器(例如,120-n)來固定儲存存儲器區(qū)域112或其一部分。在框320和322之后,控制可以轉(zhuǎn)到框324。
在框324處,smda控制器204可以監(jiān)視觸發(fā)事件,并且如果檢測到觸發(fā)事件(在框228處為“是”),則控制可以轉(zhuǎn)到框230,在這里上行調(diào)用模塊109可以向(一個或多個)消費者機(jī)器發(fā)送上行調(diào)用通知。上行調(diào)用通知內(nèi)容和接收者消費者機(jī)器可以取決于觸發(fā)事件的類型?,F(xiàn)在將描述各種觸發(fā)事件。在一些實現(xiàn)中,觸發(fā)事件可以是在框304處的解除固定命令本身的接收,特別是如果解除固定命令包括臟標(biāo)志或一致性點標(biāo)志,并且作為響應(yīng),上行調(diào)用模塊109可以通知與消費者機(jī)器120-1共享儲存存儲器區(qū)域112的任何消費者機(jī)器被請求解除固定和/或待定數(shù)據(jù)提交。在一些實現(xiàn)中,觸發(fā)事件可以是在框318、320和/或322處的儲存存儲器區(qū)域112的固定獨占性狀態(tài)的改變。例如,如果在消費者機(jī)器120-1和一個或多個其他消費者機(jī)器(例如,120-n)之間共享儲存存儲器區(qū)域112(或其一部分),并且來自消費者機(jī)器120-1的解除固定命令包括作為輸入?yún)?shù)的獨占標(biāo)志,則上行調(diào)用模塊可以通知一個或多個其他消費者機(jī)器120-n關(guān)于獨占性的改變,并請求一個或多個其他消費者機(jī)器120-n對儲存存儲器區(qū)域112解除固定。方法300可以在框330處結(jié)束。
在一些實現(xiàn)中,smda控制器104可以接收來自消費者機(jī)器120-1的多個解除固定命令(其也可以被稱為數(shù)據(jù)提交請求),每個解除固定命令識別不同的相應(yīng)儲存存儲器區(qū)域(未示出)。解除固定模塊108可以按照smda控制器104接收到解除固定命令的順序來原子地提交在不同的相應(yīng)儲存存儲器區(qū)域中的數(shù)據(jù)。smda控制器104可以使用任何合適的技術(shù)以用于邏輯地管理解除固定命令的順序。如果多個解除固定命令包括臟標(biāo)志,則可以將對應(yīng)于多個解除固定命令的數(shù)據(jù)更新聚合朝向隱式一致性點,如上文關(guān)于框308所描述的那樣。
圖5是用于對多個解除固定命令進(jìn)行響應(yīng)的示例方法500的流程圖。方法500可以以電子電路形式和/或以存儲在機(jī)器可讀存儲介質(zhì)上的可執(zhí)行指令的形式來實現(xiàn)。方法500可以開始于框502,并且在框504處,smda控制器(例如,104),并且更具體地smda控制器104的解除固定模塊(例如,108),可以接收多個解除固定命令,所述解除固定命令識別相應(yīng)儲存存儲器區(qū)域。在框506處,smda控制器104(解除固定模塊108)可以按照smda控制器104接收到解除固定命令的順序來原子地提交相應(yīng)儲存存儲器區(qū)域的數(shù)據(jù)。在框508處,方法500可以結(jié)束。
如上所述,smda提供器100-1可以在多個類似的smda提供器(例如,100-1至100-n)之中。例如,每個smda提供器可以至少包括接口(如102)和smda控制器(如104)。至少一些smda提供器可以包括相應(yīng)的儲存設(shè)備(如110)(或與其通信)。消費者機(jī)器120-1可以在多個消費者機(jī)器120-1至120-n之中。另外,特定的消費者機(jī)器可以與多個smda提供器通信,并且特定的smda提供器可以與多個消費者機(jī)器進(jìn)行通信。在一些實現(xiàn)中,smda提供器(例如,100-1)的smda控制器(例如,104)可以經(jīng)由smda提供器100-1的接口(例如,102)來與其他smda提供器設(shè)備(例如,100-n)協(xié)調(diào),以支持共享存儲池130。共享存儲池130可以是從多個smda提供器的物理儲存設(shè)備合并的虛擬存儲池。在一些實現(xiàn)中,消費者機(jī)器120-1至120-n中的任何一個可以向smda提供器100-1至100-n中的任何一個發(fā)送固定或解除固定命令(以及smda開始和停止命令)。固定或解除固定命令可以將共享存儲池130的儲存范圍(或可替換地,任何smda提供器的儲存設(shè)備的儲存范圍,所述任何smda提供器包括不是接收固定或解除固定命令的smda提供器的smda提供器)識別為輸入?yún)?shù)。由于smda提供器100-1至100-n之間的通信和協(xié)調(diào),smda控制器(例如,104)可以將其他smda提供器設(shè)備中的至少一個(例如,100-n)中的儲存存儲器區(qū)域固定到至少一個消費者機(jī)器的存儲器地址,并且此外,可以將數(shù)據(jù)原子地提交到共享存儲池130的持久區(qū)域。借助于多個smda提供器100-1至100-n和/或多個消費者機(jī)器120-1至120-n之間的前述關(guān)系和交互,可以容易且有效地實現(xiàn)多個smda提供器和/或多個消費者機(jī)器擴(kuò)展的系統(tǒng)。
圖6是包括示例smda提供器600的框圖。smda提供器600可以包括與消費者機(jī)器通信的接口602。smda提供器600可以包括與接口602通信的smda控制器604。在一些實現(xiàn)中,smda控制器604可以包括固定模塊606和解除固定模塊608,其每一個可以是編碼在設(shè)備(例如,smda提供器600)的機(jī)器可讀介質(zhì)上并且可由設(shè)備的處理器執(zhí)行的指令集,并且另外或替代地,可以包括硬件設(shè)備,所述硬件設(shè)備包含用于實現(xiàn)下面描述的功能性的電子電路。固定模塊606可以將儲存存儲器區(qū)域固定到消費者機(jī)器的存儲器地址,儲存存儲器區(qū)域?qū)?yīng)于消費者機(jī)器所請求的儲存設(shè)備的儲存范圍。解除固定模塊608可以原子地提交消費者機(jī)器經(jīng)由存儲器地址訪問的儲存存儲器區(qū)域中的數(shù)據(jù)。
圖7是用于對固定命令進(jìn)行響應(yīng)以及用于對解除固定命令進(jìn)行響應(yīng)的示例方法700的流程圖。盡管下面參照圖1的smda控制器104來描述方法700的執(zhí)行,但是應(yīng)當(dāng)理解,方法700的執(zhí)行可以由諸如圖6的smda控制器604之類的其他合適的設(shè)備來執(zhí)行。方法700可以以電子電路形式和/或以存儲在機(jī)器可讀存儲介質(zhì)上的可執(zhí)行指令的形式來實現(xiàn)。
方法700開始于框702,并且在框704處,響應(yīng)于來自消費者機(jī)器的固定命令,smda控制器104可以將儲存存儲器區(qū)域固定到消費者機(jī)器的存儲器地址,儲存存儲器區(qū)域?qū)οM者機(jī)器可用,以用于經(jīng)由存儲器地址進(jìn)行數(shù)據(jù)訪問,并且儲存存儲器區(qū)域?qū)?yīng)于在固定命令中請求的儲存設(shè)備的儲存范圍。在框706處,smda控制器104可以響應(yīng)于來自消費者機(jī)器的解除固定命令,原子地提交在儲存存儲器區(qū)域中的數(shù)據(jù)。在框708處,當(dāng)檢測到影響儲存存儲器區(qū)域的觸發(fā)事件時,smda控制器104可以向消費者機(jī)器發(fā)送上行調(diào)用通知。在框710處,方法700可以結(jié)束。
圖8是圖示出根據(jù)示例實現(xiàn)的基于處理器的系統(tǒng)800的框圖,其包括利用用于經(jīng)由存儲器地址訪問smda提供器的儲存存儲器區(qū)域中的數(shù)據(jù)的指令進(jìn)行編碼的機(jī)器可讀介質(zhì)。在一些示例實現(xiàn)中,系統(tǒng)800可以是或可以形成計算設(shè)備的一部分,計算設(shè)備諸如是服務(wù)器、工作站、臺式計算機(jī)、膝上型計算機(jī)、平板計算設(shè)備、移動設(shè)備等。更具體地,系統(tǒng)800可以是或形成上面關(guān)于圖1描述的任何消費者機(jī)器120-1至120-n的一部分。在一些實現(xiàn)中,系統(tǒng)800是基于處理器的系統(tǒng),并且可以包括耦合到機(jī)器可讀介質(zhì)804的處理器802。處理器802可以包括單核處理器、多核處理器、專用集成電路、現(xiàn)場可編程門陣列和/或適于從機(jī)器可讀介質(zhì)804檢索和/或執(zhí)行指令(例如指令806、808、810、812、814)以執(zhí)行本文所討論的各種功能的其它硬件設(shè)備。另外或替代地,處理器802可以包括用于執(zhí)行本文所描述的功能性的電子電路,所述功能性包括指令806、808、810、812和/或814的功能性。關(guān)于如圖8中的方框所表示的可執(zhí)行指令,應(yīng)當(dāng)理解,在替代實現(xiàn)中,包括在一個方框中的可執(zhí)行指令和/或電子電路的部分或全部可以包括在圖中所示出的不同方框中或者包括在未示出的不同方框中。
機(jī)器可讀介質(zhì)804可以是適于存儲可執(zhí)行指令的任何介質(zhì),諸如隨機(jī)存取存儲器(ram)、電可擦除可編程只讀存儲器(eeprom)、閃存、硬盤驅(qū)動器、光盤等等。在一些示例實現(xiàn)中,機(jī)器可讀介質(zhì)804可以是有形的、非暫時介質(zhì),其中術(shù)語“非暫時”不包括暫時傳播信號??梢詫C(jī)器可讀介質(zhì)804安置在系統(tǒng)800內(nèi),如圖8中所示,在這種情況下,可以認(rèn)為可執(zhí)行指令“安裝”在系統(tǒng)800上。替代地,機(jī)器可讀介質(zhì)804可以是便攜式(例如,外部)儲存介質(zhì),例如,其允許系統(tǒng)800遠(yuǎn)程執(zhí)行指令或從儲存介質(zhì)下載指令。在這種情況下,可執(zhí)行指令可以是“安裝包”的一部分。如在此下文進(jìn)一步描述的,機(jī)器可讀介質(zhì)804可以用可執(zhí)行指令集806、808、810、812、814進(jìn)行編碼。
指令806當(dāng)由處理器802執(zhí)行時可以向smda提供器(諸如上面關(guān)于圖1描述的smda提供器100-1)發(fā)送固定命令,以請求訪問儲存設(shè)備的儲存范圍。在一些實現(xiàn)中,固定命令可以包括諸如上面關(guān)于圖2描述的那些之類的輸入?yún)?shù),包括會話id、儲存設(shè)備的儲存范圍作為三元組集合(卷id、邏輯塊編號和大?。?、獨占標(biāo)志、初始化標(biāo)志、只讀標(biāo)志、存儲器類型標(biāo)志、和/或回呼相關(guān)參數(shù)。指令808當(dāng)由處理器802執(zhí)行時可以從smda提供器接收可由處理器802尋址的存儲器地址,存儲器地址被映射到對應(yīng)于固定命令(即,由指令806發(fā)送的固定命令)中所請求的儲存范圍的smda提供器的儲存存儲器區(qū)域。指令810當(dāng)由處理器802執(zhí)行時可以經(jīng)由存儲器地址(即,由指令808接收的存儲器地址)訪問(例如,讀取、寫入、修改等)儲存存儲器區(qū)域中的數(shù)據(jù)。指令812當(dāng)由處理器802執(zhí)行時可以向smda提供器發(fā)送解除固定命令,以請求在儲存存儲器區(qū)域中的數(shù)據(jù)的原子提交。在一些實現(xiàn)中,解除固定命令可以包括諸如上面關(guān)于圖3所描述的那些之類的輸入?yún)?shù),包括會話id、儲存范圍作為四元組集合(卷id、邏輯塊編號、大小和存儲器地址)、臟標(biāo)志、一致性點標(biāo)志、保持固定標(biāo)志和/或回呼相關(guān)參數(shù)。指令814當(dāng)由處理器802執(zhí)行時可以對來自smda提供器的上行調(diào)用通知進(jìn)行響應(yīng)。在一些實現(xiàn)中,指令814可以通過向smda提供器發(fā)送解除固定命令來釋放儲存存儲器區(qū)域從而對上行調(diào)用通知進(jìn)行響應(yīng)。在一些實現(xiàn)中,指令814可以向smda提供器發(fā)送隨后的固定命令(即在響應(yīng)于上行調(diào)用通知的解除固定命令之后)以請求訪問儲存范圍。
鑒于前面的描述,可以理解,借助于smda提供器,消費者機(jī)器可以訪問儲存設(shè)備中的數(shù)據(jù)(即,讀取、寫入、修改等),就像消費者機(jī)器正在訪問存儲器一樣。此外,對于數(shù)據(jù)更新的原子性、數(shù)據(jù)更新的一致性和消費者機(jī)器的隔離的支持可以從消費者機(jī)器卸載到smda提供器。因此,消費者機(jī)器可以經(jīng)由smda提供器比用i/o請求更快速且更有效地(例如,以更低的計算成本)更新數(shù)據(jù)--特別是當(dāng)儲存設(shè)備包括高速非易失性或持久存儲器設(shè)備時。
在前面的描述中,闡述了許多細(xì)節(jié)以提供對本文所公開的主題的理解。然而,可以在沒有這些細(xì)節(jié)中的一些或全部的情況下實踐實現(xiàn)。其他實現(xiàn)可以包括從上述細(xì)節(jié)而來的修改和變型。旨在以下權(quán)利要求涵蓋這些修改和變型。