使用fpga設(shè)置檢查點的制作方法
【專利摘要】方法、系統(tǒng)以及計算機可讀和可執(zhí)行指令被提供用于使用現(xiàn)場可編程門陣列(FPGA)設(shè)置檢查點。使用FPGA設(shè)置檢查點可包括對服務(wù)器內(nèi)容的區(qū)域內(nèi)的數(shù)據(jù)設(shè)置檢查點到存儲器,并且使用FPGA監(jiān)控被設(shè)置檢查點的數(shù)據(jù)。
【專利說明】使用FPGA設(shè)置檢查點
【背景技術(shù)】
[0001] 分布式緩存(Memcached)是提供對象緩存的存儲器中鍵值緩存,并且可用在網(wǎng)絡(luò) 服務(wù)器層中。分布式緩存服務(wù)器為來自數(shù)據(jù)庫的內(nèi)容提供緩存,并且可被放置在前端網(wǎng)絡(luò) 服務(wù)器和后端數(shù)據(jù)庫之間。
【專利附圖】
【附圖說明】
[0002] 圖1是圖示根據(jù)本公開的用于設(shè)置檢查點的方法示例的框圖。
[0003] 圖2圖示根據(jù)本公開的用于設(shè)置檢查點的示例系統(tǒng)的框圖。
[0004] 圖3是圖示根據(jù)本公開的處理資源、存儲器資源和計算機可讀介質(zhì)的框圖。
【具體實施方式】
[0005] 分布式緩存是一種存儲器中鍵值緩存,其相比于其它緩存方法提供了較高的吞吐 量和/或較低延遲的對象緩存。分布式緩存服務(wù)器可在網(wǎng)絡(luò)服務(wù)器層中發(fā)揮作用,被放置 在前端網(wǎng)絡(luò)服務(wù)器和后端數(shù)據(jù)庫(例如,結(jié)構(gòu)化查詢語言數(shù)據(jù)庫)之間。這些服務(wù)器緩存 來自數(shù)據(jù)庫的內(nèi)容,這減輕了對訪問后端數(shù)據(jù)庫的需求。該緩存降低了前端服務(wù)器的對象 檢索存取的延遲,并且也降低了后端服務(wù)器上的負(fù)荷。
[0006] 然而,與其它緩存方法相比,緩存(例如,有效地緩存)網(wǎng)絡(luò)層級處的內(nèi)容會需要 增加量的存儲器(例如動態(tài)隨機存取存儲器(DRAM))容量。在實際的部署中(例如,社交 網(wǎng)絡(luò)),與其它緩存方法相比,分布式緩存服務(wù)器可具有每個服務(wù)器較大的存儲器容量(例 如,每個服務(wù)器超過64GB的存儲器),并且在整個服務(wù)器集群中具有成千上萬的分布式緩 存服務(wù)器。在這些部署中,通過增加服務(wù)器的數(shù)量和/或增加單個服務(wù)器的容量,可滿足服 務(wù)器池內(nèi)總存儲器(例如,DRAM)容量的增加。
[0007] 為了減輕管理負(fù)擔(dān)并減少管理多個實體服務(wù)器的所有權(quán)的總成本,部署可增加單 個服務(wù)器的容量(具體是存儲器密度增加)來代替添加額外的服務(wù)器。然而,重新填充大 緩存所需的時間量的問題會成為部署具有這些大存儲器容量的分布式緩存服務(wù)器的障礙。 問題可包括源自分布式緩存服務(wù)器崩潰的臨時停機時間和/或嚴(yán)重的性能下降(例如,由 于緩存丟失和在后端數(shù)據(jù)庫中所引起的負(fù)荷);增加的存儲器容量會增加分布式緩存服務(wù) 器重新填充其緩存和恢復(fù)其正常運行機制所需的時間。
[0008] 如這里進(jìn)一步討論的,對數(shù)據(jù)設(shè)置檢查點(例如,使用現(xiàn)場可編程門陣列(FPGA) 對數(shù)據(jù)設(shè)置檢查點)可使得這些分布式緩存服務(wù)器隨著存儲器密度的趨勢而增加存儲 器容量。例如,與其它方法相比,分布式緩存服務(wù)器能使用非易失性存儲器和相干附接 (coherently-attached)的FPGA的組合來提供更快的恢復(fù),而不會在正常的服務(wù)器運行時 過度地影響性能。
[0009] 本公開的示例可包括方法、系統(tǒng)以及計算機可讀和可執(zhí)行指令和/或邏輯。使用 FPGA設(shè)置檢查點的示例方法可包括:對在服務(wù)器內(nèi)容區(qū)域內(nèi)的數(shù)據(jù)設(shè)置檢查點到存儲器, 并且使用FPGA監(jiān)控被設(shè)置檢查點的數(shù)據(jù)。
[0010] 在本公開的下列詳細(xì)描述中,參考形成本發(fā)明一部分的附圖,并且在附圖中以圖 示的方式示出本公開的示例可如何實施。這些實施例足夠詳細(xì)地被描述,以使得本領(lǐng)域普 通技術(shù)人員能夠?qū)嵤┍竟_的示例,并且應(yīng)當(dāng)理解,還可利用其它示例,且可在不脫離本公 開的范圍的情況下做出過程、電子和/或結(jié)構(gòu)的改變。
[0011] 本文中的圖遵循以下編號慣例:其中第一位數(shù)字對應(yīng)于圖號,而其余數(shù)字標(biāo)識圖 中的元件或組件。不同圖之間的相似元件或組件通過使用相似的數(shù)字來標(biāo)識。在本文的各 個示例中示出的元件可以被增加、替換和/或去除,以便提供本公開的多個附加的實施例。
[0012] 此外,圖中提供的元件的比例和相對大小旨在說明本公開的示例,而不應(yīng)構(gòu)成限 制意義。如這里所用的,具體關(guān)于圖中的附圖標(biāo)記,標(biāo)志符"^'、卩"、"1?"和"5"指示這樣標(biāo) 記的多個具體的特征可以包括在本公開的多個示例中。而且,如這里所用的,"多個"元件和 /或特征可指代一個或多個這樣的元件和/或特征。
[0013] 根據(jù)服務(wù)器的性能要求和從故障到恢復(fù)之間平均時間的預(yù)期,可以以特定的間隔 (例如,由分布式緩存服務(wù)器管理員限定的間隔)來設(shè)置檢查點。通過暫停分布式緩存服 務(wù)器的運行、復(fù)制其全部數(shù)據(jù)到非易失性存儲器(例如非易失性隨機存取存儲器(NVRAM)) 以及允許分布式緩存服務(wù)器重新恢復(fù),來執(zhí)行檢查點。然而,考慮到動態(tài)隨機存取存儲器 (DRAM)的容量(例如,64GB和/或更大)以及非易失性存儲器的寫入帶寬(例如,lGB/s的 寫入帶寬),以這種方式完成完全檢查點會花費比預(yù)期時間更長的時間(例如,數(shù)分鐘而不 是數(shù)秒鐘)。
[0014] 圖1是圖示根據(jù)本公開的設(shè)置檢查點的方法100的示例的框圖。在102,對服務(wù)器 內(nèi)容區(qū)域中的數(shù)據(jù)設(shè)置檢查點到存儲器。在多個實施例中,設(shè)置檢查點數(shù)據(jù)到非易失性存 儲器,包括到閃存等。相對于其它的檢查點設(shè)置方法,對存儲器區(qū)域設(shè)置檢查點可提供具有 減少的中斷時間的檢查點設(shè)置。在一些示例中,可按照區(qū)域?qū)Υ鎯ζ鲄^(qū)域設(shè)置檢查點,這迭 代通過存儲器(例如,全部存儲器)直到設(shè)置了檢查點(例如,直到設(shè)置了全部檢查點)。
[0015] FPGA可用于臨時鎖定分布式緩存散列表來避免存取、對散列表的特定區(qū)域(例 如,2GB、4GB等)設(shè)置檢查點(例如,讀取和復(fù)制值至存儲器)、解除鎖定、以及允許整個系 統(tǒng)恢復(fù)。例如,當(dāng)對分布式緩存狀態(tài)的特定區(qū)域(例如,DRAM)設(shè)置檢查點時,采取防范措 施以防客戶端請求改變該區(qū)域的內(nèi)容。例如,在復(fù)制區(qū)域時,"阻擋"和/或"鎖定"客戶端 請求直到該區(qū)域完成復(fù)制。以這種方式來設(shè)置檢查點(例如,降低的時間量)能防止正常 客戶端請求的中斷。
[0016] 在特定時間段過去之后,F(xiàn)PGA能重新鎖定散列表并且對下一個區(qū)域設(shè)置檢查點, 繼續(xù)直到對整個存儲器設(shè)置了檢查點?;诒旧暾?,可以改變檢查點區(qū)域之間的特定時間 段(例如,納秒、毫秒或微秒等)。還可以改變?nèi)繖z查點之間的特定時間段(例如,秒、分、 小時等)。例如,與具有較輕負(fù)荷的服務(wù)器的分布式緩存部署相比,具有較重負(fù)荷的服務(wù)器 的分布式緩存部署可能需要更長的時間。在一些示例中,與其它方法相比,F(xiàn)PGA可以在較 短的時間段內(nèi)鎖定散列表,并且與單個通過(single pass)檢查點方法相比,F(xiàn)PAG可以導(dǎo) 致減少的中斷時間,這例如使得在設(shè)置檢查點的同時保持服務(wù)在線。
[0017] 在104,使用FPGA監(jiān)控被設(shè)置檢查點的數(shù)據(jù)。FPGA可相干附接和/或聯(lián)接到存儲 器,使得主處理器廣播到存儲器的任何存取都被廣播到FPGA,這允許FPGA自動追蹤(例如, 監(jiān)控)和捕獲每個區(qū)域內(nèi)的存取。在一些示例中,F(xiàn)PGA可捕獲每個區(qū)域內(nèi)的更新。通過監(jiān) 控每個區(qū)域,F(xiàn)PGA可維護(hù)每個檢查點以及全部檢查點的一致性視圖。在多個示例中,F(xiàn)PGA 位于單獨的網(wǎng)絡(luò)套接字中(例如,橫貫計算機網(wǎng)絡(luò)的進(jìn)程間通信流的不同端點)而不是位 于存儲器中。
[0018] 通過無效與設(shè)置檢查點的區(qū)域相關(guān)的緩存行,相干附接的FPGA能觀測至該區(qū)域 的通信量。FPGA能監(jiān)聽那些緩存行。例如,如果非易失性存儲器不是字節(jié)可尋址的(例如, 閃存),則可以緩沖所捕獲的更新并且寫入日志。該日志能回放已完成的檢查點,這允許維 護(hù)一致的狀態(tài)。
[0019] 如果足夠的更新(例如,特定數(shù)量)發(fā)生在單個塊,則可將整個塊重寫到非易失性 存儲器。在一些實施例中,塊(例如,單元)可包括FPGA將信息寫到其自身本地存儲器的 粒度。例如,如果足夠的更新(例如,日志更新)填滿塊,則FPGA可將該塊寫到非易失性存 儲器(例如,NVRAM)。在一些示例中,足夠的更新可包括足夠的寫入,整個塊可被編程為記 錄每個操作的塊。一旦完成檢查點設(shè)置,F(xiàn)PGA可停止監(jiān)聽與檢查點相關(guān)的地址區(qū)域。
[0020] 如果需要恢復(fù)檢查點,則執(zhí)行可使得分布式緩存進(jìn)程請求將數(shù)據(jù)從FPGA存儲器 轉(zhuǎn)移到主存儲器的系統(tǒng)調(diào)用??梢员4妫ɡ?,至存儲器)和提供簿記狀態(tài)(bookke印ing state),包括指向檢查點區(qū)域開始的指針、檢查點的大小和/或分布式緩存散列表開始的 地址等等。在一些示例中,響應(yīng)于服務(wù)器崩潰,利用被設(shè)置檢查點的數(shù)據(jù)來恢復(fù)服務(wù)器。在 一些示例中,附接到FPGA的存儲器僅用于設(shè)置檢查點,并且FPGA用于加速設(shè)置檢查點。
[0021] 在一些實施例中,監(jiān)控被設(shè)置檢查點的數(shù)據(jù)可包括從檢查點設(shè)置區(qū)域排除過期的 數(shù)據(jù)條目。分布式緩存這樣的系統(tǒng)能使用過期條目的惰性驅(qū)逐(lazy eviction)。例如,不 會立即驅(qū)逐早于其過期時間的條目,而改為在下次存取時進(jìn)行驅(qū)逐。在本公開中,為了降低 寫入到存儲器(例如,非易失性存儲器)的信息量,F(xiàn)PGA會對從該區(qū)域所讀取的數(shù)據(jù)執(zhí)行 檢查,并且排除早于其過期時間的任何條目(例如,使用整數(shù)比較)。這可以降低由于寫入 造成的有效期消耗,以及可以降低所消耗的帶寬。
[0022] 為了減少和/或進(jìn)一步減少寫入的數(shù)據(jù),可對正被設(shè)置檢查點的數(shù)據(jù)應(yīng)用壓縮 (例如,使用比原始表示更少比特的編碼信息)。FPGA能讀取和緩沖特定量的分布式緩存狀 態(tài),在寫入存儲器之前可壓縮該特定量的分布式緩存狀態(tài)。例如,不是讓FPGA將分布式緩 存的DRAM狀態(tài)的內(nèi)容復(fù)制到非易失性存儲器(例如,NVRAM)中,而是該FPGA可將內(nèi)容復(fù) 制到其自身的內(nèi)部緩沖中、壓縮內(nèi)容并且將壓縮的內(nèi)容復(fù)制到非易失性存儲器中。在一些 示例中,通過將其自身存儲器上的內(nèi)容分階段,F(xiàn)PGA能降低鎖定分布式緩存DRAM內(nèi)容(例 如來自客戶端請求)的時間量。當(dāng)恢復(fù)檢查點時,數(shù)據(jù)可以被解壓縮。壓縮的選擇(例如, 壓縮模型的選擇)可以向服務(wù)器管理員提供選項以平衡存儲器檢查點容量和速度。例如, 與最終檢查點保存相反,在檢查點恢復(fù)時可回放已記錄的更新。
[0023] 服務(wù)中斷可通過拆分散列表鎖和向該區(qū)域中增加額外的鎖而降低。因此,能使得 發(fā)生在此時未設(shè)置檢查點的區(qū)域的存取繼續(xù)進(jìn)行,這降低了整體服務(wù)中斷。例如,F(xiàn)PGA會 對多個區(qū)域中之一內(nèi)的分布式緩存散列表鎖進(jìn)行存取。
[0024] 在一些示例中,F(xiàn)PGA能接收關(guān)于多個區(qū)域中每個區(qū)域的散列表和多個區(qū)域中每個 區(qū)域內(nèi)的數(shù)據(jù)的信息。例如,F(xiàn)PGA會對多個區(qū)域中之一內(nèi)的分布式緩存散列表鎖進(jìn)行存取。
[0025] 在一些實施例中,F(xiàn)PGA追蹤對已經(jīng)設(shè)置了檢查點的區(qū)域的更新。為了降低更新的 量,能臨時地降低在設(shè)置檢查點期間的狀態(tài)改變。例如,正當(dāng)設(shè)置檢查點時,服務(wù)器可避免 更新緩存策略簿記(例如,至少最近使用的列表)。這樣做不會影響準(zhǔn)確性,并且能降低對 存儲器的寫入量和FPGA追蹤的更新量。
[0026] 圖2圖示出根據(jù)本公開的用于設(shè)置檢查點的示例系統(tǒng)220的框圖。系統(tǒng)220可包 括FPGA 254和存儲器(例如,非易失性存儲器)256。FPGA 254可相干附接和/或聯(lián)接到 存儲器256,這意味著例如主處理器廣播到存儲器256的存取能廣播到FPGA 254,使得FPGA 254自動追蹤(例如,監(jiān)控)和捕獲每個設(shè)置了檢查點的區(qū)域內(nèi)的存取。
[0027] 系統(tǒng)220可包括具有存儲器和處理資源的計算設(shè)備222,指令(例如,計算機可 讀指令(CRI)244)存儲在存儲器中并且由處理資源執(zhí)行以對數(shù)據(jù)設(shè)置檢查點。正如此處 所述,計算設(shè)備222可以是硬件和/或配置為設(shè)置檢查點的程序指令(例如,CRI)的任 意組合。例如,硬件可包括一個或多個處理資源250-1、250-2···250-Ν、計算機可讀介質(zhì) (CRM) 246等。程序指令可包括存儲在CRM 246上的指令,該指令可由一個或多個處理資源 執(zhí)行以實現(xiàn)一個或多個不同功能或此處所述的特定動作(例如,檢查點數(shù)據(jù))。
[0028] 計算設(shè)備222可包括與處理資源250-1、250-2... 250-Ν通信的CRM 246。CRM 246 可與具有多于或少于250-1、250-2···250-Ν的處理資源的計算設(shè)備248(例如,.丨avaK應(yīng)用 服務(wù)器等)通信。如此處所述,計算設(shè)備248可與有形非暫時性CRM 246通信,該CRM 246存 儲可由一個或多個處理資源250-U250-2... 250-N執(zhí)行的一組計算機可讀指令(CRI) 244。 CRI 244還可存儲在由服務(wù)器管理的遠(yuǎn)程存儲器中,并且呈現(xiàn)為可下載、安裝和執(zhí)行的安裝 包。計算設(shè)備248可包括存儲器資源252,并且處理資源250-1、250-2... 250-N可聯(lián)接至存 儲器資源252。
[0029] 處理資源250-1、250-2... 250-N能運行可存儲在內(nèi)部或外部非暫時性CRM 246上 的CRI 244。處理資源250-U250-2...250-N可運行CRI 244以執(zhí)行包括方法100中描述 的功能的各種功能。例如,處理資源250-1、250-2···250-Ν能運行CRI 244以對數(shù)據(jù)設(shè)置 檢查點。如此處所用,非暫時性CRM(例如,CRM 246)可包括易失性和/或非易失性存儲 器。易失性存儲器可包括依靠電源來存儲信息的存儲器,如不同類型的動態(tài)隨機存取存儲 器(DRAM)等。非易失性存儲器可包括不依靠電源來存儲信息的存儲器。非易失性存儲器的 示例可包括如閃存、電可擦除可編程只讀存儲器(EEPR0M)、相變隨機存取存儲器(PCRAM) 的固態(tài)介質(zhì),如硬盤、磁帶驅(qū)動器、軟盤和/或磁帶存儲器之類的磁存儲器,光盤,數(shù)字化通 用盤(DVD),藍(lán)光盤(BD),壓縮盤(CD)和/或固態(tài)驅(qū)動器(SSD)等,以及其它類型的計算機 可讀介質(zhì)。
[0030] 非暫時性CRM 246可以是集成的或者以有線和/或無線的方式可通信地聯(lián)接到計 算設(shè)備248。例如,非暫時性CRM 246可以是內(nèi)部存儲器、便攜式存儲器,便攜式盤或與其它 計算資源相關(guān)聯(lián)的存儲器。
[0031] CRM 246可經(jīng)由通信路徑242與處理資源250-U250-2...250-N通信。通信路徑 242可相對于與處理資源250-1、250-2...250-N相關(guān)聯(lián)的機器(例如,計算設(shè)備248)是本地 的或遠(yuǎn)程的。本地通信路徑242的示例可包括機器(例如,計算機)內(nèi)部的電子總線,其中 CRM 246是經(jīng)由電子總線與處理資源250-U250-2...250-N通信的易失性、非易失性、固定 和/或可移除的存儲介質(zhì)之一。這種電子總線的示例可包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)、外圍 組件互連(PCI)、高級技術(shù)附件(ΑΤΑ)、小型計算機系統(tǒng)接口(SCSI)、通用串行總線(USB)、 其它類型的電子總線及其變體。
[0032] 通信路徑242可以是這樣的,使得CRM 246相對于處理資源250-U250-2...250-N 是遠(yuǎn)程的,如在CRM 246和處理資源(例如,250-U250-2…250-N)之間的網(wǎng)絡(luò)連接中。也 就是說,通信路徑242可以是網(wǎng)絡(luò)連接。這種網(wǎng)絡(luò)連接的示例可包括局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)、個人局域網(wǎng)(PAN)和因特網(wǎng)等。在這些示例中,CRM 246可與第一計算設(shè)備相關(guān)聯(lián), 并且處理資源250-1、250-2···250-Ν可與第二計算設(shè)備(例如,計算設(shè)備248)相關(guān)聯(lián)。例 如,處理資源250-1、250-2...250,可與〇^ 246通信,其中〇^ 246包括一組指令并且其 中處理資源250-1、250-2···250-Ν被設(shè)計為執(zhí)行該組指令以對數(shù)據(jù)設(shè)置檢查點。
[0033] 聯(lián)接至存儲器252的處理資源250-1、250-2···250-Ν可運行程序指令以對數(shù)據(jù)設(shè) 置檢查點。聯(lián)接至存儲器252的處理資源250-U250-2··· 250-Ν可運行程序指令以接收分 布式緩存服務(wù)器內(nèi)的多個地址區(qū)域到FPGA來設(shè)置檢查點。在本公開的各種示例中,聯(lián)接至 存儲器252的處理資源250-U250-2··· 250-Ν可運行程序指令以周期性地對多個地址區(qū)域 中的每個區(qū)域設(shè)置檢查點到非易失性存儲器,并且在本公開的一些示例中,聯(lián)接至存儲器 252的處理資源250-1、250-2··· 250-Ν可運行程序指令以使用FPGA自動地監(jiān)控多個地址區(qū) 域中每個區(qū)域內(nèi)的數(shù)據(jù)。
[0034] 如此處所使用的,"邏輯"是運行這里所描述的動作和/或功能等的替代物或附加 的處理資源,其包括硬件(例如,各種形式的晶體管邏輯電路、專用集成電路(ASIC)等),與 在存儲器中存儲的且通過處理可運行的計算機可執(zhí)行指令(例如,軟件、固件等)相反。
[0035] 圖3圖示出根據(jù)本公開的在云系統(tǒng)中平衡管理責(zé)任(management duties)的示例 計算系統(tǒng)322的圖。計算系統(tǒng)322可包括處理資源350。處理資源350例如可包括圖2中 所示的處理資源250-U250-2...250-N。
[0036] 處理資源350可經(jīng)由通信路徑342可通信地聯(lián)接至CRM 346。CRM 346可與圖2 中所示的CRM 246相似。CRM 346可包括多個模塊378、380、382、384、386和388。該多個 模塊可包括例如可由處理資源350運行以執(zhí)行多個功能的CRI。
[0037] 鎖定模塊378可例如包括多個CRI,這些CRI可由處理資源350運行以執(zhí)行或?qū)崿F(xiàn) 特定動作,或者實施臨時地鎖定分布式緩存散列表以防使用FPGA存取的動作。
[0038] 第一檢查點模塊380可包括可由處理資源350運行的多個指令。例如,第一檢查 點模塊380可對分布式緩存服務(wù)器內(nèi)容的第一區(qū)域設(shè)置檢查點到非易失性存儲器,與此同 時,分布式緩存散列表被鎖定。
[0039] 解除模塊382可包括可由處理資源350運行的多個指令。例如,解除模塊382可 解除鎖定達(dá)一時間段,并且重鎖模塊384(例如,包括可由處理資源350運行的多個指令) 可重新鎖定分布式緩存散列表。在多個實施例中,鎖定模塊378可重新鎖定分布式緩存散 列表。鎖定模塊378和重鎖模塊384可包括例如相同的模塊。例如,在一些實施例中,計算 系統(tǒng)322不包括重鎖模塊。
[0040] 第二檢查點模塊386可包括可由處理資源350運行的多個指令。例如,第二檢查 點模塊386可對分布式緩存服務(wù)器內(nèi)容的第二區(qū)域設(shè)置檢查點到非易失性存儲器,與此同 時,分布式緩存散列表被重新鎖定。在多個實施例中,第一檢查點模塊380和第二檢查點模 塊386包括相同的模塊。
[0041] 監(jiān)控模塊388可例如包括可由處理資源350運行的多個指令。例如,監(jiān)控模塊388 可使用FPGA監(jiān)控在第一和第二區(qū)域內(nèi)設(shè)置了檢查點的數(shù)據(jù),其中FPGA相干附接至非易失 性存儲器。
[0042] 說明書示例提供對本公開的系統(tǒng)和方法的應(yīng)用和使用的描述。由于在不脫離本公 開的系統(tǒng)和方法的精神和范圍的情況下可進(jìn)行多個示例,因此此說明書列出了眾多可行示 例配置和應(yīng)用中的一些。
【權(quán)利要求】
1. 一種計算機實現(xiàn)的方法,用于使用現(xiàn)場可編程門陣列(FPGA)設(shè)置檢查點,該方法包 括: 對在服務(wù)器內(nèi)容的區(qū)域內(nèi)的數(shù)據(jù)設(shè)置檢查點到存儲器;并且 使用所述FPGA監(jiān)控被設(shè)置檢查點的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述FPGA相干聯(lián)接至所述存儲器。
3. 根據(jù)權(quán)利要求1所述的方法,其中對數(shù)據(jù)設(shè)置檢查點到存儲器進(jìn)一步包括對數(shù)據(jù)設(shè) 置檢查點到非易失性存儲器。
4. 根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:響應(yīng)于所述服務(wù)器崩潰利用所述被設(shè)置 檢查點的數(shù)據(jù)來恢復(fù)所述服務(wù)器。
5. 根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:壓縮所述被設(shè)置檢查點的數(shù)據(jù)。
6. 根據(jù)權(quán)利要求1所述的方法,其中監(jiān)控所述數(shù)據(jù)進(jìn)一步包括:從所述區(qū)域排除過期 的數(shù)據(jù)條目。
7. -種非暫時性計算機可讀介質(zhì),存儲可由處理資源執(zhí)行的一組指令,以便: 使用現(xiàn)場可編程門陣列(FPGA)臨時地鎖定分布式緩存散列表以免存取; 在鎖定所述分布式緩存散列表的同時,對分布式緩存服務(wù)器內(nèi)容的第一區(qū)域設(shè)置檢查 點到非易失性存儲器; 解除所述鎖定達(dá)一時間段; 重新鎖定所述分布式緩存散列表; 在重新鎖定所述分布式緩存散列表的同時,對所述分布式緩存服務(wù)器內(nèi)容的第二區(qū)域 設(shè)置檢查點到所述非易失性存儲器;以及 使用所述FPGA監(jiān)控在所述第一區(qū)域和所述第二區(qū)域內(nèi)被設(shè)置檢查點的數(shù)據(jù),其中所 述FPGA相干附接至所述非易失性存儲器。
8. 根據(jù)權(quán)利要求7所述的非暫時性計算機可讀介質(zhì),其中所述指令進(jìn)一步是可執(zhí)行 的,以通過追蹤多個被設(shè)置檢查點的區(qū)域中的每個區(qū)域的更新來監(jiān)控所述數(shù)據(jù)。
9. 根據(jù)權(quán)利要求7所述的非暫時性計算機可讀介質(zhì),其中所述指令進(jìn)一步是可執(zhí)行 的,以拆分分布式緩存散列表鎖并將附加的分布式緩存散列表鎖增加到多個被設(shè)置檢查點 的區(qū)域中的每個區(qū)域。
10. 根據(jù)權(quán)利要求7所述的非暫時性計算機可讀介質(zhì),其中所述指令進(jìn)一步是可執(zhí)行 的,以在設(shè)置檢查點期間臨時地減少區(qū)域更新。
11. 根據(jù)權(quán)利要求7所述的非暫時性計算機可讀介質(zhì),其中所述指令進(jìn)一步是可執(zhí)行 的,以接收關(guān)于所述多個區(qū)域中每個區(qū)域的散列表以及所述多個區(qū)域中每個區(qū)域內(nèi)的數(shù)據(jù) 的信息到所述FPGA。
12. -種系統(tǒng),用于使用現(xiàn)場可編程門陣列(FPGA)設(shè)置檢查點,所述系統(tǒng)包括: 存儲器資源;以及 聯(lián)接至所述存儲器資源的處理資源,用以: 接收分布式緩存服務(wù)器內(nèi)的多個地址區(qū)域到所述FPGA以設(shè)置檢查點; 周期性地對所述多個地址區(qū)域中的每個設(shè)置檢查點到非易失性存儲器;并且 使用所述FPGA自動地監(jiān)控所述多個地址區(qū)域中的每個內(nèi)的數(shù)據(jù),其中所述FPGA相干 聯(lián)接至所述非易失性存儲器。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述處理資源進(jìn)一步聯(lián)接至所述存儲器資源, 以允許所述FPGA訪問所述多個區(qū)域中的每個內(nèi)的分布式緩存散列表鎖。
14. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述處理資源進(jìn)一步聯(lián)接至所述存儲器資源, 以向所述非易失性存儲器保存所述多個地址區(qū)域中之一開始的指針、地址區(qū)域檢查點的大 小、和分布式緩存散列表開始的地址中的至少一個。
15. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述FPGA位于獨立的網(wǎng)絡(luò)套接字中而不是位于 所述非易失性存儲器中。
【文檔編號】G06F13/00GK104272249SQ201280072796
【公開日】2015年1月7日 申請日期:2012年6月8日 優(yōu)先權(quán)日:2012年6月8日
【發(fā)明者】凱文·T·林, 阿爾溫·奧楊 申請人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)