欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)存儲(chǔ)方法及裝置的制造方法

文檔序號(hào):9471078閱讀:241來(lái)源:國(guó)知局
一種數(shù)據(jù)存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種數(shù)據(jù)存儲(chǔ)方法及裝置。
【背景技術(shù)】
[0002]隨著基于閃存的固態(tài)存儲(chǔ)技術(shù)的發(fā)展,固態(tài)硬盤(pán)(Solid State Disk, SSD)逐漸被引入到存儲(chǔ)系統(tǒng)中。因其小粒度隨機(jī)讀性能較高,SSD通常被用于對(duì)每秒進(jìn)行讀寫(xiě)(I/O)操作(Input/Output Operat1ns Per Second, I OPS)需求較高的應(yīng)用場(chǎng)景中。
[0003]另一方面,多路搜索樹(shù)(B-tree)是一種較常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)。使用B-tree結(jié)構(gòu)可以顯著減少定位記錄時(shí)所經(jīng)歷的中間過(guò)程,從而加快存取速度。因此,為了進(jìn)一步提高數(shù)據(jù)的存取速度,現(xiàn)有技術(shù)中對(duì)于SSD中的數(shù)據(jù),大多采用B-tree的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)。
[0004]在SSD中,更新數(shù)據(jù)的方式為異地更新。所謂異地更新,是指當(dāng)一個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)發(fā)生變化時(shí),在SSD中會(huì)將新的數(shù)據(jù)存儲(chǔ)在另外的存儲(chǔ)節(jié)點(diǎn)中,然后再刪除原來(lái)的存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)。但是,由于B-tree結(jié)構(gòu)中定義的數(shù)據(jù)存儲(chǔ)的最小節(jié)點(diǎn)的數(shù)據(jù)容量一般為4KB,因此,當(dāng)發(fā)生更新的數(shù)據(jù)粒度較小(例如只有100B)時(shí),仍然需要對(duì)4KB的存儲(chǔ)節(jié)點(diǎn)進(jìn)行重新寫(xiě)。由此可見(jiàn),在SSD中采用B-tree的數(shù)據(jù)結(jié)構(gòu),導(dǎo)致了對(duì)小粒度數(shù)據(jù)進(jìn)行更新時(shí)產(chǎn)生了寫(xiě)放大問(wèn)題。
[0005]眾所周知,SSD的讀寫(xiě)速度快,但壽命較短。SSD中的每個(gè)存儲(chǔ)節(jié)點(diǎn)的寫(xiě)入次數(shù)是有限的。因此,現(xiàn)有技術(shù)中的數(shù)據(jù)存儲(chǔ)方法中,對(duì)小粒度數(shù)據(jù)進(jìn)行更新時(shí)產(chǎn)生的寫(xiě)放大問(wèn)題,會(huì)嚴(yán)重影響SSD的使用壽命。

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

[0006]本申請(qǐng)的目的是提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,能夠通過(guò)將數(shù)據(jù)以LSM-tree的方式緩存在磁性硬盤(pán)中,解決對(duì)小粒度數(shù)據(jù)進(jìn)行更新時(shí)產(chǎn)生的寫(xiě)放大問(wèn)題,延長(zhǎng)SSD的使用壽命。
[0007]為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┝巳缦路桨?
[0008]根據(jù)本申請(qǐng)的第一方面的第一種可能的實(shí)現(xiàn)方式,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)存儲(chǔ)方法,所述方法包括:
[0009]從內(nèi)存中獲取需要存儲(chǔ)至固態(tài)硬盤(pán)中的數(shù)據(jù);
[0010]將所述數(shù)據(jù)以日志結(jié)構(gòu)合并樹(shù)的數(shù)據(jù)結(jié)構(gòu)緩存至磁性硬盤(pán)中;
[0011]對(duì)所述磁性硬盤(pán)中緩存的數(shù)據(jù)執(zhí)行合并操作;
[0012]當(dāng)所述磁性硬盤(pán)中緩存的數(shù)據(jù)容量達(dá)到預(yù)設(shè)容量時(shí),將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中。
[0013]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,對(duì)所述磁性硬盤(pán)中緩存的數(shù)據(jù)執(zhí)行合并操作,具體包括:
[0014]確定所述磁性硬盤(pán)中緩存的數(shù)據(jù)的鍵名以及版本號(hào);
[0015]在具有相同鍵名的數(shù)據(jù)中,確定最新生成的數(shù)據(jù)對(duì)應(yīng)的最新版本號(hào);
[0016]保留所述最新版本號(hào)對(duì)應(yīng)的數(shù)據(jù);
[0017]刪除另外的版本號(hào)對(duì)應(yīng)的數(shù)據(jù)。
[0018]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,所述將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中,具體包括:
[0019]將合并后的數(shù)據(jù)寫(xiě)入所述內(nèi)存;
[0020]將寫(xiě)入所述內(nèi)存中的所述合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中。
[0021]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式的第一種具體實(shí)現(xiàn)方式,所述將合并后的數(shù)據(jù)寫(xiě)入所述內(nèi)存之前,還包括:
[0022]判斷所述內(nèi)存中是否已經(jīng)存有所述合并后的數(shù)據(jù);
[0023]如果是,則直接將所述內(nèi)存中存有的所述合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中;
[0024]否則,執(zhí)行將合并后的數(shù)據(jù)寫(xiě)入所述內(nèi)存的步驟。
[0025]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,所述將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中之前,還包括:
[0026]判斷所述磁性硬盤(pán)的空閑帶寬是否大于預(yù)設(shè)閾值;
[0027]如果是,則將合并后的數(shù)據(jù)以排序的字符串表為單位存儲(chǔ)至所述固態(tài)硬盤(pán)中;
[0028]否則,繼續(xù)執(zhí)行將所述數(shù)據(jù)以日志結(jié)構(gòu)合并樹(shù)的數(shù)據(jù)結(jié)構(gòu)緩存至磁性硬盤(pán)的步驟。
[0029]結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,所述將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中之前,還包括:
[0030]在所述合并后的數(shù)據(jù)中,確定更新頻率小于預(yù)設(shè)頻率的數(shù)據(jù);
[0031]所述將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中,具體包括:
[0032]將所述更新頻率小于預(yù)設(shè)頻率的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中。
[0033]結(jié)合第一方面的五種可能的實(shí)現(xiàn)方式中的任意一種,所述合并后的數(shù)據(jù)以多路搜索樹(shù)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在所述固態(tài)硬盤(pán)中。
[0034]結(jié)合第一方面的五種可能的實(shí)現(xiàn)方式中的任意一種,所述日志結(jié)構(gòu)合并樹(shù)的索引持久存儲(chǔ)于所述磁性硬盤(pán)中。
[0035]根據(jù)本申請(qǐng)的第二方面的第一種可能的實(shí)現(xiàn)方式,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:
[0036]數(shù)據(jù)獲取單元,用于從內(nèi)存中獲取需要存儲(chǔ)至固態(tài)硬盤(pán)中的數(shù)據(jù);
[0037]緩存單元,用于將所述數(shù)據(jù)以日志結(jié)構(gòu)合并樹(shù)的數(shù)據(jù)結(jié)構(gòu)緩存至磁性硬盤(pán)中;
[0038]合并單元,用于對(duì)所述磁性硬盤(pán)中緩存的數(shù)據(jù)執(zhí)行合并操作;
[0039]存儲(chǔ)遷移單元,用于當(dāng)所述磁性硬盤(pán)中緩存的數(shù)據(jù)容量達(dá)到預(yù)設(shè)容量時(shí),將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中。
[0040]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,所述合并單元,具體用于:
[0041]確定所述磁性硬盤(pán)中緩存的數(shù)據(jù)的鍵名以及版本號(hào);
[0042]在具有相同鍵名的數(shù)據(jù)中,確定最新生成的數(shù)據(jù)對(duì)應(yīng)的最新版本號(hào);
[0043]保留所述最新版本號(hào)對(duì)應(yīng)的數(shù)據(jù);
[0044]刪除另外的版本號(hào)對(duì)應(yīng)的數(shù)據(jù)。
[0045]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,所述存儲(chǔ)遷移單元,具體用于:
[0046]將合并后的數(shù)據(jù)寫(xiě)入所述內(nèi)存;
[0047]將寫(xiě)入所述內(nèi)存中的所述合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中。
[0048]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式的第一種具體的實(shí)現(xiàn)方式,第一判斷單元,用于在將合并后的數(shù)據(jù)寫(xiě)入所述內(nèi)存之前,判斷所述內(nèi)存中是否已經(jīng)存有所述合并后的數(shù)據(jù);
[0049]所述存儲(chǔ)遷移單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為是時(shí),直接將所述內(nèi)存中存有的所述合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中;
[0050]當(dāng)所述第一判斷單元的判斷結(jié)果為是時(shí),執(zhí)行將合并后的數(shù)據(jù)寫(xiě)入所述內(nèi)存的步驟。
[0051]結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,還包括:
[0052]第二判斷單元,用于在將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中之前,判斷所述磁性硬盤(pán)的空閑帶寬是否大于預(yù)設(shè)閾值;
[0053]所述存儲(chǔ)遷移單元,用于當(dāng)所述第二判斷單元的判斷結(jié)果為是時(shí),則將合并后的數(shù)據(jù)以排序的字符串表為單位存儲(chǔ)至所述固態(tài)硬盤(pán)中;
[0054]當(dāng)所述第二判斷單元的判斷結(jié)果為否時(shí),繼續(xù)執(zhí)行將所述數(shù)據(jù)以日志結(jié)構(gòu)合并樹(shù)的數(shù)據(jù)結(jié)構(gòu)緩存至磁性硬盤(pán)的步驟。
[0055]結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,還包括:
[0056]數(shù)據(jù)確定單元,用于在將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中之前,在所述合并后的數(shù)據(jù)中,確定更新頻率小于預(yù)設(shè)頻率的數(shù)據(jù);
[0057]所述存儲(chǔ)遷移單元,具體用于:
[0058]將所述更新頻率小于預(yù)設(shè)頻率的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中。
[0059]結(jié)合第二方面的五種可能的實(shí)現(xiàn)方式中的任意一種,所述合并后的數(shù)據(jù)以多路搜索樹(shù)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在所述固態(tài)硬盤(pán)中。
[0060]根據(jù)本申請(qǐng)?zhí)峁┑木唧w實(shí)施例,本申請(qǐng)公開(kāi)了以下技術(shù)效果:
[0061]本申請(qǐng)公開(kāi)的數(shù)據(jù)存儲(chǔ)方法或裝置,通過(guò)將所述數(shù)據(jù)以日志結(jié)構(gòu)合并樹(shù)的數(shù)據(jù)結(jié)構(gòu)緩存至磁性硬盤(pán)中;對(duì)所述磁性硬盤(pán)中緩存的數(shù)據(jù)執(zhí)行合并操作;將合并后的數(shù)據(jù)存儲(chǔ)至所述固態(tài)硬盤(pán)中;可以采用磁性硬盤(pán)承載小粒度數(shù)據(jù)的更新過(guò)程,并且,由于對(duì)所述磁性硬盤(pán)中緩存的數(shù)據(jù)執(zhí)行了合并操作,當(dāng)某個(gè)鍵名的數(shù)據(jù)先后生成了多個(gè)不同版本的數(shù)據(jù)時(shí),最終可以在磁性硬盤(pán)中合并成一個(gè)版本的數(shù)據(jù),從而使得原本對(duì)于固態(tài)硬盤(pán)的多次寫(xiě)入過(guò)程,可以簡(jiǎn)化為一次寫(xiě)入過(guò)程,解決了對(duì)小粒度數(shù)據(jù)進(jìn)行更新時(shí)產(chǎn)生的寫(xiě)放大問(wèn)題,可以延長(zhǎng)SSD的使用壽命。
【附圖說(shuō)明】
[0062]為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0063]圖1為本發(fā)明的數(shù)據(jù)存儲(chǔ)方法實(shí)施例1的流
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
茂名市| 五指山市| 鄂尔多斯市| 江油市| 固安县| 崇左市| 轮台县| 上虞市| 佛山市| 南郑县| 调兵山市| 浮梁县| 莒南县| 桐梓县| 贵南县| 永仁县| 田东县| 额尔古纳市| 阳曲县| 海南省| 鄯善县| 来安县| 那坡县| 衡水市| 青海省| 睢宁县| 大冶市| 会东县| 靖边县| 丹棱县| 凌云县| 安义县| 和硕县| 晋江市| 永济市| 自贡市| 新巴尔虎左旗| 壤塘县| 汨罗市| 桂平市| 鲁甸县|