本發(fā)明屬于分布式數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,尤其是涉及一種分布式數(shù)據(jù)庫(kù)及其數(shù)據(jù)運(yùn)算的管理方法。
背景技術(shù):
分布式數(shù)據(jù)庫(kù)是指利用高速計(jì)算機(jī)網(wǎng)絡(luò)將物理上分散的多個(gè)數(shù)據(jù)存儲(chǔ)單元連接起來(lái)組成一個(gè)邏輯上統(tǒng)一的數(shù)據(jù)庫(kù)。分布式數(shù)據(jù)庫(kù)的基本思想是將原來(lái)集中式數(shù)據(jù)庫(kù)中的數(shù)據(jù)分散存儲(chǔ)到多個(gè)通過(guò)網(wǎng)絡(luò)連接的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上,以獲取更大的存儲(chǔ)容量和更高的并發(fā)訪問(wèn)量。近年來(lái),隨著數(shù)據(jù)量的高速增長(zhǎng),分布式數(shù)據(jù)庫(kù)技術(shù)也得到了快速的發(fā)展,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)開(kāi)始從集中式模型向分布式架構(gòu)發(fā)展,基于關(guān)系型的分布式數(shù)據(jù)庫(kù)在保留了傳統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)模型和基本特征下,從集中式存儲(chǔ)走向分布式存儲(chǔ),從集中式計(jì)算走向分布式計(jì)算。
在分布式數(shù)據(jù)庫(kù)系統(tǒng)中一般都是采用多臺(tái)機(jī)器存儲(chǔ)數(shù)據(jù),即將用戶數(shù)據(jù)根據(jù)hash或者隨機(jī)分布算法把數(shù)據(jù)分布到數(shù)據(jù)庫(kù)的各個(gè)工作機(jī)器中,這樣來(lái)減少單臺(tái)數(shù)據(jù)庫(kù)工作機(jī)器所存儲(chǔ)的數(shù)據(jù)量,減少每一臺(tái)機(jī)器的存儲(chǔ)與計(jì)算壓力。該分布式數(shù)據(jù)庫(kù)系統(tǒng)首先把數(shù)據(jù)按照hash或者隨機(jī)分布的方式把數(shù)據(jù)分發(fā)到集群運(yùn)算節(jié)點(diǎn)中,當(dāng)SQL中運(yùn)算都涉及到hash分布列時(shí),因?yàn)楣?jié)點(diǎn)數(shù)據(jù)具有本地local性,因此可把SQL下發(fā)給各個(gè)運(yùn)算節(jié)點(diǎn),運(yùn)算會(huì)在各個(gè)節(jié)點(diǎn)并行執(zhí)行,當(dāng)SQL中的運(yùn)算是非hash分布列,則運(yùn)算就不具有本地local性,該SQL就不可以直接在各個(gè)節(jié)點(diǎn)并行執(zhí)行,必須在集群的所有運(yùn)算節(jié)點(diǎn)上對(duì)數(shù)據(jù)重新進(jìn)行動(dòng)態(tài)重分布后分布到集群的所有運(yùn)算節(jié)點(diǎn)上或者在集群的所有運(yùn)算節(jié)點(diǎn)上把執(zhí)行結(jié)果匯總到單個(gè)節(jié)點(diǎn)后,數(shù)據(jù)才具有本地local性,以上兩種運(yùn)算方式存在如下缺陷:方式1:在集群的所有運(yùn)算節(jié)點(diǎn)上對(duì)數(shù)據(jù)重新進(jìn)行動(dòng)態(tài)重分布后分布到集群的所有運(yùn)算節(jié)點(diǎn)上的運(yùn)算對(duì)所有的節(jié)點(diǎn)的資源都占用,而且涉及到點(diǎn)到點(diǎn)的網(wǎng)狀通訊,當(dāng)節(jié)點(diǎn)數(shù)較多時(shí)(例如查過(guò)100),則每個(gè)節(jié)點(diǎn)都會(huì)產(chǎn)生大量的連接和線程進(jìn)行數(shù)據(jù)的發(fā)送和接收,因此資源消耗將很大;方式2:在集群的所有運(yùn)算節(jié)點(diǎn)上把執(zhí)行結(jié)果匯總到單個(gè)節(jié)點(diǎn)的運(yùn)算對(duì)匯總節(jié)點(diǎn)的資源占用將較高,但集群中的所有運(yùn)算節(jié)點(diǎn)的硬件配置基本相同,而且運(yùn)行時(shí)資源占用也基本相同,如果匯總節(jié)點(diǎn)相對(duì)其他運(yùn)算節(jié)點(diǎn)有更多地資源占用,則在硬件配置基本相同的情況下,該匯總節(jié)點(diǎn)將成為整個(gè)集群的瓶頸節(jié)點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種分布式數(shù)據(jù)庫(kù)及其數(shù)據(jù)運(yùn)算的管理方法,以解決分布式數(shù)據(jù)庫(kù)運(yùn)算節(jié)點(diǎn)資源消耗不均衡的技術(shù)問(wèn)題。
一方面,本發(fā)明實(shí)施例提供了一種分布式數(shù)據(jù)庫(kù)系統(tǒng),包括:
管理集群,用于接收用戶的指令,并解析優(yōu)化所述指令,生成執(zhí)行計(jì)劃和調(diào)度;
基礎(chǔ)運(yùn)算層集群,用于接收管理集群接收?qǐng)?zhí)行計(jì)劃,基于分布在節(jié)點(diǎn)上的業(yè)務(wù)表進(jìn)行運(yùn)算;
匯總結(jié)果運(yùn)算層集群,用于接收來(lái)自基礎(chǔ)運(yùn)算層集群分發(fā)的數(shù)據(jù)進(jìn)行運(yùn)算。
另一方面,本發(fā)明實(shí)施例提供了一種分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,包括:
在所述用戶的指令中包括哈希分布列時(shí),管理集群直接將接收到的用戶的指令發(fā)送至基礎(chǔ)運(yùn)算層集群,并接收基礎(chǔ)運(yùn)算層集群返回的執(zhí)行結(jié)果。
進(jìn)一步的,一種分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,包括:
在所述用戶的指令中不包括哈希分布列時(shí),管理集群將接收到的用戶的指令發(fā)送至基礎(chǔ)運(yùn)算層集群,基礎(chǔ)運(yùn)算層集群完成計(jì)算后,生成中間結(jié)果數(shù)據(jù),并將中間結(jié)果數(shù)據(jù)分發(fā)至匯總結(jié)果運(yùn)算層集群,由匯總結(jié)果運(yùn)算層群上傳至管理集群。
進(jìn)一步的,一種分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,包括:
在所述用戶的指令中不包括哈希分布列時(shí),需要產(chǎn)生中間結(jié)果,則把產(chǎn)生的數(shù)據(jù)分發(fā)給中間結(jié)果或匯總結(jié)果運(yùn)算層集群進(jìn)行后續(xù)的操作,基于以上中間表或者匯總表的后續(xù)運(yùn)算將在該集群上運(yùn)行,運(yùn)行的結(jié)果如果需要繼續(xù)和基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上的表進(jìn)行交互時(shí),運(yùn)行的結(jié)果將會(huì)分發(fā)到基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上繼續(xù)后續(xù)的操作,如果基礎(chǔ)運(yùn)算層集群上的后續(xù)操作又需要產(chǎn)生中間表,則把產(chǎn)生的數(shù)據(jù)分發(fā)給匯總結(jié)果運(yùn)算層集群進(jìn)行。
本發(fā)明實(shí)施例提供的分布式數(shù)據(jù)庫(kù)及其數(shù)據(jù)運(yùn)算的管理方法,通過(guò)增加用于接收來(lái)自基礎(chǔ)運(yùn)算層集群分發(fā)的數(shù)據(jù)進(jìn)行運(yùn)算的匯總結(jié)果運(yùn)算層集群。在數(shù)據(jù)不具有本地性時(shí),可以實(shí)現(xiàn)匯總和交互數(shù)據(jù),減少節(jié)點(diǎn)之間網(wǎng)絡(luò)資源的使用,并可使得分布式數(shù)據(jù)庫(kù)運(yùn)算節(jié)點(diǎn)資源更加均衡。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一提供的分布式數(shù)據(jù)庫(kù)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例二提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法的流程示意圖;
圖3是本發(fā)明實(shí)施例三提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法的流程示意圖;
圖4是本發(fā)明實(shí)施例四提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法的流程示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是本發(fā)明實(shí)施例一提供的分布式數(shù)據(jù)庫(kù)的結(jié)構(gòu)示意圖,參見(jiàn)圖1,所述分布式數(shù)據(jù)庫(kù)系統(tǒng),包括:管理集群,用于接收用戶的指令,并解析優(yōu)化所述指令,生成執(zhí)行計(jì)劃和調(diào)度;基礎(chǔ)運(yùn)算層集群,用于接收管理集群接收?qǐng)?zhí)行計(jì)劃,基于分布在節(jié)點(diǎn)上的業(yè)務(wù)表進(jìn)行運(yùn)算;匯總結(jié)果運(yùn)算層集群,用于接收來(lái)自基礎(chǔ)運(yùn)算層集群分發(fā)的數(shù)據(jù)進(jìn)行運(yùn)算。
在Shared-nothing架構(gòu)中,整個(gè)系統(tǒng)包括管理集群和計(jì)算集群。在本實(shí)施例中,計(jì)算集群被分為基礎(chǔ)運(yùn)算層集群和匯總結(jié)果運(yùn)算層集群,可以進(jìn)行不同功能的運(yùn)算,以使得原來(lái)由單一節(jié)點(diǎn)完成的匯總等計(jì)算操作分配給多個(gè)節(jié)點(diǎn)組成的匯總結(jié)果運(yùn)算層集群來(lái)實(shí)現(xiàn),可以減少節(jié)點(diǎn)之間網(wǎng)絡(luò)資源的使用,并可使得分布式數(shù)據(jù)庫(kù)運(yùn)算節(jié)點(diǎn)資源更加均衡。
實(shí)施例二
圖2是本發(fā)明實(shí)施例二提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法的流程示意圖,本實(shí)施例可適用于在分布式數(shù)據(jù)庫(kù)系統(tǒng)中計(jì)算集群被分為基礎(chǔ)運(yùn)算層集群和匯總結(jié)果運(yùn)算層集群時(shí),對(duì)分布式數(shù)據(jù)庫(kù)數(shù)據(jù)運(yùn)算進(jìn)行管理的情況,該方法可以由分分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理裝置來(lái)執(zhí)行,該裝置可由軟件/硬件方式實(shí)現(xiàn),并可集成于分布式數(shù)據(jù)庫(kù)系統(tǒng)中。
參見(jiàn)圖2,所述分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,包括:
S210,在所述用戶的指令中包括哈希分布列時(shí),管理集群直接將接收到的用戶的指令發(fā)送至基礎(chǔ)運(yùn)算層集群。
示例性的,所述用戶的指令為sql操作。通過(guò)統(tǒng)一的管理節(jié)點(diǎn)集群的任何一個(gè)節(jié)點(diǎn)作為入口接收用戶的指令,管理節(jié)點(diǎn)集群負(fù)責(zé)接收用戶的SQL,負(fù)責(zé)SQL解析、SQL優(yōu)化、分布式執(zhí)行計(jì)劃生成、執(zhí)行調(diào)度。集群中所有業(yè)務(wù)表按照hash分布或者隨機(jī)分布的方式把數(shù)據(jù)分布到基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)中,基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)負(fù)責(zé)從管理集群的節(jié)點(diǎn)接收SQL,基于分布在節(jié)點(diǎn)上的業(yè)務(wù)表進(jìn)行運(yùn)算。
S220,接收基礎(chǔ)運(yùn)算層集群返回的執(zhí)行結(jié)果。
在sql中的操作都包含hash分布列時(shí),則數(shù)據(jù)具有本地性,從管理集群節(jié)點(diǎn)接收到的SQL可直接下發(fā)給基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)執(zhí)行,執(zhí)行結(jié)果直接返回給管理集群的入口節(jié)點(diǎn),然后返回用戶。在該場(chǎng)景下匯總結(jié)果運(yùn)算層集群不參與運(yùn)算。
本實(shí)施例提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,在數(shù)據(jù)具有本地性時(shí),通過(guò)基礎(chǔ)運(yùn)算層集群可直接運(yùn)算得到結(jié)果??梢詼p少節(jié)點(diǎn)之間網(wǎng)絡(luò)資源的使用。
實(shí)施例三
圖3是本發(fā)明實(shí)施例三提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法的流程示意圖,本實(shí)施例可適用于在分布式數(shù)據(jù)庫(kù)系統(tǒng)中計(jì)算集群被分為基礎(chǔ)運(yùn)算層集群和匯總結(jié)果運(yùn)算層集群時(shí),對(duì)分布式數(shù)據(jù)庫(kù)數(shù)據(jù)運(yùn)算進(jìn)行管理的情況,該方法可以由分分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理裝置來(lái)執(zhí)行,該裝置可由軟件/硬件方式實(shí)現(xiàn),并可集成于分布式數(shù)據(jù)庫(kù)系統(tǒng)中。
參見(jiàn)圖3,所述分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,包括:
S310,在所述用戶的指令中不包括哈希分布列時(shí),管理集群將接收到的用戶的指令發(fā)送至基礎(chǔ)運(yùn)算層集群。
示例性的,所述用戶的指令為sql操作。通過(guò)統(tǒng)一的管理節(jié)點(diǎn)集群的任何一個(gè)節(jié)點(diǎn)作為入口接收用戶的指令,管理節(jié)點(diǎn)集群負(fù)責(zé)接收用戶的SQL,負(fù)責(zé)SQL解析、SQL優(yōu)化、分布式執(zhí)行計(jì)劃生成、執(zhí)行調(diào)度。集群中所有業(yè)務(wù)表按照hash分布或者隨機(jī)分布的方式把數(shù)據(jù)分布到基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)中,基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)負(fù)責(zé)從管理集群的節(jié)點(diǎn)接收SQL,基于分布在節(jié)點(diǎn)上的業(yè)務(wù)表進(jìn)行運(yùn)算。
S320,基礎(chǔ)運(yùn)算層集群完成計(jì)算后,生成中間結(jié)果數(shù)據(jù),并將中間結(jié)果數(shù)據(jù)分發(fā)至匯總結(jié)果運(yùn)算層集群。
sql中的操作不都包含hash分布列,則數(shù)據(jù)不具有本地local性,從管理集群節(jié)點(diǎn)接收到的SQL下發(fā)給基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)執(zhí)行后,需要產(chǎn)生中間結(jié)果的數(shù)據(jù),則把產(chǎn)生的數(shù)據(jù)分發(fā)給匯總結(jié)果運(yùn)算層集群進(jìn)行后續(xù)的操作。
S330,匯總結(jié)果運(yùn)算集群上傳至管理集群。
后續(xù)操作的結(jié)果不需要和基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上的表進(jìn)行交互,則把運(yùn)算結(jié)果直接返回給管理集群的入口節(jié)點(diǎn),管理集群入口節(jié)點(diǎn)再把結(jié)果返回用戶。
本實(shí)施例提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,在數(shù)據(jù)不具有本地性時(shí),通過(guò)基礎(chǔ)運(yùn)算層集群運(yùn)算,并將結(jié)果傳送給匯總結(jié)果運(yùn)算層集群。無(wú)需再次信息交互,可以減少節(jié)點(diǎn)之間網(wǎng)絡(luò)資源的使用。
實(shí)施例四
圖4是本發(fā)明實(shí)施例四提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法的流程示意圖,本實(shí)施例可適用于在分布式數(shù)據(jù)庫(kù)系統(tǒng)中計(jì)算集群被分為基礎(chǔ)運(yùn)算層集群和匯總結(jié)果運(yùn)算層集群時(shí),對(duì)分布式數(shù)據(jù)庫(kù)數(shù)據(jù)運(yùn)算進(jìn)行管理的情況,該方法可以由分分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理裝置來(lái)執(zhí)行,該裝置可由軟件/硬件方式實(shí)現(xiàn),并可集成于分布式數(shù)據(jù)庫(kù)系統(tǒng)中。
參見(jiàn)圖4,所述分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,包括:
S410,在所述用戶的指令中不包括哈希分布列時(shí),管理集群將接收到的用戶的指令發(fā)送至基礎(chǔ)運(yùn)算層集群。
示例性的,所述用戶的指令為sql操作。通過(guò)統(tǒng)一的管理節(jié)點(diǎn)集群的任何一個(gè)節(jié)點(diǎn)作為入口接收用戶的指令,管理節(jié)點(diǎn)集群負(fù)責(zé)接收用戶的SQL,負(fù)責(zé)SQL解析、SQL優(yōu)化、分布式執(zhí)行計(jì)劃生成、執(zhí)行調(diào)度。集群中所有業(yè)務(wù)表按照hash分布或者隨機(jī)分布的方式把數(shù)據(jù)分布到基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)中,基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)負(fù)責(zé)從管理集群的節(jié)點(diǎn)接收SQL,基于分布在節(jié)點(diǎn)上的業(yè)務(wù)表進(jìn)行運(yùn)算。
S420,把產(chǎn)生的數(shù)據(jù)分發(fā)給匯總結(jié)果運(yùn)算層集群進(jìn)行后續(xù)的操作,基于所述產(chǎn)生的數(shù)據(jù)后續(xù)運(yùn)算在匯總結(jié)果運(yùn)算層集群上運(yùn)行。
從管理集群節(jié)點(diǎn)接收到的SQL下發(fā)給基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)執(zhí)行后,需要產(chǎn)生中間結(jié)果,例如中間表或者匯總表的數(shù)據(jù),則把產(chǎn)生的數(shù)據(jù)分發(fā)給匯總結(jié)果運(yùn)算層集群進(jìn)行后續(xù)的操作。
S430,如果需要繼續(xù)和基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上的表進(jìn)行交互時(shí),運(yùn)行的結(jié)果將會(huì)分發(fā)到基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上繼續(xù)后續(xù)的操作。
基于以上中間表或者匯總表的后續(xù)運(yùn)算將在該集群上運(yùn)行,運(yùn)行的結(jié)果如果需要繼續(xù)和基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上的表進(jìn)行交互時(shí),運(yùn)行的結(jié)果將會(huì)分發(fā)到基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群上繼續(xù)后續(xù)的操作,無(wú)需管理集群向基礎(chǔ)運(yùn)算層節(jié)點(diǎn)集群分發(fā)任務(wù)。
S440,如果基礎(chǔ)運(yùn)算層集群上的后續(xù)操作又需要產(chǎn)生數(shù)據(jù),則把產(chǎn)生的數(shù)據(jù)分發(fā)給匯總結(jié)果運(yùn)算層集群運(yùn)行。
如果基礎(chǔ)運(yùn)算層集群上的后續(xù)操作又需要產(chǎn)生中間表,則把產(chǎn)生的數(shù)據(jù)分發(fā)給中間結(jié)果或匯總結(jié)果運(yùn)算層集群進(jìn)行,按照以上邏輯執(zhí)行完所有的后續(xù)步驟后,運(yùn)算結(jié)果或者從基礎(chǔ)運(yùn)算層集群的節(jié)點(diǎn)返回給管理集群的入口節(jié)點(diǎn),或者從中間結(jié)果或匯總結(jié)果運(yùn)算層集群的節(jié)點(diǎn)返回給管理集群的入口節(jié)點(diǎn),然后管理集群入口節(jié)點(diǎn)再把結(jié)果返回用戶。
本實(shí)施例提供的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)運(yùn)算的管理方法,在數(shù)據(jù)不具有本地性時(shí),通過(guò)基礎(chǔ)運(yùn)算層集群運(yùn)算,并將結(jié)果傳送給匯總結(jié)果運(yùn)算層集群。在需要再次信息交互時(shí),匯總結(jié)果運(yùn)算層集群即可分發(fā)任務(wù),可以實(shí)現(xiàn)復(fù)雜的邏輯任務(wù),并可以減少節(jié)點(diǎn)之間網(wǎng)絡(luò)資源的使用。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。