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

一種數(shù)據(jù)存儲方法與系統(tǒng)的制作方法

文檔序號:9865624閱讀:443來源:國知局
一種數(shù)據(jù)存儲方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式數(shù)據(jù)處理領(lǐng)域,特別是涉及一種數(shù)據(jù)存儲方法與系統(tǒng)。
【背景技術(shù)】
[0002]在運行軟件系統(tǒng)時,有時會將系統(tǒng)運行所產(chǎn)生的或所需要的一些數(shù)據(jù)存儲到磁盤上。這一做法的好處是當系統(tǒng)因意外(進程崩潰或被殺、操作系統(tǒng)崩潰、系統(tǒng)斷電或立即重啟等)而中止時,在下次啟動后可以從磁盤再次讀入數(shù)據(jù),部分或全部地恢復系統(tǒng)在中止前的運行狀態(tài)。
[0003]在上述設計中,隨著數(shù)據(jù)的不斷更新,也需要不時地將這些更新保存到磁盤,并且保證這些數(shù)據(jù)在保存后的一致性(不能有數(shù)據(jù)錯誤)和完整性(不能有數(shù)據(jù)丟失),否則,系統(tǒng)重啟后會遇到問題?,F(xiàn)有技術(shù)為了實現(xiàn)數(shù)據(jù)存儲的一致性,通常有以下幾種方法:
[0004]1、使用數(shù)據(jù)庫存儲數(shù)據(jù),將數(shù)據(jù)的保存組織成一個事務整體性地提交,數(shù)據(jù)庫的內(nèi)部機制可以保證該提交的一致性;
[0005]2、使用數(shù)據(jù)冗余和校驗,在保存數(shù)據(jù)的同時也保存其相關(guān)信息(即元數(shù)據(jù)),如數(shù)據(jù)的長度、開頭和結(jié)尾標識、校驗和等。在讀取數(shù)據(jù)時,通過檢查這些信息,發(fā)現(xiàn)并丟棄不一致的數(shù)據(jù)。
[0006]對于一些數(shù)據(jù)量較少的情況,上述解決方案都過于復雜了,使用數(shù)據(jù)庫會引入額外的模塊和成本,而使用數(shù)據(jù)冗余和校驗會增加設計和開發(fā)的工作量,不能高效低成本地實現(xiàn)數(shù)據(jù)存儲一致性。

【發(fā)明內(nèi)容】

[0007]有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)存儲方法與系統(tǒng),可以高效低成本地實現(xiàn)數(shù)據(jù)存儲一致性。
[0008]為實現(xiàn)上述目的,本發(fā)明提供了一種數(shù)據(jù)存儲方法,包括:
[0009]將目標數(shù)據(jù)寫入臨時文件;
[0010]通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件。
[0011]優(yōu)選地,通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件后還包括:
[0012]響應所述目標數(shù)據(jù)的讀取指令,從所述正式文件中讀取所述目標數(shù)據(jù)。
[0013]優(yōu)選地,將目標數(shù)據(jù)寫入臨時文件前還包括:
[0014]響應數(shù)據(jù)寫入指令獲取要寫入的目標數(shù)據(jù)。
[0015]本發(fā)明還提供了一種數(shù)據(jù)存儲系統(tǒng),包括:
[0016]臨時文件寫入模塊,用于將目標數(shù)據(jù)寫入臨時文件;
[0017]正式文件獲取模塊,用于通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件。
[0018]優(yōu)選地,所述數(shù)據(jù)存儲系統(tǒng)還包括:
[0019]數(shù)據(jù)讀取模塊,用于響應所述目標數(shù)據(jù)的讀取指令,從所述正式文件中讀取所述目標數(shù)據(jù)。
[0020]優(yōu)選地,所述數(shù)據(jù)存儲系統(tǒng)還包括:
[0021]目標數(shù)據(jù)獲取模塊,用于響應數(shù)據(jù)寫入指令獲取要寫入的目標數(shù)據(jù)。
[0022]應用本發(fā)明提供的一種數(shù)據(jù)存儲方法與系統(tǒng),將目標數(shù)據(jù)寫入臨時文件,通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件,寫入臨時文件不會影響正式文件中的數(shù)據(jù),而重命名操作結(jié)果為成功時,臨時文件將替換掉正式文件,其中保存的數(shù)據(jù)也將整體替換原有的數(shù)據(jù);結(jié)果為失敗時,操作系統(tǒng)將保證正式文件不會受到影響。在這兩種情況下,正式文件中的數(shù)據(jù)始終是一致的和完整的。通過rename系統(tǒng)調(diào)用的原子性來保證文件替換的原子性,如果目標文件已經(jīng)存在,它將被原子性地替換,從而高效低成本地實現(xiàn)數(shù)據(jù)存儲的一致性。
【附圖說明】
[0023]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0024]圖1為本發(fā)明一種數(shù)據(jù)存儲方法實施例一的流程圖;
[0025]圖2為本發(fā)明一種數(shù)據(jù)存儲系統(tǒng)實施例二的結(jié)構(gòu)示意圖;
[0026]圖3為本發(fā)明一種數(shù)據(jù)存儲系統(tǒng)實施例二的又一結(jié)構(gòu)示意圖。
【具體實施方式】
[0027]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0028]實施例一:
[0029]本發(fā)明提供了一種數(shù)據(jù)存儲方法,圖1示出了本發(fā)明數(shù)據(jù)存儲方法實施例一的流程圖,包括:
[0030]步驟SlOl:將目標數(shù)據(jù)寫入臨時文件;
[0031 ]響應數(shù)據(jù)寫入指令獲取要寫入的目標數(shù)據(jù),將所述目標數(shù)據(jù)寫入臨時文件,數(shù)據(jù)將存為臨時文件,要保證數(shù)據(jù)落盤,以應對硬件重啟、硬件斷電的情況。
[0032]步驟S102:通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件。
[0033]在Linux/UNIX系統(tǒng)中,rename系統(tǒng)調(diào)用有一個特點:如果目標文件已經(jīng)存在,它將被原子性地替換。Windows系統(tǒng)下的rename在目標文件已存在時將會失敗,所以本方案不適用于Windows系統(tǒng)。
[0034]rename函數(shù)功能是給一個文件重命名,用該函數(shù)可以實現(xiàn)文件移動功能,把一個文件的完整路徑的盤符改一下就實現(xiàn)了這個文件的移動。
[0035]重命名操作可能有兩種結(jié)果:
[0036](I)成功。這時臨時文件將替換掉正式文件,其中保存的數(shù)據(jù)也將整體替換原有的數(shù)據(jù);
[0037](2)因錯誤或意外而失敗。這時,操作系統(tǒng)將保證正式文件不會受到影響。
[0038]在這兩種情況下,正式文件中的數(shù)據(jù)始終是一致的和完整的。
[0039]之后需要讀取數(shù)據(jù)時,響應所述目標數(shù)據(jù)的讀取指令,從所述正式文件中讀取所述目標數(shù)據(jù)。
[0040]應用本實施例提供的一種數(shù)據(jù)存儲方法,將目標數(shù)據(jù)寫入臨時文件,通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件,寫入臨時文件不會影響正式文件中的數(shù)據(jù),而重命名操作結(jié)果為成功時,臨時文件將替換掉正式文件,其中保存的數(shù)據(jù)也將整體替換原有的數(shù)據(jù);結(jié)果為失敗時,操作系統(tǒng)將保證正式文件不會受到影響。在這兩種情況下,正式文件中的數(shù)據(jù)始終是一致的和完整的。通過rename系統(tǒng)調(diào)用的原子性來保證文件替換的原子性,如果目標文件已經(jīng)存在,它將被原子性地替換,從而高效低成本地實現(xiàn)數(shù)據(jù)存儲的一致性。
[0041]實施例二:
[0042]本發(fā)明還提供了一種數(shù)據(jù)存儲系統(tǒng),圖2示出了本發(fā)明數(shù)據(jù)存儲系統(tǒng)實施例二的結(jié)構(gòu)示意圖,包括:
[0043]臨時文件寫入模塊101,用于將目標數(shù)據(jù)寫入臨時文件;
[0044]正式文件獲取模塊102,用于通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件。
[0045]如圖3所示,對應于圖2,本實施例還可包括:
[0046]目標數(shù)據(jù)獲取模塊100,用于響應數(shù)據(jù)寫入指令獲取要寫入的目標數(shù)據(jù);
[0047]數(shù)據(jù)讀取模塊103,用于響應所述目標數(shù)據(jù)的讀取指令,從所述正式文件中讀取所述目標數(shù)據(jù)。
[0048]應用本實施例提供的一種數(shù)據(jù)存儲系統(tǒng),將目標數(shù)據(jù)寫入臨時文件,通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件,寫入臨時文件不會影響正式文件中的數(shù)據(jù),而重命名操作結(jié)果為成功時,臨時文件將替換掉正式文件,其中保存的數(shù)據(jù)也將整體替換原有的數(shù)據(jù);結(jié)果為失敗時,操作系統(tǒng)將保證正式文件不會受到影響。在這兩種情況下,正式文件中的數(shù)據(jù)始終是一致的和完整的。通過rename系統(tǒng)調(diào)用的原子性來保證文件替換的原子性,如果目標文件已經(jīng)存在,它將被原子性地替換,從而高效低成本地實現(xiàn)數(shù)據(jù)存儲的一致性。
[0049]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0050]最后,還需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0051]以上對本發(fā)明所提供的方法和系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
【主權(quán)項】
1.一種數(shù)據(jù)存儲方法,其特征在于,包括: 將目標數(shù)據(jù)寫入臨時文件; 通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件后還包括: 響應所述目標數(shù)據(jù)的讀取指令,從所述正式文件中讀取所述目標數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,將目標數(shù)據(jù)寫入臨時文件前還包括: 響應數(shù)據(jù)寫入指令獲取要寫入的目標數(shù)據(jù)。4.一種數(shù)據(jù)存儲系統(tǒng),其特征在于,包括: 臨時文件寫入模塊,用于將目標數(shù)據(jù)寫入臨時文件; 正式文件獲取模塊,用于通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件。5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,還包括: 數(shù)據(jù)讀取模塊,用于響應所述目標數(shù)據(jù)的讀取指令,從所述正式文件中讀取所述目標數(shù)據(jù)。6.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,還包括: 目標數(shù)據(jù)獲取模塊,用于響應數(shù)據(jù)寫入指令獲取要寫入的目標數(shù)據(jù)。
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)存儲方法與系統(tǒng),將目標數(shù)據(jù)寫入臨時文件,通過rename系統(tǒng)調(diào)用方式將所述臨時文件重命名為正式文件,寫入臨時文件不會影響正式文件中的數(shù)據(jù),而重命名操作結(jié)果為成功時,臨時文件將替換掉正式文件,其中保存的數(shù)據(jù)也將整體替換原有的數(shù)據(jù);結(jié)果為失敗時,操作系統(tǒng)將保證正式文件不會受到影響。在這兩種情況下,正式文件中的數(shù)據(jù)始終是一致的和完整的。通過rename系統(tǒng)調(diào)用的原子性來保證文件替換的原子性,如果目標文件已經(jīng)存在,它將被原子性地替換,從而高效低成本地實現(xiàn)數(shù)據(jù)存儲的一致性。
【IPC分類】G06F11/14, G06F17/30
【公開號】CN105630900
【申請?zhí)枴緾N201510961681
【發(fā)明人】吳明橋, 文中領(lǐng)
【申請人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司
【公開日】2016年6月1日
【申請日】2015年12月18日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宁晋县| 大邑县| 本溪市| 临武县| 太白县| 德钦县| 隆子县| 静宁县| 甘谷县| 集贤县| 宜州市| 湘西| 上栗县| 盘锦市| 丹寨县| 竹北市| 晋城| 依安县| 平谷区| 深州市| 邮箱| 司法| 肃南| 合作市| 五常市| 荆州市| 富裕县| 顺平县| 盐亭县| 永春县| 赤城县| 南投县| 昌邑市| 台中县| 手机| 阳西县| 武强县| 凌海市| 荣昌县| 嫩江县| 宜春市|