两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

數(shù)據(jù)管理方法、設備和系統(tǒng)與流程

文檔序號:11134115閱讀:479來源:國知局
數(shù)據(jù)管理方法、設備和系統(tǒng)與制造工藝

本發(fā)明涉及數(shù)據(jù)處理技術,特別涉及數(shù)據(jù)管理方法、設備和系統(tǒng)。



背景技術:

目前,基于openstack的開源云計算平臺得到了廣泛應用,其中使用的是傳統(tǒng)的mysql開源數(shù)據(jù)庫,采用無中心數(shù)據(jù)(元信息)管理方式,穩(wěn)定性和可擴展性均較差。



技術實現(xiàn)要素:

本發(fā)明提供了數(shù)據(jù)管理方法、設備和系統(tǒng),能夠提高系統(tǒng)的穩(wěn)定性和可擴展性。

具體技術方案如下:

一種數(shù)據(jù)管理方法,包括:

主設備獲取更新信息,以Log的方式寫入網(wǎng)絡文件系統(tǒng)NFS,以便在寫入成功后,從設備通過tail日志的方式,根據(jù)所述更新信息更新本地內(nèi)存;

寫入成功,所述主設備根據(jù)所述更新信息更新本地內(nèi)存。

根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:

當所述主設備出現(xiàn)故障時,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到本地硬盤;

當checkpoint完成之后,執(zhí)行主從切換。

根據(jù)本發(fā)明一優(yōu)選實施例,所述NFS中的數(shù)據(jù)為進行序列化處理后的數(shù)據(jù);

所述更新信息的數(shù)據(jù)存儲格式包括:每個表中依次包括uid字段、方法名字段和參數(shù)列表字段,所述參數(shù)列表字段中進一步包括至少一個參數(shù)子字段,每個參數(shù)子字段中分別存儲有對應參數(shù)的取值。

根據(jù)本發(fā)明一優(yōu)選實施例,所述更新本地內(nèi)存包括:利用內(nèi)存表的管理接口類Manager,對需要更新的表進行更新。

一種數(shù)據(jù)管理方法,包括:

當主設備獲取更新信息,以Log的方式寫入網(wǎng)絡文件系統(tǒng)NFS之后,從設備通過tail日志的方式,根據(jù)所述更新信息更新本地內(nèi)存。

根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:

所述從設備周期性地執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到所述NFS中;

并且,當所述從設備出現(xiàn)故障時,在進程退出之前,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到所述NFS中。

根據(jù)本發(fā)明一優(yōu)選實施例,所述NFS中的數(shù)據(jù)為進行序列化處理后的數(shù)據(jù);

其中,內(nèi)存數(shù)據(jù)快照的數(shù)據(jù)存儲格式包括:每個表中依次包括表名字段和數(shù)據(jù)數(shù)據(jù),所述數(shù)據(jù)字段中進一步包括至少一個item子字段,每個item子字段中分別采用key-value的形式對數(shù)據(jù)進行存儲;

所述更新信息的數(shù)據(jù)存儲格式包括:每個表中依次包括uid字段、方法名字段和參數(shù)列表字段,所述參數(shù)列表字段中進一步包括至少一個參數(shù)子字段,每個參數(shù)子字段中分別存儲有對應參數(shù)的取值。

根據(jù)本發(fā)明一優(yōu)選實施例,所述根據(jù)所述更新信息更新本地內(nèi)存包括:

所述從設備對獲取到的序列化后的更新信息進行反序列化,根據(jù)反序列化結(jié)果更新本地內(nèi)存。

一種主設備,包括:獲取單元和第一更新單元;

所述獲取單元,用于獲取更新信息,并發(fā)送給所述第一更新單元;

所述第一更新單元,用于將所述更新信息以Log的方式寫入網(wǎng)絡文件系統(tǒng)NFS,以便在寫入成功后,從設備通過tail日志的方式,根據(jù)所述更新信息更新本地內(nèi)存,并且,寫入成功后,所述第一更新單元根據(jù)所述更新信息更新本地內(nèi)存。

根據(jù)本發(fā)明一優(yōu)選實施例,所述主設備中進一步包括:第一備份單元;

所述第一備份單元,用于當所述主設備出現(xiàn)故障時,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到本地硬盤,當checkpoint完成之后,執(zhí)行主從切換。

根據(jù)本發(fā)明一優(yōu)選實施例,所述NFS中的數(shù)據(jù)為進行序列化處理后的數(shù)據(jù);

所述更新信息的數(shù)據(jù)存儲格式包括:每個表中依次包括uid字段、方法名字段和參數(shù)列表字段,所述參數(shù)列表字段中進一步包括至少一個參數(shù)子字段,每個參數(shù)子字段中分別存儲有對應參數(shù)的取值。

根據(jù)本發(fā)明一優(yōu)選實施例,所述第一更新單元利用內(nèi)存表的管理接口類Manager,對本地內(nèi)存中需要更新的表進行更新。

一種從設備,包括:第二更新單元;

所述第二更新單元,用于當主設備獲取更新信息,以Log的方式寫入網(wǎng)絡文件系統(tǒng)NFS之后,通過tail日志的方式,根據(jù)所述更新信息更新本地內(nèi)存。

根據(jù)本發(fā)明一優(yōu)選實施例,所述從設備中進一步包括:第二備份單元;

所述第二備份單元,用于周期性地執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到所述NFS中;并且,當所述從設備出現(xiàn)故障時,在進程退出之前,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到所述NFS中。

根據(jù)本發(fā)明一優(yōu)選實施例,所述NFS中的數(shù)據(jù)為進行序列化處理后的數(shù)據(jù);

其中,內(nèi)存數(shù)據(jù)快照的數(shù)據(jù)存儲格式包括:每個表中依次包括表名字段和數(shù)據(jù)數(shù)據(jù),所述數(shù)據(jù)字段中進一步包括至少一個item子字段,每個item子字段中分別采用key-value的形式對數(shù)據(jù)進行存儲;

所述更新信息的數(shù)據(jù)存儲格式包括:每個表中依次包括uid字段、方法名字段和參數(shù)列表字段,所述參數(shù)列表字段中進一步包括至少一個參數(shù)子字段,每個參數(shù)子字段中分別存儲有對應參數(shù)的取值。

根據(jù)本發(fā)明一優(yōu)選實施例,所述第二更新單元對獲取到的序列化后的更新信息進行反序列化,根據(jù)反序列化結(jié)果更新本地內(nèi)存。

一種數(shù)據(jù)管理系統(tǒng),包括:

如以上所述的主設備,以及,如以上所述的從設備。

基于上述介紹可以看出,采用本發(fā)明所述方案,采用主從方式來實現(xiàn)數(shù)據(jù)同步,底層文件系統(tǒng)采用NFS,從而相比于現(xiàn)有技術提高了系統(tǒng)的穩(wěn)定性和可擴展性,且文件存儲速度快,提升了數(shù)據(jù)處理效率等。

【附圖說明】

圖1為本發(fā)明所述數(shù)據(jù)管理方法實施例的流程圖。

圖2為本發(fā)明所述內(nèi)存數(shù)據(jù)快照的數(shù)據(jù)存儲格式示意圖。

圖3為本發(fā)明所述更新信息的數(shù)據(jù)存儲格式示意圖。

圖4為本發(fā)明所述主設備實施例的組成結(jié)構(gòu)示意圖。

圖5為本發(fā)明所述從設備實施例的組成結(jié)構(gòu)示意圖。

圖6為本發(fā)明所述數(shù)據(jù)管理系統(tǒng)實施例的組成結(jié)構(gòu)示意圖。

【具體實施方式】

針對現(xiàn)有技術中存在的問題,本發(fā)明中提出一種基于ds-common分布式網(wǎng)絡文件系統(tǒng)(NFS,Network File System)存儲架構(gòu)的內(nèi)存數(shù)據(jù)庫系統(tǒng)nova-master。

為了使本發(fā)明的技術方案更加清楚、明白,以下參照附圖并舉實施例,對本發(fā)明所述方案作進一步地詳細說明。

實施例一

圖1為本發(fā)明所述數(shù)據(jù)管理方法實施例的流程圖,如圖1所示,包括以下具體實現(xiàn)方式:

在11中,主設備獲取更新信息,以日志(Log)的方式寫入NFS;

在12中,寫入成功,主設備根據(jù)更新信息更新本地內(nèi)存,并且,從設備通過跟蹤(tail)日志的方式,根據(jù)更新信息更新本地內(nèi)存。

在實際應用中,主設備的個數(shù)通常為一個,從設備的個數(shù)可以為一個,也可以為多個。

以下對本實施例中涉及到的各部分內(nèi)容分別進行詳細說明。

1)選主

初始,各設備之間是對等的,并無主從之分,當nova-master系統(tǒng)啟動后,需要進行選主操作,即從各設備中選出一個作為主設備,其它的作為從設備。

各設備的啟動加載邏輯可包括:

RestoreMeta先恢復checkpoint的數(shù)據(jù),結(jié)束后調(diào)用OnLoadBaseFinished;

ApplyLog恢復checkpoint后的Log數(shù)據(jù),結(jié)束后調(diào)用OnLoadLogFinished,OnLoadFinished,啟動加載邏輯結(jié)束。

各設備之間可競爭指定的鎖的鑰匙,誰先拿到鑰匙,則為主設備,否則,為從設備。

if主設備:

啟動RpcServer,consumer消息;

else:#從設備

定期做checkpoint。

如果上述加載接口出現(xiàn)失敗,則報警,進程退出。

2)主設備

主設備啟動時,需要啟動本地的RpcServer,可通過RpcServer來獲取來自外部的更新信息等。

當獲取到更新信息后,主設備可將其以Log的方式寫入NFS,并在寫入成功后,更新(update)本地內(nèi)存。

如果主設備出現(xiàn)故障,可報警、資源回收、進程退出、觸發(fā)主從切換。

另外,在進行主從切換之前,主設備可執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到本地硬盤。

checkpoint完成之后,即可執(zhí)行主從切換,如前所述,主設備啟動時,需要啟動本地的RpcServer,那么相應地,當主設備Dead時,需要關閉本地的RpcServer。

3)從設備

主設備將更新信息以Log的方式寫入NFS,寫入成功后,從設備可通過tail日志的方式,更新本地內(nèi)存,實現(xiàn)與主設備之間的準實時的數(shù)據(jù)同步。

即從設備可從NFS中讀取Log,根據(jù)讀取到的信息更新本地內(nèi)存,涉及的接口可包括日志回放接口和讀錯誤回調(diào)接口等。

如果讀取失敗,且連續(xù)失敗次數(shù)達到N次,N為正整數(shù),通常大于1,則可認為從設備出現(xiàn)故障,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到NFS中,之后報警、進程退出。

另外,當從設備處于正常狀態(tài)時,還需要定期執(zhí)行checkpoint,即周期性地執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到NFS中。

所述周期的具體時長以及N的具體取值均可根據(jù)實際需要而定。

當主設備出現(xiàn)故障時,從設備可迅速tail完日志并切換成主設備,并啟動本地的RpcServer等。

4)資源定位

可在上游配置nova-master系統(tǒng)的域名,主設備和從設備均可提供查詢主設備的信息如IP的功能,上游定時或在發(fā)送失敗時均可以去主設備或從設備上查詢主設備的信息。

5)checkpoint流程

本實施例中所述的checkpoint可稱為內(nèi)存全量數(shù)據(jù)的持久化,以從設備為例,其可在獲取到全局寫鎖即寫優(yōu)先的讀寫鎖后,fork出子進程完成當前內(nèi)存完整數(shù)據(jù)的快照,即獲取內(nèi)存數(shù)據(jù)快照,對于多線程進程fork后可僅復制當前線程到子進程,進而在子進程中遍歷內(nèi)存數(shù)據(jù)快照中的所有表(數(shù)據(jù)表),對表進行分片序列化和持久化。

初始階段即初始化過程,可由Manager在內(nèi)存中創(chuàng)建所需的表,再從NFS中逐條加載Metadata更新對應的表。

內(nèi)存表可分為兩級,Manager和Info,Manager為內(nèi)存表的管理接口類,可提供所有的內(nèi)存表訪問接口及索引結(jié)構(gòu),Info可對應到每個具體的表或者是多個表。

6)主從同步流程

本實施例中,可利用Manager,對需要更新的表進行更新,即內(nèi)存更新操作由Manager發(fā)起,可以是對Manager所維護的多個表的多個更新,所有需要一次完成的內(nèi)存更新均可封裝在一個更新行為內(nèi)完成,對這一更新行為進行序列化和持久化。

主設備的持久化阻塞在等待NFS寫入成功的事件,NFS寫入成功后將觸發(fā)applylog過程以標記該事件發(fā)生,之后繼續(xù)執(zhí)行實際的Manager更新行為。

NFS寫入成功后,也將觸發(fā)從設備執(zhí)行applylog過程,從設備對從NFS中獲取到的序列化后的更新信息進行反序列化,根據(jù)反序列化結(jié)果更新本地內(nèi)存,即進行反序列化后得到實際的Manager更新行為,并執(zhí)行更新,更新過程需要獲取全局讀鎖。

7)數(shù)據(jù)存儲格式

對于存儲到NFS中的數(shù)據(jù),可進行序列化處理,并針對不同類型的數(shù)據(jù),可分別采用不同的存儲格式。

比如,圖2為本發(fā)明所述內(nèi)存數(shù)據(jù)快照的數(shù)據(jù)存儲格式示意圖,如圖2所示,每個表中可依次包括表名字段和數(shù)據(jù)數(shù)據(jù),數(shù)據(jù)字段中可進一步包括至少一個項目(item)子字段,每個item子字段中可分別采用鍵值(key-value)的形式對數(shù)據(jù)進行存儲。

圖3為本發(fā)明所述更新信息(即主從同步數(shù)據(jù))的數(shù)據(jù)存儲格式示意圖,如圖3所示,每個表中可依次包括用戶標識(uid)字段、方法名字段和參數(shù)列表字段,參數(shù)列表字段中可進一步包括至少一個參數(shù)(param)子字段,每個參數(shù)子字段中可分別存儲有對應參數(shù)的取值(value)。

以上是關于本發(fā)明方法實施例的介紹,以下通過設備實施例,對本發(fā)明所述方案進行進一步說明。

實施例二

圖4為本發(fā)明所述主設備實施例的組成結(jié)構(gòu)示意圖,如圖4所示,包括:獲取單元41和第一更新單元42。

獲取單元41,用于獲取更新信息,并發(fā)送給第一更新單元42。

第一更新單元42,用于將更新信息以Log的方式寫入NFS,以便在寫入成功后,從設備通過tail日志的方式,根據(jù)更新信息更新本地內(nèi)存,并且,寫入成功后,第一更新單元42根據(jù)更新信息更新本地內(nèi)存。

主設備啟動時,獲取單元41可啟動本地的RpcServer,通過RpcServer來獲取來自外部的更新信息等。

當獲取到更新信息后,獲取單元41可將其發(fā)送給第一更新單元42,進而由第一更新單元42將更新信息以Log的方式寫入NFS,并在寫入成功后,更新本地內(nèi)存。

具體地,第一更新單元42可利用Manager,對本地內(nèi)存中需要更新的表進行更新,即內(nèi)存更新操作由Manager發(fā)起,可以是對Manager所維護的多個表的多個更新,所有需要一次完成的內(nèi)存更新均可封裝在一個更新行為內(nèi)完成。

另外,如圖4所示,主設備中還可進一步包括:第一備份單元43。

第一備份單元43,用于當主設備出現(xiàn)故障時,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到本地硬盤,當checkpoint完成之后,執(zhí)行主從切換。

NFS中的數(shù)據(jù)可為進行序列化處理后的數(shù)據(jù)。

更新信息的數(shù)據(jù)存儲格式可包括:每個表中依次包括uid字段、方法名字段和參數(shù)列表字段,參數(shù)列表字段中進一步包括至少一個參數(shù)子字段,每個參數(shù)子字段中分別存儲有對應參數(shù)的取值。

實施例三

圖5為本發(fā)明所述從設備實施例的組成結(jié)構(gòu)示意圖,如圖5所示,包括:第二更新單元51。

第二更新單元51,用于當主設備獲取更新信息,以Log的方式寫入NFS之后,通過tail日志的方式,根據(jù)更新信息更新本地內(nèi)存。

主設備將更新信息以Log的方式寫入NFS,寫入成功后,從設備可通過tail日志的方式,更新本地內(nèi)存,實現(xiàn)與主設備之間的準實時的數(shù)據(jù)同步。

第二更新單元51可從NFS中讀取Log,根據(jù)讀取到的信息更新本地內(nèi)存。

另外,如圖5所示,從設備中還可進一步包括:第二備份單元52。

第二備份單元52,用于周期性地執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到NFS中;并且,當從設備出現(xiàn)故障時,在進程退出之前,執(zhí)行checkpoint,將當前的內(nèi)存數(shù)據(jù)快照備份到NFS中。

其中,NFS中的數(shù)據(jù)可為進行序列化處理后的數(shù)據(jù)。

具體地,內(nèi)存數(shù)據(jù)快照的數(shù)據(jù)存儲格式可包括:每個表中依次包括表名字段和數(shù)據(jù)數(shù)據(jù),數(shù)據(jù)字段中進一步包括至少一個item子字段,每個item子字段中分別采用key-value的形式對數(shù)據(jù)進行存儲。

更新信息的數(shù)據(jù)存儲格式可包括:每個表中依次包括uid字段、方法名字段和參數(shù)列表字段,參數(shù)列表字段中進一步包括至少一個參數(shù)子字段,每個參數(shù)子字段中分別存儲有對應參數(shù)的取值。

相應地,第二更新單元51可對從NFS中獲取到的序列化后的更新信息進行反序列化,根據(jù)反序列化結(jié)果更新本地內(nèi)存。

實施例四

圖6為本發(fā)明所述數(shù)據(jù)管理系統(tǒng)實施例的組成結(jié)構(gòu)示意圖,如圖6所示,包括:如實施例二中所述的主設備,以及,如實施例三中所述的從設備,主設備和從設備均需要與NFS進行交互,圖6所述系統(tǒng)實施例的具體工作流程請參照前述各實施例中的相應說明,此處不再贅述。

總之,采用本發(fā)明所述方案,采用主從方式來實現(xiàn)數(shù)據(jù)同步,底層文件系統(tǒng)采用NFS,從而相比于現(xiàn)有技術提高了系統(tǒng)的穩(wěn)定性和可擴展性,且文件存儲速度快,提升了數(shù)據(jù)處理效率;而且,現(xiàn)有的表結(jié)構(gòu)多存在冗余,而本發(fā)明所述方案中重新構(gòu)造了表結(jié)構(gòu),去除了冗余,從而提升了訪問速度;另外,采用本發(fā)明所述方案,可通過遠程過程調(diào)用(RPC,Remote Procedure Call)協(xié)議來直接訪問內(nèi)存等,從而相比于現(xiàn)有技術能夠提供更高的每秒請求數(shù),進而提高了系統(tǒng)的處理效率等。

在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。

另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。

上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
连城县| 商都县| 和静县| 突泉县| 玉屏| 南开区| 镇江市| 盐城市| 渝中区| 永泰县| 广昌县| 临洮县| 平乐县| 陵川县| 南安市| 阳泉市| 荥经县| 五大连池市| 抚顺市| 贵港市| 唐海县| 寿光市| 虞城县| 廉江市| 乃东县| 泰来县| 徐水县| 阜平县| 嘉黎县| 乌恰县| 潮安县| 公安县| 怀远县| 汉沽区| 南陵县| 鄂尔多斯市| 苗栗县| 宣武区| 宁城县| 南涧| 若羌县|