本公開涉及一種數(shù)據(jù)處理方法及服務(wù)器集群。
背景技術(shù):
在大規(guī)模計算集群中,經(jīng)常會遇到不同計算框架加載同一張數(shù)據(jù)表的業(yè)務(wù)場景,比如集群內(nèi)同時存在impala、hive、sparksql等多種計算框架,不同的計算任務(wù)可能都涉及到某一張表數(shù)據(jù)的加載,每個計算引擎都是各自加載表,這樣處理實際上重復(fù)加載了相同的數(shù)據(jù),導(dǎo)致大量磁盤讀寫操作,總體性能效果差。
技術(shù)實現(xiàn)要素:
本公開的一個方面提供了一種數(shù)據(jù)處理方法,應(yīng)用于包括至少兩種計算框架的集群計算過程,所述方法包括,當(dāng)?shù)谝挥嬎憧蚣軋?zhí)行針對第一數(shù)據(jù)表的操作時,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,若不存在,則執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
可選地,所述方法包括若分布式內(nèi)存系統(tǒng)中存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,則所述第一計算框架從所述分布式內(nèi)存系統(tǒng)中加載所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
可選地,將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中,包括判斷所述第一數(shù)據(jù)表是否屬于可能被不同計算框架共用的數(shù)據(jù)表,所述可能被不同計算框架共用的數(shù)據(jù)表是基于數(shù)據(jù)表查詢計劃的統(tǒng)計數(shù)據(jù)確定的,若屬于,則將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
可選地,所述執(zhí)行針對第一數(shù)據(jù)表的操作包括運行針對第一數(shù)據(jù)表的查詢執(zhí)行計劃。
可選地,所述判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息包括,所述第一計算框架獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,其中,所述至少兩個計算框架中的每個計算框架的存儲類是經(jīng)過擴(kuò)展的,以及判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
本公開的另一方面提供了一種服務(wù)器集群,包括至少一個處理器,以及至少一個存儲器。存儲器上存儲有計算機(jī)可讀程序,當(dāng)所述程序被所述至少一個處理器執(zhí)行時,使得所述至少一個處理器在第一計算框架執(zhí)行針對第一數(shù)據(jù)表的操作的情況下,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,以及在分布式內(nèi)存系統(tǒng)中不存在所述第一數(shù)據(jù)表的情況下,執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表同步到所述分布式內(nèi)存系統(tǒng)中。
可選地,所述至少一個處理器還執(zhí)行,在分布式內(nèi)存系統(tǒng)中存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息的情況下,使所述第一計算框架從所述分布式內(nèi)存系統(tǒng)中加載所述第一數(shù)據(jù)表中的數(shù)據(jù)對應(yīng)的數(shù)據(jù)信息。
可選地,所述至少一個處理器執(zhí)行將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中,包括,判斷所述第一數(shù)據(jù)表是否屬于可能被不同計算框架共用的數(shù)據(jù)表,所述可能被不同計算框架共用的數(shù)據(jù)表是基于數(shù)據(jù)表查詢計劃的統(tǒng)計數(shù)據(jù)確定的,以及若屬于可能被不同計算框架共用的數(shù)據(jù)表,則將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
可選地,所述執(zhí)行針對第一數(shù)據(jù)表的操作包括運行針對第一數(shù)據(jù)表的查詢執(zhí)行計劃。
可選地,所述至少一個處理器判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息包括,所述第一計算框架獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,其中,所述至少兩個計算框架中的每個計算框架的存儲類是經(jīng)過擴(kuò)展的,以及判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
本公開的另一個方面提供了一種數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括判斷模塊和同步模塊。判斷模塊用于當(dāng)?shù)谝挥嬎憧蚣軋?zhí)行針對第一數(shù)據(jù)表的操作時,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。同步模塊用于在不存在的情況下,執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
可選地,所述系統(tǒng)還包括加載模塊,用于在分布式內(nèi)存系統(tǒng)中存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息的情況下,使所述第一計算框架從所述分布式內(nèi)存系統(tǒng)中加載所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
可選地,所述同步模塊包括第一判斷子模塊和同步子模塊。第一判斷子模塊,用于判斷所述第一數(shù)據(jù)表是否屬于所述可能被不同計算框架共用的數(shù)據(jù)表,所述可能被不同計算框架共用的數(shù)據(jù)表是基于數(shù)據(jù)表查詢計劃的統(tǒng)計數(shù)據(jù)確定的。同步子模塊,用于在屬于所述可能被不同計算框架共用的數(shù)據(jù)表的情況下,將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
可選地,所述執(zhí)行針對第一數(shù)據(jù)表的操作包括運行針對第一數(shù)據(jù)表的查詢執(zhí)行計劃。
可選地,所述判斷模塊包括獲取子模塊和第二判斷子模塊。獲取子模塊,用于使所述第一計算框架獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,其中,所述至少兩個計算框架中的每個計算框架的存儲類是經(jīng)過擴(kuò)展的。第二判斷子模塊,用于判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
本公開的另一方面提供了一種非易失性存儲介質(zhì),存儲有計算機(jī)可執(zhí)行指令,所述指令在被執(zhí)行時用于實現(xiàn)如上所述的方法。
附圖說明
為了更完整地理解本公開及其優(yōu)勢,現(xiàn)在將參考結(jié)合附圖的以下描述,其中:
圖1示意性示出了根據(jù)本公開實施例的服務(wù)器集群的示意圖;
圖2示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理方法的流程圖;
圖3示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理方法的流程圖;
圖4示意性示出了根據(jù)本公開實施例將第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中的流程圖;
圖5示意性示出了根據(jù)本公開實施例的判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息的流程圖;
圖6示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理系統(tǒng)的示意圖;
圖7示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理系統(tǒng)的示意圖;
圖8示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理系統(tǒng)的示意圖;
圖9示意性示出了根據(jù)本公開實施例的判斷模塊的示意圖;以及
圖10示意性示出了根據(jù)本公開實施例的服務(wù)器集群中的一個計算節(jié)點的框圖。
具體實施方式
以下,將參照附圖來描述本公開的實施例。但是應(yīng)該理解,這些描述只是示例性的,而并非要限制本公開的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本公開的概念。
在此使用的術(shù)語僅僅是為了描述具體實施例,而并非意在限制本公開。這里使用的詞語“一”、“一個(種)”和“該”等也應(yīng)包括“多個”、“多種”的意思,除非上下文另外明確指出。此外,在此使用的術(shù)語“包括”、“包含”等表明了所述特征、步驟、操作和/或部件的存在,但是并不排除存在或添加一個或多個其他特征、步驟、操作或部件。
在此使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有本領(lǐng)域技術(shù)人員通常所理解的含義,除非另外定義。應(yīng)注意,這里使用的術(shù)語應(yīng)解釋為具有與本說明書的上下文相一致的含義,而不應(yīng)以理想化或過于刻板的方式來解釋。
附圖中示出了一些方框圖和/或流程圖。應(yīng)理解,方框圖和/或流程圖中的一些方框或其組合可以由計算機(jī)程序指令來實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,從而這些指令在由該處理器執(zhí)行時可以創(chuàng)建用于實現(xiàn)這些方框圖和/或流程圖中所說明的功能/操作的裝置。
因此,本公開的技術(shù)可以硬件和/或軟件(包括固件、微代碼等)的形式來實現(xiàn)。另外,本公開的技術(shù)可以采取存儲有指令的計算機(jī)可讀介質(zhì)上的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)程序產(chǎn)品可供指令執(zhí)行系統(tǒng)使用或者結(jié)合指令執(zhí)行系統(tǒng)使用。在本公開的上下文中,計算機(jī)可讀介質(zhì)可以是能夠包含、存儲、傳送、傳播或傳輸指令的任意介質(zhì)。例如,計算機(jī)可讀介質(zhì)可以包括但不限于電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置、器件或傳播介質(zhì)。計算機(jī)可讀介質(zhì)的具體示例包括:磁存儲裝置,如磁帶或硬盤(hdd);光存儲裝置,如光盤(cd-rom);存儲器,如隨機(jī)存取存儲器(ram)或閃存;和/或有線/無線通信鏈路。
由于不同數(shù)據(jù)處理場景的需要,在服務(wù)器集群100中,可能同時存在多個計算框架。例如,對于返回結(jié)果集較小的交互式查詢場景,優(yōu)選采用impala計算框架,而對于處理數(shù)據(jù)吞吐較大的抽取-轉(zhuǎn)換-加載過程(etl,extract-transform-load),則優(yōu)選采用hive計算框架。不同的計算框架的所處理的數(shù)據(jù)都存放在分布式文件系統(tǒng)中,因此,不同的計算框架在對數(shù)據(jù)操作時,需要通過同樣的元數(shù)據(jù)定位數(shù)據(jù)表,并將其加載到內(nèi)存中,再進(jìn)行分布式并行運算。
本公開的實施例提供了一種數(shù)據(jù)處理方法及能夠應(yīng)用該方法的服務(wù)器集群。該方法在第一計算框架執(zhí)行針對第一數(shù)據(jù)表的操作時,可將第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到分布式內(nèi)存系統(tǒng)中,以便于其他計算框架在對該數(shù)據(jù)表操作時,可以直接從分布式內(nèi)存系統(tǒng)中加載,減少了磁盤讀寫操作,提升了跨計算框架同表查詢的效率。
分布式內(nèi)存系統(tǒng),是分布在多臺機(jī)器上的內(nèi)存形成的系統(tǒng),其上存儲的數(shù)據(jù)定期和磁盤文件進(jìn)行同步。將數(shù)據(jù)同步到分布式內(nèi)存系統(tǒng),是指將數(shù)據(jù)從磁盤文件加載到多臺機(jī)器的內(nèi)存中,分片存儲。
圖1示意性示出了根據(jù)本公開實施例的服務(wù)器集群的示意圖。
如圖1所示,服務(wù)器集群100可以包括至少一個計算節(jié)點110以及網(wǎng)絡(luò)120。網(wǎng)絡(luò)120用以在計算節(jié)點110之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)120可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。計算節(jié)點110可以是提供各種服務(wù)的服務(wù)器,例如存放數(shù)據(jù)表、提供查詢功能、修改功能等的服務(wù)器,但不限于此。服務(wù)器集群100可以通過本公開實施例的方法加速數(shù)據(jù)表的加載過程。
應(yīng)該理解,圖1中的架構(gòu)僅僅是示例,具體架構(gòu)中包含的組件可以根據(jù)具體情況調(diào)整,根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的網(wǎng)絡(luò)和計算節(jié)點。
下面參照圖2對本公開實施例的數(shù)據(jù)處理方法進(jìn)行說明。
圖2示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理方法的流程圖。
如圖2所示,該方法包括操作s210和操作s220。
在操作s210,當(dāng)?shù)谝挥嬎憧蚣軋?zhí)行針對第一數(shù)據(jù)表的操作時,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
在操作s220,若不存在,則執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
該方法在第一計算框架執(zhí)行針對第一數(shù)據(jù)表的操作時,可將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中,以便于其他計算框架在對該數(shù)據(jù)表操作時,可以直接從分布式內(nèi)存系統(tǒng)中加載,減少了磁盤讀寫操作。
根據(jù)本公開實施例,在操作s210中,第一計算框架執(zhí)行第一數(shù)據(jù)表的操作,可以是第一計算框架運行針對第一數(shù)據(jù)表的查詢執(zhí)行計劃。查詢執(zhí)行計劃在具體的計算之前運行,用于對查詢過程進(jìn)行預(yù)測和優(yōu)化。因此,在運行針對第一數(shù)據(jù)表的查詢執(zhí)行計劃時判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,并在不存在的情況下,將第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中,使得后續(xù)對該表數(shù)據(jù)的操作均可以從分布式內(nèi)存加載。
根據(jù)本公開實施例,第一計算框架執(zhí)行第一數(shù)據(jù)表的操作也可以是對第一數(shù)據(jù)表的其他操作,例如增加、刪除或修改數(shù)據(jù)表中的信息等。
在操作s220,根據(jù)本公開實施例,在分布式內(nèi)存系統(tǒng)中不存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息的情況下,不僅需要執(zhí)行第一計算框架執(zhí)行針對第一數(shù)據(jù)表的操作,例如運行針對第一數(shù)據(jù)表的查詢執(zhí)行計劃,或者增加、刪除或修改數(shù)據(jù)表中的信息等,還將第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中,以便于其他計算框架在對該數(shù)據(jù)表操作時,可以直接從分布式內(nèi)存系統(tǒng)中加載。
圖3示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理方法的流程圖。
如圖3所示,該方法包括操作s210、操作s220和操作s230。
在操作s210,當(dāng)?shù)谝挥嬎憧蚣軋?zhí)行針對第一數(shù)據(jù)表的操作時,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,請參考圖2所描述的操作,此處不再贅述。
在操作s220,若不存在,則執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
在操作s230,若分布式內(nèi)存系統(tǒng)中存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,則所述第一計算框架從所述分布式內(nèi)存系統(tǒng)中加載所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。第一計算框架對已經(jīng)存儲在分布式內(nèi)存系統(tǒng)中的數(shù)據(jù)表,不再從磁盤加載,而是直接通過分布式內(nèi)存系統(tǒng)加載,減少了磁盤讀寫操作。
圖4示意性示出了根據(jù)本公開實施例在操作s220中將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中的流程圖。
如圖4所示,將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中包括操作s221和操作s222。
在操作s221,判斷所述第一數(shù)據(jù)表是否屬于可能被不同計算框架共用的數(shù)據(jù)表。根據(jù)本公開的實施例,所述可能被不同計算框架共用的數(shù)據(jù)表是基于數(shù)據(jù)表查詢計劃的統(tǒng)計數(shù)據(jù)確定的。根據(jù)本公開實施例,在多計算框架并行計算前,服務(wù)器集群獲得數(shù)據(jù)表查詢計劃,以便對查詢過程進(jìn)行整體預(yù)測和優(yōu)化。在該計劃中,可以獲得將要加載的數(shù)據(jù)表,以及其被共用的情況,進(jìn)而確定出可能被不同計算框架共同的數(shù)據(jù)表。
在操作s222,若所述第一數(shù)據(jù)表屬于可能被不同計算框架共用的數(shù)據(jù)表,則將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
該方法通過識別可能被共用的數(shù)據(jù)表,避免了僅被操作一次的數(shù)據(jù)表加載到分布式內(nèi)存中,節(jié)約了系統(tǒng)資源。
圖5示意性示出了根據(jù)本公開實施例在操作s210中判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息的流程圖。
如圖5所示,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息包括操作s211和操作s212。
在操作s211,所述第一計算框架獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息,其中,所述至少兩個計算框架中的每個計算框架的存儲類是經(jīng)過擴(kuò)展的。
在現(xiàn)有的計算框架中,在不修改框架源代碼的前提下,每個計算框架需要各自加載數(shù)據(jù)表。根據(jù)本公開實施例,可以對每個計算框架的存儲類進(jìn)行擴(kuò)展,例如memorystore類和tachyonstore類,同時修改操作算子的執(zhí)行邏輯,使其支持對特定元數(shù)據(jù)的重定向查詢,例如,對已經(jīng)存儲在分布式內(nèi)存系統(tǒng)中的數(shù)據(jù)表,不再從磁盤加載,而是直接通過分布式內(nèi)存系統(tǒng)加載,從而實現(xiàn)一個計算框架能夠獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
在操作s212,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。在實現(xiàn)了獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息后,第一計算框架可以判斷所需要的第一數(shù)據(jù)表是否已經(jīng)存在于分布式內(nèi)存系統(tǒng)中。
該方法通過擴(kuò)展計算框架的存儲類,克服了計算框架難以獲得其他計算框架同步過的數(shù)據(jù)表的問題,達(dá)到了不同計算框架能夠共用加載后的數(shù)據(jù)表的技術(shù)效果。
圖6示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理系統(tǒng)600的示意圖。
如圖6所示,數(shù)據(jù)處理系統(tǒng)600包括判斷模塊610和同步模塊620。
判斷模塊610,例如執(zhí)行上文參考圖2所述的操作s210,用于當(dāng)?shù)谝挥嬎憧蚣軋?zhí)行針對第一數(shù)據(jù)表的操作時,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
同步模塊620,例如執(zhí)行上文參考圖2所述的操作s220,用于在不存在的情況下,執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
圖7示意性示出了根據(jù)本公開實施例的數(shù)據(jù)處理系統(tǒng)700的示意圖。
如圖7所示,數(shù)據(jù)處理系統(tǒng)700包括判斷模塊610、同步模塊620和加載模塊730。
判斷模塊610,例如執(zhí)行上文參考圖3所述的操作s210,用于當(dāng)?shù)谝挥嬎憧蚣軋?zhí)行針對第一數(shù)據(jù)表的操作時,判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
同步模塊620,例如執(zhí)行上文參考圖3所述的操作s220,用于在不存在的情況下,執(zhí)行所述針對第一數(shù)據(jù)表的操作,并將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
加載模塊730,例如執(zhí)行上文參考圖3所述的操作s230,用于在分布式內(nèi)存系統(tǒng)中存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息的情況下,使所述第一計算框架從所述分布式內(nèi)存系統(tǒng)中加載所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
圖8示意性示出了根據(jù)本公開實施例的同步模塊620的示意圖。
如圖8所示,同步模塊620包括第一判斷子模塊621和同步子模塊622。
第一判斷子模塊621,例如執(zhí)行上文參考圖4所述的操作s221,用于判斷所述第一數(shù)據(jù)表是否屬于所述可能被不同計算框架共用的數(shù)據(jù)表,所述可能被不同計算框架共用的數(shù)據(jù)表是基于數(shù)據(jù)表查詢計劃的統(tǒng)計數(shù)據(jù)確定的。
同步子模塊622,例如執(zhí)行上文參考圖4所述的操作s222,用于在屬于所述可能被不同計算框架共用的數(shù)據(jù)表的情況下,將所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到所述分布式內(nèi)存系統(tǒng)中。
圖9示意性示出了根據(jù)本公開實施例的判斷模塊610的示意圖。
如圖9所示,判斷模塊610包括獲取子模塊611和第二判斷子模塊612。
獲取子模塊611,例如執(zhí)行上文參考圖5所述的操作s211,用于使所述第一計算框架獲取其他計算框架同步到所述分布式內(nèi)存系統(tǒng)的數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
第二判斷子模塊612,例如執(zhí)行上文參考圖5所述的操作s212,用于判斷分布式內(nèi)存系統(tǒng)中是否存在所述第一數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息。
可以理解的是,判斷模塊610、獲取子模塊611、第二判斷子模塊612、同步模塊620、第一判斷子模塊621、同步子模塊622、以及加載模塊730可以合并在一個模塊中實現(xiàn),或者其中的任意一個模塊可以被拆分成多個模塊?;蛘?,這些模塊中的一個或多個模塊的至少部分功能可以與其他模塊的至少部分功能相結(jié)合,并在一個模塊中實現(xiàn)。根據(jù)本發(fā)明的實施例,判斷模塊610、獲取子模塊611、第二判斷子模塊612、同步模塊620、第一判斷子模塊621、同步子模塊622、以及加載模塊730中的至少一個可以至少被部分地實現(xiàn)為硬件電路,例如現(xiàn)場可編程門陣列(fpga)、可編程邏輯陣列(pla)、片上系統(tǒng)、基板上的系統(tǒng)、封裝上的系統(tǒng)、專用集成電路(asic),或可以以對電路進(jìn)行集成或封裝的任何其他的合理方式等硬件或固件來實現(xiàn),或以軟件、硬件以及固件三種實現(xiàn)方式的適當(dāng)組合來實現(xiàn)?;蛘?,判斷模塊610、獲取子模塊611、第二判斷子模塊612、同步模塊620、第一判斷子模塊621、同步子模塊622、以及加載模塊730中的至少一個可以至少被部分地實現(xiàn)為計算機(jī)程序模塊,當(dāng)該程序被計算機(jī)運行時,可以執(zhí)行相應(yīng)模塊的功能。
圖10示意性示出了根據(jù)本公開實施例的服務(wù)器集群中的一個計算節(jié)點的框圖。
如圖10所示,服務(wù)器集群包括至少一個計算節(jié)點1000。根據(jù)本公開實施例,計算節(jié)點1000包括一個處理器1010,以及一個存儲器1020。在本公開的另一些實施例中,計算節(jié)點1000可以包括任意數(shù)量的處理器1010或存儲器1020。該計算節(jié)點1000例如可以實現(xiàn)上文參考圖1描述的計算節(jié)點110,并組成服務(wù)器集群100。服務(wù)器集群100可以執(zhí)行上面參考圖2~圖5描述的方法,以實現(xiàn)在第一計算框架執(zhí)行針對第一數(shù)據(jù)表的操作時,將數(shù)據(jù)表對應(yīng)的數(shù)據(jù)信息同步到分布式內(nèi)存系統(tǒng)中,以便于其他計算框架在對該數(shù)據(jù)表操作時,可以直接從分布式內(nèi)存系統(tǒng)中加載,減少了磁盤讀寫操作。
具體地,處理器1010例如可以包括通用微處理器、指令集處理器和/或相關(guān)芯片組和/或?qū)S梦⑻幚砥?例如,專用集成電路(asic)),等等。處理器1010還可以包括用于緩存用途的板載存儲器。處理器1010可以是用于執(zhí)行參考圖2~圖5描述的根據(jù)本公開實施例的方法流程的不同動作的單一處理單元或者是多個處理單元。
存儲器1020,例如可以是能夠包含存儲、傳送、傳播或傳輸指令的任意介質(zhì)。例如,可讀存儲介質(zhì)可以包括但不限于電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置、器件或傳播介質(zhì)??勺x存儲介質(zhì)的具體示例包括:磁存儲裝置,如磁帶或硬盤(hdd);光存儲裝置,如光盤(cd-rom);半導(dǎo)體存儲器,如隨機(jī)存取存儲器(ram)或閃存;和/或有線/無線通信鏈路。
存儲器1020,可以包括計算機(jī)程序1021,該計算機(jī)程序1021可以包括代碼/計算機(jī)可執(zhí)行指令,其在由處理器1010執(zhí)行時使得處理器1010執(zhí)行例如上面結(jié)合圖2~圖5所描述的方法流程及其任何變形。
計算機(jī)程序1021可被配置為具有例如包括計算機(jī)程序模塊的計算機(jī)程序代碼。例如,在示例實施例中,計算機(jī)程序1021中的代碼可以包括一個或多個程序模塊,例如包括1021a、模塊1021b、……。應(yīng)當(dāng)注意,模塊的劃分方式和個數(shù)并不是固定的,本領(lǐng)域技術(shù)人員可以根據(jù)實際情況使用合適的程序模塊或程序模塊組合,當(dāng)這些程序模塊組合被處理器1010執(zhí)行時,使得處理器1010可以執(zhí)行例如上面結(jié)合圖2~圖5所描述的方法流程及其任何變形。
根據(jù)本發(fā)明的實施例,判斷模塊610、獲取子模塊611、第二判斷子模塊612、同步模塊620、第一判斷子模塊621、同步子模塊622、以及加載模塊730中的至少一個可以實現(xiàn)為參考圖10描述的計算機(jī)程序模塊,其在被處理器1010執(zhí)行時,可以實現(xiàn)上面描述的相應(yīng)操作。
本領(lǐng)域技術(shù)人員可以理解,本公開的各個實施例和/或權(quán)利要求中記載的特征可以進(jìn)行多種組合或/或結(jié)合,即使這樣的組合或結(jié)合沒有明確記載于本公開中。特別地,在不脫離本公開精神和教導(dǎo)的情況下,本公開的各個實施例和/或權(quán)利要求中記載的特征可以進(jìn)行多種組合和/或結(jié)合。所有這些組合和/或結(jié)合均落入本公開的范圍。
盡管已經(jīng)參照本公開的特定示例性實施例示出并描述了本公開,但是本領(lǐng)域技術(shù)人員應(yīng)該理解,在不背離所附權(quán)利要求及其等同物限定的本公開的精神和范圍的情況下,可以對本公開進(jìn)行形式和細(xì)節(jié)上的多種改變。因此,本公開的范圍不應(yīng)該限于上述實施例,而是應(yīng)該不僅由所附權(quán)利要求來進(jìn)行確定,還由所附權(quán)利要求的等同物來進(jìn)行限定。