一種數(shù)據(jù)讀取的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)讀取的方法,所述集群數(shù)據(jù)系統(tǒng)包括計算節(jié)點和協(xié)調(diào)節(jié)點,協(xié)調(diào)節(jié)點上設(shè)置有多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括:計算節(jié)點在內(nèi)存中查找待讀取的數(shù)據(jù)頁,在未查找到待讀取的數(shù)據(jù)頁時,向協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,計算節(jié)點讀取協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給計算節(jié)點的。本發(fā)明實施例提供的數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
【專利說明】一種數(shù)據(jù)讀取的方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,具體涉及一種業(yè)務(wù)數(shù)據(jù)處理的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]在集群數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)讀取的過程是:計算節(jié)點先從自身內(nèi)存中查找數(shù)據(jù),如果自身內(nèi)存中不存在查找的數(shù)據(jù),則從自身固態(tài)硬盤(Solid State Drive,SSD)中查找,如果自身SSD中也不存在查找的數(shù)據(jù),則從再從磁盤中查找。SSD是數(shù)據(jù)庫系統(tǒng)中的擴展緩存,存放內(nèi)存中淘汰出來的干凈頁。在讀取數(shù)據(jù)的時候,如果內(nèi)存中不命中,先嘗試在SSD擴展緩存中命中。因為SSD的容量一般是內(nèi)存容量的2-8倍,可以緩存大部分的熱數(shù)據(jù)。所以,大部分的不在內(nèi)存中命中的熱數(shù)據(jù)可以快速在SSD中命中。
[0003]現(xiàn)有技術(shù)的數(shù)據(jù)庫系統(tǒng)中每個計算節(jié)點都要配一塊SSD卡。如果集群中有10個計算節(jié)點,則共需要配10塊SSD卡,導(dǎo)致數(shù)據(jù)庫系統(tǒng)中要配多塊SSD卡,而且單塊SSD只為單個計算節(jié)點做讀緩存無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供的一種數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。本發(fā)明實施例還提供了相應(yīng)的裝置及系統(tǒng)。
[0005]本發(fā)明第一方面提供一種數(shù)據(jù)讀取的方法,所述方法應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括:
[0006]所述計算節(jié)點在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁;
[0007]在未查找到所述待讀取的數(shù)據(jù)頁時,所述計算節(jié)點向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0008]所述計算節(jié)點讀取所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的;
[0009]所述計算節(jié)點接收所述協(xié)調(diào)節(jié)點發(fā)送的未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0010]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述計算節(jié)點所述向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求之前,所述方法還包括:
[0011]所述計算節(jié)點根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁;
[0012]當所述淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲;
[0013]當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
[0014]本發(fā)明第二方面提供一種數(shù)據(jù)讀取的方法,所述方法應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括:
[0015]所述協(xié)調(diào)節(jié)點接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送給所述協(xié)調(diào)節(jié)點的;
[0016]所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0017]所述協(xié)調(diào)節(jié)點在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁;
[0018]所述協(xié)調(diào)節(jié)點在未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0019]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD,所述從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,包括:
[0020]從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁;
[0021]當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
[0022]結(jié)合第二方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述從所述SSD中查找對應(yīng)的待讀取的數(shù)據(jù)頁,包括:
[0023]從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息;
[0024]當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
[0025]結(jié)合第二方面第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述協(xié)調(diào)節(jié)點接收數(shù)據(jù)獲取請求之前,所述方法還包括:
[0026]所述協(xié)調(diào)節(jié)點接收所述計算節(jié)點發(fā)送的淘汰頁;
[0027]將所述淘汰頁存放到所述SSD中,并將所述淘汰頁的標識信息添加到所述SSD哈希表中。
[0028]本發(fā)明第三方面提供一種應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,所述集群數(shù)據(jù)庫系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述計算節(jié)點包括:
[0029]查找單元,用于在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁;
[0030]發(fā)送單元,用于所述查找單元在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0031]接收單元,用于接收所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁或未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的;
[0032]讀取單元,用于讀取所述待讀取的數(shù)據(jù)頁;
[0033]所述查找單元,還用于根據(jù)所述接收單元接收的所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0034]結(jié)合第三方面,在第一種可能的實現(xiàn)方式中,所述計算節(jié)點還包括:確定單元,
[0035]所述確定單元,用于根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁;
[0036]所述發(fā)送單元,還用于當所述確定單元確定的淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲;當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
[0037]本發(fā)明第四方面提供一種應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述協(xié)調(diào)節(jié)點包括:
[0038]接收單元,用于接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送給所述協(xié)調(diào)節(jié)點的;
[0039]查找單元,用于根據(jù)所述接收單元接收的所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0040]發(fā)送單元,用于在所述查找單元查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁,在所述查找單元未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0041]結(jié)合第四方面,在第一種可能的實現(xiàn)方式中,所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD,
[0042]所述查找單元,具體用于從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁,當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
[0043]結(jié)合第四方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,
[0044]所述查找單元,具體用于從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息,當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
[0045]結(jié)合第四方面第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述協(xié)調(diào)節(jié)點還包括:存放單元和添加單元,
[0046]所述接收單元,還用于接收所述計算節(jié)點發(fā)送的淘汰頁;
[0047]所述存放單元,用于將所述接收單元接收的所述淘汰頁存放到所述SSD中;
[0048]所述添加單元,用于并將所述存放單元存放到所述SSD中的淘汰頁的標識信息添加到所述SSD哈希表中。
[0049]本發(fā)明第五方面提供一種集群數(shù)據(jù)庫系統(tǒng),包括:多個計算節(jié)點和協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存;
[0050]所述計算節(jié)點,用于在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁,在未查找到所述待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0051]所述協(xié)調(diào)節(jié)點,用于根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁;
[0052]所述計算節(jié)點,用于讀取所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的。
[0053]本發(fā)明實施例采用在集群數(shù)據(jù)庫系統(tǒng)的協(xié)調(diào)節(jié)點上設(shè)置可供多個計算節(jié)點共享的共享緩存,計算節(jié)點在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁,計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,在協(xié)調(diào)節(jié)點查找到所述待讀取的數(shù)據(jù)頁時,將所述待讀取的數(shù)據(jù)頁發(fā)送給所述計算節(jié)點,當協(xié)調(diào)節(jié)點未查找到所述待讀取的數(shù)據(jù)頁時,發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息給所述結(jié)算節(jié)點,計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。與現(xiàn)有技術(shù)中每個計算節(jié)點都要配一塊SSD卡,單塊SSD只為單個計算節(jié)點做讀緩存,無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下相比,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
【專利附圖】
【附圖說明】
[0054]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0055]圖1是本發(fā)明實施例中集群數(shù)據(jù)庫系統(tǒng)的一實施例示意圖;
[0056]圖2是本發(fā)明實施例中集群數(shù)據(jù)庫系統(tǒng)的另一實施例示意圖;
[0057]圖3是本發(fā)明實施例中數(shù)據(jù)讀取的方法的一實施例示意圖;
[0058]圖4是本發(fā)明實施例中數(shù)據(jù)讀取的方法的另一實施例示意圖;
[0059]圖5是本發(fā)明實施例中計算節(jié)點的一實施例示意圖;
[0060]圖6是本發(fā)明實施例中計算節(jié)點的另一實施例示意圖;
[0061]圖7是本發(fā)明實施例中協(xié)調(diào)節(jié)點的一實施例示意圖;
[0062]圖8是本發(fā)明實施例中協(xié)調(diào)節(jié)點的另一實施例示意圖;
[0063]圖9是本發(fā)明實施例中計算節(jié)點的另一實施例示意圖;
[0064]圖10是本發(fā)明實施例中協(xié)調(diào)節(jié)點的另一實施例示意圖;
[0065]圖11是本發(fā)明實施例中集群數(shù)據(jù)庫系統(tǒng)的一實施例示意圖。
【具體實施方式】
[0066]本發(fā)明實施例提供一種數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。本發(fā)明實施例還提供了相應(yīng)的裝置及系統(tǒng)以下分別進行詳細說明。
[0067]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范圍。
[0068]本發(fā)明實施例中計算節(jié)點和協(xié)調(diào)節(jié)點都可以為計算機、服務(wù)器等通信設(shè)備。
[0069]參閱圖1,本發(fā)明實施例提供的集群數(shù)據(jù)庫系統(tǒng)包括多個計算節(jié)點,如圖1中的計算節(jié)點1、計算節(jié)點2…計算節(jié)點K,K為大于2的整數(shù)。多個計算節(jié)點共同使用共享磁盤,共享磁盤作為多個計算節(jié)點的共享存儲設(shè)備。多個計算節(jié)點通過網(wǎng)絡(luò)通道與協(xié)調(diào)節(jié)點通信,圖1所示的協(xié)調(diào)節(jié)點包括主協(xié)調(diào)節(jié)點和備協(xié)調(diào)節(jié)點兩個,主協(xié)調(diào)節(jié)點正常時,備協(xié)調(diào)節(jié)點處于空閑狀態(tài),當主協(xié)調(diào)節(jié)點故障時,備協(xié)調(diào)節(jié)點接替主協(xié)調(diào)節(jié)點的工作。主協(xié)調(diào)節(jié)點和備協(xié)調(diào)節(jié)點上都設(shè)置有內(nèi)存和固態(tài)硬盤(Solid State Drive,SSD),SSD也被叫做閃存、FLASH等。每個計算節(jié)點上都有各自的內(nèi)存,每個計算節(jié)點可以通過網(wǎng)絡(luò)通道與主協(xié)調(diào)節(jié)點通信。在本發(fā)明實施例中,內(nèi)存的讀取速度最快、SSD的讀取速度居中,共享磁盤的讀取數(shù)據(jù)最慢。
[0070]協(xié)調(diào)節(jié)點負責(zé)管理和維護多個計算節(jié)點的資源信息。在集群環(huán)境下,多個計算節(jié)點同時訪問共享資源,可能會造成共享資源的并發(fā)訪問,這種情況下,協(xié)調(diào)節(jié)點就需要對共享資源實現(xiàn)統(tǒng)一的管理。
[0071]計算節(jié)點負責(zé)執(zhí)行具體的事務(wù),可以直接訪問磁盤等共享存儲設(shè)備。
[0072]多個計算節(jié)點共享協(xié)調(diào)節(jié)點中設(shè)置的內(nèi)存和SSD,為了滿足計算節(jié)點對協(xié)調(diào)節(jié)點中SSD的使用,可以在協(xié)調(diào)節(jié)點中設(shè)置全局buffer接口裝置,在每個計算節(jié)點中設(shè)置SSD讀緩存管理裝置,如圖2所示。
[0073]全局Buffer接口裝置:主要提供接口供計算節(jié)點使用協(xié)調(diào)節(jié)點上面的SSD等公共資源。
[0074]SSD讀緩存管理裝置:位于內(nèi)存與文件系統(tǒng)之間,將SSD作為內(nèi)存與文件之間的緩存進行管理。在計算節(jié)點向協(xié)調(diào)節(jié)點請求SSD中的數(shù)據(jù)時,SSD讀緩存管理裝置與全局Buffer接口進行交互,從而獲得SSD中的數(shù)據(jù)頁。
[0075]本發(fā)明實施例中數(shù)據(jù)讀取的過程以計算節(jié)點I為例,可以參閱圖2中的SlOO、S102、S104、106 和 108 進行理解:
[0076]本發(fā)明實施例中協(xié)調(diào)節(jié)點的共享緩存包括設(shè)置在協(xié)調(diào)節(jié)點中的內(nèi)存和SSD。
[0077]計算節(jié)點I中內(nèi)存缺頁時,根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁。當所述淘汰頁為臟頁時,執(zhí)行步驟S100,當所述淘汰頁為臟頁時,執(zhí)行步驟S102。
[0078]淘汰算法可以有多種,例如:先進先出(First Input First Output, FIFO)算法、最近最少使用(Least Recently Used, LRU)算法等。
[0079]S100、計算節(jié)點I將所述淘汰頁發(fā)送到所述多個計算節(jié)點的共享磁盤進行存儲。
[0080]S102、計算節(jié)點I將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述SSD中。
[0081]協(xié)調(diào)節(jié)點上會維護一個SSD哈希表,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息,當SSD中新增淘汰頁時,SSD哈希表也會添加該淘汰頁的標識信息。
[0082]S104、計算節(jié)點I在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁,在自身內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求。
[0083]計算節(jié)點I在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁的動作可能是由用戶向所述計算節(jié)點I中執(zhí)行寫操作觸發(fā)的,也可能是計算節(jié)點I在執(zhí)行業(yè)務(wù)程序所觸發(fā)的。
[0084]S106、所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求先從協(xié)調(diào)節(jié)點內(nèi)存中查找對應(yīng)的待讀取的數(shù)據(jù)頁,協(xié)調(diào)節(jié)點的內(nèi)存中沒有該待讀取的數(shù)據(jù)頁時,從所述SSD中查找對應(yīng)的待讀取的數(shù)據(jù)頁,當查找到所述待讀取的數(shù)據(jù)頁時,向計算節(jié)點I發(fā)送所述待讀取的數(shù)據(jù)頁,當未查找到所述待讀取的數(shù)據(jù)頁時,向計算節(jié)點I發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息。
[0085]計算節(jié)點I接收到所述待讀取的數(shù)據(jù)頁時,讀取所述待讀取的數(shù)據(jù)頁。
[0086]計算節(jié)點I接收到未查找到所述待讀取的數(shù)據(jù)頁的指示消息時,執(zhí)行步驟S108。
[0087]所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求,從所述SSD中查找對應(yīng)的待讀取的數(shù)據(jù)頁,可以包括:
[0088]所述協(xié)調(diào)節(jié)點從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息;
[0089]當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
[0090]S108、計算節(jié)點I從磁盤查找所述待讀取的數(shù)據(jù)頁。
[0091]與現(xiàn)有技術(shù)中每個計算節(jié)點都要配一塊SSD卡,單塊SSD只為單個計算節(jié)點做讀緩存,無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下相比,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0092]參閱圖3,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法的一實施例,所述方法應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法可以包括:
[0093]201、所述計算節(jié)點在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁。
[0094]202、在未查找到所述待讀取的數(shù)據(jù)頁時,所述計算節(jié)點向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁。
[0095]203、所述計算節(jié)點讀取所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的。
[0096]204、所述計算節(jié)點接收所述協(xié)調(diào)節(jié)點發(fā)送的未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0097]本發(fā)明實施例采用在集群數(shù)據(jù)庫系統(tǒng)的協(xié)調(diào)節(jié)點上設(shè)置可供多個計算節(jié)點共享的共享緩存,計算節(jié)點在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁,計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,在協(xié)調(diào)節(jié)點查找到所述待讀取的數(shù)據(jù)頁時,將所述待讀取的數(shù)據(jù)頁發(fā)送給所述計算節(jié)點,當協(xié)調(diào)節(jié)點未查找到所述待讀取的數(shù)據(jù)頁時,發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。,并發(fā)送給計算節(jié)點。與現(xiàn)有技術(shù)中每個計算節(jié)點都要配一塊SSD卡,單塊SSD只為單個計算節(jié)點做讀緩存,無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下相比,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0098]可選地,在上述圖3對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法的另一實施例中,
[0099]所述計算節(jié)點所述向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求之前,所述方法還包括:
[0100]所述計算節(jié)點根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁;
[0101]當所述淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲;
[0102]當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
[0103]本發(fā)明圖3所示的實施例及相應(yīng)的可選實施例提供的數(shù)據(jù)讀取的過程,可以參閱圖1和圖2部分的描述進行理解,本處不做過多贅述。
[0104]參閱圖4,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法的一實施例,所述方法應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括:
[0105]301、所述協(xié)調(diào)節(jié)點接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送給所述協(xié)調(diào)節(jié)點的。
[0106]302、所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁。
[0107]303、所述協(xié)調(diào)節(jié)點在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁。
[0108]304、所述協(xié)調(diào)節(jié)點在未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0109]本發(fā)明實施例提供的數(shù)據(jù)讀取的方法,應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括:所述協(xié)調(diào)節(jié)點接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送給所述協(xié)調(diào)節(jié)點的;所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;所述協(xié)調(diào)節(jié)點在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁,所述協(xié)調(diào)節(jié)點在未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。與現(xiàn)有技術(shù)中每個計算節(jié)點都要配一塊SSD卡,單塊SSD只為單個計算節(jié)點做讀緩存,無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下相比,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0110]可選地,在上述圖4對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法的另一實施例中,
[0111]所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD,所述從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,包括:
[0112]從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁;
[0113]當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
[0114]可選地,在上一個可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法的另一實施例中,所述從所述SSD中查找對應(yīng)的待讀取的數(shù)據(jù)頁,可以包括:
[0115]所述協(xié)調(diào)節(jié)點從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息;
[0116]當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
[0117]可選地,在上述圖4對應(yīng)的上一可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的數(shù)據(jù)讀取的方法的另一實施例中,所述協(xié)調(diào)節(jié)點接收每個計算節(jié)點發(fā)送的數(shù)據(jù)獲取請求之前,所述方法還可以包括:
[0118]所述協(xié)調(diào)節(jié)點接收所述計算節(jié)點發(fā)送的淘汰頁;
[0119]將所述淘汰頁存放到所述SSD中,并將所述淘汰頁的標識信息添加到所述SSD哈希表中。
[0120]本發(fā)明圖4所示的實施例及相應(yīng)的可選實施例提供的數(shù)據(jù)讀取的過程,可以參閱圖1和圖2部分的描述進行理解,本處不做過多贅述。
[0121]參閱圖5,本發(fā)明實施例提供的應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點的一實施例,所述集群數(shù)據(jù)庫系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述計算節(jié)點40包括:
[0122]查找單元401,用于在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁;
[0123]發(fā)送單元402,用于所述查找單元401在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0124]接收單元403,用于接收所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁或未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的;
[0125]讀取單元404,用于讀取所述接收單元403接收的所述待讀取的數(shù)據(jù)頁。
[0126]所述查找單元401,還用于根據(jù)所述接收單元403接收的所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0127]本發(fā)明實施例中,所述集群數(shù)據(jù)庫系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述計算節(jié)點40包括:查找單元401在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁;發(fā)送單元402所述查找單元401在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;接收單元403接收所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁或未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的;讀取單元404讀取所述接收單元403接收的所述待讀取的數(shù)據(jù)頁,所述查找單元401還根據(jù)所述接收單元403接收的所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。與現(xiàn)有技術(shù)中每個計算節(jié)點都要配一塊SSD卡,單塊SSD只為單個計算節(jié)點做讀緩存,無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下相比,本發(fā)明實施例提供的計算節(jié)點,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0128]可選地,在上述圖5對應(yīng)的實施例的基礎(chǔ)上,參閱圖6,本發(fā)明實施例提供的計算節(jié)點的另一實施例中,所述計算節(jié)點還包括:確定單元405,
[0129]所述確定單元405,用于根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁;
[0130]所述發(fā)送單元402,還用于當所述確定單元405確定的淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲;當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
[0131]本發(fā)明實施例提供的計算節(jié)點的實施例可以參閱圖1、圖2和圖3部分的方法實施例進行理解,本處不做過多贅述。
[0132]參閱圖7,本發(fā)明實施例提供的應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點的一實施例中,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述協(xié)調(diào)節(jié)點50包括:
[0133]接收單元501,用于接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送的;
[0134]查找單元502,用于根據(jù)所述接收單元501接收的所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0135]發(fā)送單元503,用于在所述查找單元502查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁,在所述查找單元502未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0136]本發(fā)明實施例中,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述協(xié)調(diào)節(jié)點50包括:接收單元501接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送的;查找單元502根據(jù)所述接收單元501接收的所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;發(fā)送單元503在所述查找單元502查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁,在所述查找單元502未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。與現(xiàn)有技術(shù)中每個計算節(jié)點都要配一塊SSD卡,單塊SSD只為單個計算節(jié)點做讀緩存,無法充分利用SSD的容量,導(dǎo)致SSD的利用率低下相比,本發(fā)明實施例提供的協(xié)調(diào)節(jié)點,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0137]可選地,在上述圖7對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供的協(xié)調(diào)節(jié)點50的另一實施例中,所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD,
[0138]所述查找單元502,具體用于從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁,當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
[0139]可選地,在上一可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的協(xié)調(diào)節(jié)點50的另一實施例中,
[0140]所述查找單元502,具體用于從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息,當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
[0141]可選地,在上一個可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的協(xié)調(diào)節(jié)點50的另一實施例中,參閱圖8,所述協(xié)調(diào)節(jié)點還包括:存放單元504和添加單元505,
[0142]所述接收單元501,還用于接收所述計算節(jié)點發(fā)送的淘汰頁;
[0143]所述存放單元504,用于將所述接收單元501接收的所述淘汰頁存放到所述SSD中;
[0144]所述添加單元505,用于并將所述存放單元504存放到所述SSD中的淘汰頁的標識信息添加到所述SSD哈希表中。
[0145]本發(fā)明實施例提供的協(xié)調(diào)節(jié)點的實施例可以參閱圖1、圖2和圖4部分的方法實施例進行理解,本處不做過多贅述。
[0146]圖9是本發(fā)明實施例計算節(jié)點40的結(jié)構(gòu)示意圖。計算節(jié)點40可包括輸入設(shè)備410、輸出設(shè)備420、處理器430和存儲器440。
[0147]本發(fā)明實施例提供的計算節(jié)點40應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,內(nèi)存可以是存儲器440的一部分。
[0148]存儲器440可以包括只讀存儲器和隨機存取存儲器,并向處理器430提供指令和數(shù)據(jù)。存儲器440的一部分還可以包括非易失性隨機存取存儲器(NVRAM)。
[0149]存儲器440存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者它們的子集,或者它們的擴展集:
[0150]操作指令:包括各種操作指令,用于實現(xiàn)各種操作。
[0151]操作系統(tǒng):包括各種系統(tǒng)程序,用于實現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。
[0152]在本發(fā)明實施例中,處理器430通過調(diào)用存儲器440存儲的操作指令(該操作指令可存儲在操作系統(tǒng)中),執(zhí)行如下操作:
[0153]在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁;
[0154]在未查找到所述待讀取的數(shù)據(jù)頁時,通過輸出設(shè)備420向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0155]讀取所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的。
[0156]通過輸入設(shè)備410接收所述協(xié)調(diào)節(jié)點發(fā)送的未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0157]本發(fā)明實施例提供的計算節(jié)點40,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0158]處理器430控制計算節(jié)點40的操作,處理器430還可以稱為CPU (CentralProcessing Unit,中央處理單元)。存儲器440可以包括只讀存儲器和隨機存取存儲器,并向處理器430提供指令和數(shù)據(jù)。存儲器440的一部分還可以包括非易失性隨機存取存儲器(NVRAM)。具體的應(yīng)用中,計算節(jié)點40的各個組件通過總線系統(tǒng)450耦合在一起,其中總線系統(tǒng)450除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號總線等。但是為了清楚說明起見,在圖中將各種總線都標為總線系統(tǒng)450。
[0159]上述本發(fā)明實施例揭示的方法可以應(yīng)用于處理器430中,或者由處理器430實現(xiàn)。處理器430可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器430中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器430可以是通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器440,處理器430讀取存儲器440中的信息,結(jié)合其硬件完成上述方法的步驟。
[0160]可選地,所述處理器430根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁;
[0161]所述輸出設(shè)備420用于當所述淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲,當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
[0162]圖10是本發(fā)明實施例協(xié)調(diào)節(jié)點50的結(jié)構(gòu)示意圖。協(xié)調(diào)節(jié)點50可包括輸入設(shè)備510、輸出設(shè)備520、處理器530和存儲設(shè)備540。
[0163]本發(fā)明實施例提供的協(xié)調(diào)節(jié)點50應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,所述計算節(jié)點有多個,所述集群數(shù)據(jù)系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存。
[0164]存儲設(shè)備540可以包括只讀存儲器和隨機存取存儲器,并向處理器530提供指令和數(shù)據(jù)。存儲設(shè)備540的一部分還可以包括非易失性隨機存取存儲器(NVRAM)。
[0165]存儲設(shè)備540存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者它們的子集,或者它們的擴展集:
[0166]操作指令:包括各種操作指令,用于實現(xiàn)各種操作。
[0167]操作系統(tǒng):包括各種系統(tǒng)程序,用于實現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。
[0168]在本發(fā)明實施例中,處理器530通過調(diào)用存儲設(shè)備540存儲的操作指令(該操作指令可存儲在操作系統(tǒng)中),執(zhí)行如下操作:
[0169]通過輸入設(shè)備510接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送的;
[0170]所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0171]通過輸出設(shè)備520在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁;
[0172]在未查找到所述待讀取的數(shù)據(jù)頁時,通過所述輸出設(shè)備520向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
[0173]本發(fā)明實施例提供的協(xié)調(diào)節(jié)點50,在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0174]處理器530控制協(xié)調(diào)節(jié)點50的操作,處理器530還可以稱為CPU (CentralProcessing Unit,中央處理單元)。存儲設(shè)備540可以包括只讀存儲器和隨機存取存儲器,并向處理器530提供指令和數(shù)據(jù)。存儲設(shè)備540的一部分還可以包括非易失性隨機存取存儲器(NVRAM)。具體的應(yīng)用中,協(xié)調(diào)節(jié)點50的各個組件通過總線系統(tǒng)550耦合在一起,其中總線系統(tǒng)550除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號總線等。但是為了清楚說明起見,在圖中將各種總線都標為總線系統(tǒng)550。
[0175]上述本發(fā)明實施例揭示的方法可以應(yīng)用于處理器530中,或者由處理器530實現(xiàn)。處理器530可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器530中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器530可以是通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲設(shè)備540,處理器530讀取存儲設(shè)備540中的信息,結(jié)合其硬件完成上述方法的步驟。
[0176]可選地,所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD,所述處理器530具體用于從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁,當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
[0177]可選地,所述處理器530具體用于從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息,當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
[0178]可選地,所述輸入設(shè)備510接收所述計算節(jié)點發(fā)送的淘汰頁;
[0179]所述處理器530將所述淘汰頁存放到所述SSD中,并將所述淘汰頁的標識信息添加到所述SSD哈希表中。
[0180]參閱圖11,本發(fā)明實施例提供的集群數(shù)據(jù)庫系統(tǒng)的一實施例包括:多個計算節(jié)點40和協(xié)調(diào)節(jié)點50,所述協(xié)調(diào)節(jié)點50上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存;
[0181]所述計算節(jié)點40,在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁,在未查找到所述待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;
[0182]所述協(xié)調(diào)節(jié)點50,用于根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁;
[0183]所述計算節(jié)點40,用于讀取所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的。
[0184]本發(fā)明實施例提供的集群數(shù)據(jù)庫系統(tǒng),在保證數(shù)據(jù)讀取速率的同時,可以減少集群數(shù)據(jù)庫系統(tǒng)中SSD的數(shù)量,提高集群數(shù)據(jù)庫系統(tǒng)中共享緩存的利用率。
[0185]本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件(例如處理器)來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:R0M、RAM、磁盤或光盤等。
[0186]以上對本發(fā)明實施例所提供的數(shù)據(jù)讀取的方法、裝置以及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種數(shù)據(jù)讀取的方法,其特征在于,所述方法應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括: 所述計算節(jié)點在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁; 在未查找到所述待讀取的數(shù)據(jù)頁時,所述計算節(jié)點向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁; 所述計算節(jié)點讀取所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的;所述計算節(jié)點接收所述協(xié)調(diào)節(jié)點發(fā)送的未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述計算節(jié)點所述向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求之前,所述方法還包括: 所述計算節(jié)點根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁; 當所述淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲; 當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
3.一種數(shù)據(jù)讀取的方法,其特征在于,所述方法應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述方法包括: 所述協(xié)調(diào)節(jié)點接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送給所述協(xié)調(diào)節(jié)點的; 所述協(xié)調(diào)節(jié)點根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁;所述協(xié)調(diào)節(jié)點在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁; 所述協(xié)調(diào)節(jié)點在未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD,所述從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,包括: 從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁; 當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述從所述SSD中查找對應(yīng)的待讀取的數(shù)據(jù)頁,包括: 從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息; 當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述協(xié)調(diào)節(jié)點接收數(shù)據(jù)獲取請求之前,所述方法還包括: 所述協(xié)調(diào)節(jié)點接收所述計算節(jié)點發(fā)送的淘汰頁; 將所述淘汰頁存放到所述SSD中,并將所述淘汰頁的標識信息添加到所述SSD哈希表中。
7.一種應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的計算節(jié)點,其特征在于,所述集群數(shù)據(jù)庫系統(tǒng)還包括協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述計算節(jié)點包括: 查找單元,用于在所述內(nèi)存中查找待讀取的數(shù)據(jù)頁; 發(fā)送單元,用于所述查找單元在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁; 接收單元,用于接收所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁或未查找到所述待讀取的數(shù)據(jù)頁的指示消息,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的,所述指示消息為所述協(xié)調(diào)節(jié)點在所述共享緩存中未查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的; 讀取單元,用于讀取所述待讀取的數(shù)據(jù)頁; 所述查找單元,還用于根據(jù)所述接收單元接收的所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
8.根據(jù)權(quán)利要求7所述的計算節(jié)點,其特征在于,所述計算節(jié)點還包括:確定單元, 所述確定單元,用于根據(jù)淘汰算法,從內(nèi)存中確定出淘汰頁; 所述發(fā)送單元,還用于當所述確定單元確定的淘汰頁為臟頁時,將所述淘汰頁發(fā)送到所述共享磁盤進行存儲;當所述淘汰頁為干凈頁時,將所述淘汰頁發(fā)送到所述協(xié)調(diào)節(jié)點,以便所述協(xié)調(diào)節(jié)點將所述淘汰頁存儲到所述共享緩存中。
9.一種應(yīng)用于集群數(shù)據(jù)庫系統(tǒng)中的協(xié)調(diào)節(jié)點,其特征在于,所述集群數(shù)據(jù)系統(tǒng)還包括多個計算節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中的所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存,所述協(xié)調(diào)節(jié)點包括: 接收單元,用于接收數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求為計算節(jié)點在內(nèi)存中未查找到待讀取的數(shù)據(jù)頁時發(fā)送給所述協(xié)調(diào)節(jié)點的; 查找單元,用于根據(jù)所述接收單元接收的所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁; 發(fā)送單元,用于在所述查找單元查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁,在所述查找單元未查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送未查找到所述待讀取的數(shù)據(jù)頁的指示消息,以使所述發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點根據(jù)所述指示消息,從所述集群數(shù)據(jù)庫系統(tǒng)的共享磁盤中查找所述待讀取的數(shù)據(jù)頁。
10.根據(jù)權(quán)利要求9所述的協(xié)調(diào)節(jié)點,其特征在于,所述共享緩存包括設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存和固態(tài)硬盤SSD, 所述查找單元,具體用于從設(shè)置在所述協(xié)調(diào)節(jié)點上的內(nèi)存中查找是否有所述待讀取的數(shù)據(jù)頁,當在所述協(xié)調(diào)節(jié)點內(nèi)存中未查找到所述待讀取的數(shù)據(jù)頁時,從所述SSD中查找所述待讀取的數(shù)據(jù)頁。
11.根據(jù)權(quán)利要求10所述的協(xié)調(diào)節(jié)點,其特征在于, 所述查找單元,具體用于從SSD哈希表中查找是否有所述待讀取的數(shù)據(jù)頁的標識信息,所述SSD哈希表記錄所述SSD中存儲的數(shù)據(jù)頁的標識信息,當所述SSD哈希表中有所述待讀取的數(shù)據(jù)頁的標識信息時,則從所述SSD中獲取對應(yīng)的待讀取的數(shù)據(jù)頁。
12.根據(jù)權(quán)利要求11所述的協(xié)調(diào)節(jié)點,其特征在于,所述協(xié)調(diào)節(jié)點還包括:存放單元和添加單元, 所述接收單元,還用于接收所述計算節(jié)點發(fā)送的淘汰頁; 所述存放單元,用于將所述接收單元接收的所述淘汰頁存放到所述SSD中; 所述添加單元,用于并將所述存放單元存放到所述SSD中的淘汰頁的標識信息添加到所述SSD哈希表中。
13.一種集群數(shù)據(jù)庫系統(tǒng),其特征在于,包括:多個計算節(jié)點和協(xié)調(diào)節(jié)點,所述協(xié)調(diào)節(jié)點上設(shè)置有供所述集群數(shù)據(jù)庫系統(tǒng)中所述多個計算節(jié)點所共享的共享緩存,每個計算節(jié)點中都分別設(shè)置有內(nèi)存; 所述計算節(jié)點,用于在未查找到所述待讀取的數(shù)據(jù)頁時,向所述協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求用于指示所述協(xié)調(diào)節(jié)點從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁; 所述協(xié)調(diào)節(jié)點,用于根據(jù)所述數(shù)據(jù)獲取請求,從所述共享緩存中查找所述待讀取的數(shù)據(jù)頁,在查找到所述待讀取的數(shù)據(jù)頁時,向發(fā)送所述數(shù)據(jù)獲取請求的計算節(jié)點發(fā)送所述待讀取的數(shù)據(jù)頁; 所述計算節(jié)點,用于讀取所述協(xié)調(diào)節(jié)點發(fā)送的所述待讀取的數(shù)據(jù)頁,所述待讀取的數(shù)據(jù)頁為所述協(xié)調(diào)節(jié)點在所述共享緩存中查找到所述待讀取的數(shù)據(jù)頁時發(fā)送給所述計算節(jié)點的。
【文檔編號】G06F17/30GK104462225SQ201410635413
【公開日】2015年3月25日 申請日期:2014年11月12日 優(yōu)先權(quán)日:2014年11月12日
【發(fā)明者】肖宇雷, 陳志遠, 葉濤 申請人:華為技術(shù)有限公司