本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,尤其涉及一種冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)及其數(shù)據(jù)處理方法。
背景技術(shù):
隨著大數(shù)據(jù)的快速發(fā)展以及移動(dòng)終端、云計(jì)算和物聯(lián)網(wǎng)的普及,大數(shù)據(jù)的應(yīng)用已深入到各個(gè)領(lǐng)域。計(jì)算機(jī)對(duì)數(shù)據(jù)的處理主要依賴于傳統(tǒng)的關(guān)系(SQL)數(shù)據(jù)庫(kù)或新興的NOSQL數(shù)據(jù)庫(kù)技術(shù)。而采用BS(如Web系統(tǒng))或CS(如手機(jī)APP系統(tǒng))架構(gòu)的軟件系統(tǒng),隨著用戶數(shù)量的增長(zhǎng),如何高效地處理數(shù)據(jù)是軟件設(shè)計(jì)人員需要面臨的問(wèn)題。
在對(duì)數(shù)據(jù)的研究中發(fā)現(xiàn),其本身存在兩個(gè)基本屬性即使用頻率和時(shí)效性。數(shù)據(jù)的使用頻率是指數(shù)據(jù)被訪問(wèn)的次數(shù),即訪問(wèn)頻度。舉例說(shuō)明數(shù)據(jù)的這兩個(gè)基本屬性:如我們可以定義某學(xué)生在校期間的數(shù)據(jù)為線上數(shù)據(jù),而其畢業(yè)后的數(shù)據(jù)為線下數(shù)據(jù),很顯然線上數(shù)據(jù)的訪問(wèn)頻度必然高于線下數(shù)據(jù)的訪問(wèn)頻度。根據(jù)數(shù)據(jù)被訪問(wèn)的頻度,可以簡(jiǎn)單將數(shù)據(jù)分為熱數(shù)據(jù)和冷數(shù)據(jù)。通常,經(jīng)常被訪問(wèn)的熱數(shù)據(jù)往往是比例較小的,大致在10%~15%左右,而剩下的大部分?jǐn)?shù)據(jù)是冷數(shù)據(jù)。
如果無(wú)視上述數(shù)據(jù)的基本屬性,而一味采用傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)處理數(shù)據(jù),則當(dāng)數(shù)據(jù)被大量和頻繁地被訪問(wèn)時(shí),會(huì)造成數(shù)據(jù)庫(kù)壓力陡增,系統(tǒng)不穩(wěn)定、響應(yīng)慢、甚至停機(jī)等諸多問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)及其數(shù)據(jù)處理方法,旨在提高對(duì)數(shù)據(jù)的處理效率,解決由于過(guò)度依賴傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)所帶來(lái)的系統(tǒng)壓力問(wèn)題。
本發(fā)明的額外方面和優(yōu)點(diǎn)將部分地在下面的描述中闡述,并且部分地將從描述中變得顯然,或者可以通過(guò)本發(fā)明的實(shí)踐而習(xí)得。
本發(fā)明一方面公開了一種冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng),包括:服務(wù)器和與所述服務(wù)器通信連接的至少一個(gè)數(shù)據(jù)庫(kù);所述服務(wù)器包括:內(nèi)存儲(chǔ)器及處理模塊;所述處理模塊用于判定數(shù)據(jù)的屬性即冷熱程度,若所述數(shù)據(jù)為熱數(shù)據(jù),則存儲(chǔ)所述數(shù)據(jù)至所述內(nèi)存儲(chǔ)器中;若所述數(shù)據(jù)為冷數(shù)據(jù),則存儲(chǔ)所述數(shù)據(jù)至所述至少一個(gè)數(shù)據(jù)庫(kù)中;而對(duì)于需要持久保存的數(shù)據(jù),則根據(jù)需要進(jìn)行持久化處理。
于一實(shí)施例中,所述至少一個(gè)數(shù)據(jù)庫(kù)包括:第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù);所述處理模塊還用于判斷所述冷數(shù)據(jù)的數(shù)據(jù)熱度,如果所述數(shù)據(jù)為溫?cái)?shù)據(jù),則存儲(chǔ)溫?cái)?shù)據(jù)至所述第一數(shù)據(jù)庫(kù)中;如果所述數(shù)據(jù)為極冷數(shù)據(jù),則存儲(chǔ)所述數(shù)據(jù)至所述第二數(shù)據(jù)庫(kù)中;所述極冷數(shù)據(jù)的訪問(wèn)頻度低于所述溫?cái)?shù)據(jù)的訪問(wèn)頻度。
于另一實(shí)施例中,所述處理模塊還用于接收數(shù)據(jù)訪問(wèn)請(qǐng)求,所述數(shù)據(jù)訪問(wèn)的請(qǐng)求中攜帶數(shù)據(jù)的冷熱屬性,系統(tǒng)根據(jù)所述屬性確定所述待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置,從確定的存儲(chǔ)位置中根據(jù)所述數(shù)據(jù)訪問(wèn)請(qǐng)求對(duì)所述待訪問(wèn)數(shù)據(jù)進(jìn)行相關(guān)操作。
于再一實(shí)施例中,所述處理模塊還用于接收數(shù)據(jù)訪問(wèn)請(qǐng)求,并依次在所述內(nèi)存儲(chǔ)器、所述第一數(shù)據(jù)庫(kù)和所述第二數(shù)據(jù)庫(kù)中查找所述數(shù)據(jù)訪問(wèn)請(qǐng)求所請(qǐng)求訪問(wèn)的待訪問(wèn)數(shù)據(jù),一旦找到所述待訪問(wèn)數(shù)據(jù),則停止查找并根據(jù)所述數(shù)據(jù)訪問(wèn)請(qǐng)求的指示對(duì)所述待訪問(wèn)數(shù)據(jù)進(jìn)行操作。
于再一實(shí)施例中,所述內(nèi)存儲(chǔ)器對(duì)所述第一類型數(shù)據(jù)中的可共享數(shù)據(jù)采用享元模式進(jìn)行處理。
于再一實(shí)施例中,所述服務(wù)器為分布式服務(wù)器,每個(gè)分布式服務(wù)器分別通信連接各自相應(yīng)的所述至少一個(gè)數(shù)據(jù)庫(kù),以形成集群式冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)。
本發(fā)明另一方面公開了一種冷熱溫?cái)?shù)據(jù)處理方法,應(yīng)用于冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng),所述冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)包括服務(wù)器及與所述服務(wù)器通信連接的至少一個(gè)數(shù)據(jù)庫(kù),包括:判定數(shù)據(jù)的屬性;以及如果所述數(shù)據(jù)的屬性為第一數(shù)據(jù)屬性,則將所述數(shù)據(jù)存儲(chǔ)在所述服務(wù)器的內(nèi)存儲(chǔ)器中;如果所述數(shù)據(jù)的屬性為第二數(shù)據(jù)屬性,則將所述數(shù)據(jù)存儲(chǔ)在所述至少一個(gè)數(shù)據(jù)庫(kù)中;其中所述第一數(shù)據(jù)屬性為熱數(shù)據(jù)或極熱數(shù)據(jù),所述第二數(shù)據(jù)屬性為冷數(shù)據(jù)。對(duì)于需要持久保存的數(shù)據(jù),則做持久化處理。
于一實(shí)施例中,所述至少一個(gè)數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),所述數(shù)據(jù)處理方式還包括:如果所述數(shù)據(jù)的屬性為冷數(shù)據(jù),則需要進(jìn)一步判斷所述數(shù)據(jù)的冷熱屬性;以及如果所述數(shù)據(jù)為溫?cái)?shù)據(jù),則存儲(chǔ)所述溫?cái)?shù)據(jù)至所述第一數(shù)據(jù)庫(kù)中;如果所述數(shù)據(jù)為極冷數(shù)據(jù),則存儲(chǔ)極冷數(shù)據(jù)至所述第二數(shù)據(jù)庫(kù)中;其中所述極冷數(shù)據(jù)的訪問(wèn)頻度低于所述溫?cái)?shù)據(jù)的訪問(wèn)頻度。
于另一實(shí)施例中,該方法還包括:接收數(shù)據(jù)訪問(wèn)請(qǐng)求,所述數(shù)據(jù)訪問(wèn)請(qǐng)求中攜帶有待訪問(wèn)數(shù)據(jù)的冷熱屬性;系統(tǒng)根據(jù)所述屬性確定待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置;及從確定的存儲(chǔ)位置中根據(jù)所述數(shù)據(jù)訪問(wèn)請(qǐng)求的指示對(duì)所述待訪問(wèn)數(shù)據(jù)進(jìn)行操作;其中,所述屬性包括:熱數(shù)據(jù)、溫?cái)?shù)據(jù)以及冷數(shù)據(jù),熱數(shù)據(jù)的訪問(wèn)頻度高于溫?cái)?shù)據(jù),溫?cái)?shù)據(jù)的訪問(wèn)頻度高于冷數(shù)據(jù)的訪問(wèn)頻度。
于再一實(shí)施例中,該方法還包括:接收數(shù)據(jù)訪問(wèn)請(qǐng)求;依次在所述內(nèi)存儲(chǔ)器、所述第一數(shù)據(jù)庫(kù)和所述第二數(shù)據(jù)庫(kù)中查找所述數(shù)據(jù)訪問(wèn)請(qǐng)求所請(qǐng)求訪問(wèn)的待訪問(wèn)數(shù)據(jù);以及如果找到所述待訪問(wèn)數(shù)據(jù),則停止查找并根據(jù)所述數(shù)據(jù)訪問(wèn)請(qǐng)求的指示對(duì)所述待訪問(wèn)數(shù)據(jù)進(jìn)行操作。對(duì)于熱數(shù)據(jù)或者極熱數(shù)據(jù)而言,系統(tǒng)僅需訪問(wèn)內(nèi)存數(shù)據(jù)而已。
根據(jù)本發(fā)明提供的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)及其采用的冷熱溫?cái)?shù)據(jù)處理方法,在處理數(shù)據(jù)時(shí),充分考慮數(shù)據(jù)屬性,對(duì)不同屬性的數(shù)據(jù)采取不同的處理方式,擺脫了對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)的依賴,提高了系統(tǒng)的數(shù)據(jù)處理能力、提升了系統(tǒng)的性能并增強(qiáng)了系統(tǒng)的穩(wěn)定性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。
附圖說(shuō)明
通過(guò)參照附圖詳細(xì)描述其示例實(shí)施方式,本發(fā)明的上述和其它特征及優(yōu)點(diǎn)將變得更加明顯。
圖1為根據(jù)一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)的結(jié)構(gòu)圖。
圖2為根據(jù)另一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)的結(jié)構(gòu)圖。
圖3為根據(jù)一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)處理方法的流程圖。
圖4為根據(jù)另一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)處理方法的流程圖。
具體實(shí)施方式
現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的實(shí)施方式;相反,提供這些實(shí)施方式使得本發(fā)明將全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。在圖中相同的附圖標(biāo)記表示相同或類似的結(jié)構(gòu),因而將省略對(duì)它們的重復(fù)描述。
所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個(gè)或更多實(shí)施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對(duì)本發(fā)明的實(shí)施方式的充分理解。然而,本領(lǐng)域技術(shù)人員應(yīng)意識(shí)到,沒(méi)有所述特定細(xì)節(jié)中的一個(gè)或更多,或者采用其它的方法、組元等,也可以實(shí)踐本發(fā)明的技術(shù)方案。在其它情況下,不詳細(xì)示出或描述公知結(jié)構(gòu)或者操作以避免模糊本發(fā)明。
圖1為根據(jù)一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)的結(jié)構(gòu)圖。如圖1所示,冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)10包括:服務(wù)器110及至少一個(gè)數(shù)據(jù)庫(kù)120。
其中,服務(wù)器110包括:處理模塊1110及內(nèi)存儲(chǔ)器1120。
處理模塊1110用于判斷數(shù)據(jù)的屬性,該屬性包括根據(jù)數(shù)據(jù)的訪問(wèn)頻度劃分的冷數(shù)據(jù)及熱數(shù)據(jù);如果該數(shù)據(jù)的屬性為熱數(shù)據(jù),即頻繁被訪問(wèn)的數(shù)據(jù),例如:某學(xué)校在校生數(shù)據(jù)、電廠SIS系統(tǒng)中產(chǎn)生的實(shí)時(shí)生產(chǎn)數(shù)據(jù)等,則處理模塊1110將該數(shù)據(jù)存儲(chǔ)至服務(wù)器110的內(nèi)存儲(chǔ)器1120中;而如果該數(shù)據(jù)的屬性為冷數(shù)據(jù),即訪問(wèn)頻度低的數(shù)據(jù),例如:某學(xué)校畢業(yè)生數(shù)據(jù)、電廠SIS系統(tǒng)中一年以前的生產(chǎn)數(shù)據(jù)等,則處理模塊1110將該數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)120中。對(duì)于需持久化的數(shù)據(jù)處理模塊1110則做相應(yīng)的處理。
內(nèi)存儲(chǔ)器1120位于服務(wù)器110中,用于存儲(chǔ)數(shù)據(jù)屬性為熱數(shù)據(jù)的數(shù)據(jù)。內(nèi)存儲(chǔ)器1120可以為隨機(jī)存儲(chǔ)器(Random Access Memory,RAM)、只讀存儲(chǔ)器(Read Only Memory,ROM)、可編程只讀存儲(chǔ)器(Programmable Read-Only Memory,PROM)、可擦除可編程只讀存儲(chǔ)器(Erasable Programmable Read-Only-Memory,EPROM)或電可擦除可編程只讀存儲(chǔ)器(Electrically Erasable Programmable Read-Only-Memory,EEPROM)。
在一些實(shí)施例中,內(nèi)存儲(chǔ)器1120對(duì)于存儲(chǔ)在其中的熱數(shù)據(jù)中的可共享數(shù)據(jù)采用享元模式(FlyWeight)進(jìn)行處理。具體地,在大量數(shù)據(jù)存儲(chǔ)時(shí),通常其中有一部分?jǐn)?shù)據(jù)是重復(fù)的或可共享的;如果僅僅對(duì)數(shù)據(jù)做緩存處理,則這些重復(fù)數(shù)據(jù)會(huì)占用令人無(wú)法接受的大量?jī)?nèi)存空間。因此,對(duì)于這些重復(fù)數(shù)據(jù),可以設(shè)計(jì)一種共享方式,采用共享的方式來(lái)存儲(chǔ)這些重復(fù)數(shù)據(jù),從而減少系統(tǒng)中對(duì)內(nèi)存的使用量。相比于各種類型的數(shù)據(jù)庫(kù),內(nèi)存儲(chǔ)器的存儲(chǔ)量會(huì)受到一定的限制,因此將享元模式應(yīng)用于內(nèi)存儲(chǔ)器1120中,可以避免重復(fù)生成大量可共享的數(shù)據(jù),從而顯著地提高了存儲(chǔ)效率、降低了內(nèi)存資源的消耗。
至少一個(gè)數(shù)據(jù)庫(kù)120與服務(wù)器110之間通信連接,包括有線連接、無(wú)線連接等,本發(fā)明不以此為限。至少一個(gè)數(shù)據(jù)120可以為傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)或NOSQL數(shù)據(jù)庫(kù),用于存儲(chǔ)訪問(wèn)頻度低的冷數(shù)據(jù)。
處理模塊1110還用于接收數(shù)據(jù)訪問(wèn)請(qǐng)求,如果該數(shù)據(jù)訪問(wèn)請(qǐng)求中攜帶有待訪問(wèn)數(shù)據(jù)的屬性,則處理模塊1110根據(jù)該屬性確定待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置。例如如果待訪問(wèn)數(shù)據(jù)的屬性為熱數(shù)據(jù),則處理模塊1110確定該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在內(nèi)存儲(chǔ)器1120中;而如果待訪問(wèn)數(shù)據(jù)的屬性為冷數(shù)據(jù),則處理模塊1110確定該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)120中。
而如果該數(shù)據(jù)訪問(wèn)請(qǐng)求中未攜帶有待訪問(wèn)數(shù)據(jù)的冷熱屬性,則處理模塊1110還用于在內(nèi)存儲(chǔ)器1120及至少一個(gè)數(shù)據(jù)庫(kù)120中查找待訪問(wèn)數(shù)據(jù),以確定其存儲(chǔ)位置。在一些實(shí)施例中,內(nèi)存儲(chǔ)器1120的查找順序?yàn)椋簝?nèi)存儲(chǔ)器1120->至少一個(gè)數(shù)據(jù)庫(kù)120。也即處理模塊1110先在內(nèi)存儲(chǔ)器1120中查找,如果找不到,則在至少一個(gè)數(shù)據(jù)庫(kù)120中尋找。
進(jìn)一步地,處理模塊1110在確定了待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置后,還用于從該確定的存儲(chǔ)位置中根據(jù)數(shù)據(jù)訪問(wèn)請(qǐng)求中的指示,對(duì)該待訪問(wèn)數(shù)據(jù)進(jìn)行操作。該操作例如包括:對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。也即,如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在內(nèi)存儲(chǔ)器1120中,則在該內(nèi)存儲(chǔ)器1120中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作;而如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)120中,則在數(shù)據(jù)庫(kù)120中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。若數(shù)據(jù)的熱度發(fā)生變化,則處理模塊1110會(huì)針對(duì)變化進(jìn)行適當(dāng)處理。對(duì)于要長(zhǎng)久保存的數(shù)據(jù),處理模塊1110需要做相應(yīng)的持久化處理。
在一些實(shí)施例中,服務(wù)器110基于輕量的HTTP通信協(xié)議設(shè)計(jì),通過(guò)輕量協(xié)議的使用,可以增加服務(wù)器110對(duì)數(shù)據(jù)的處理能力。
在一些實(shí)施例中,服務(wù)器110還可以為分布式服務(wù)器(圖中未示出),每個(gè)分布式服務(wù)器分別通信連接其各自對(duì)應(yīng)的至少一個(gè)數(shù)據(jù)庫(kù),從而形成集群式冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)。搭建集群環(huán)境,而利用負(fù)載均衡技術(shù)將請(qǐng)求分散到集群中,從而降低單個(gè)服務(wù)器的處理壓力,提高數(shù)據(jù)處理速度。
應(yīng)清楚地理解,本發(fā)明描述了如何形成和使用特定示例,但本發(fā)明的原理不限于這些示例的任何細(xì)節(jié)。相反,基于本發(fā)明公開的內(nèi)容的教導(dǎo),這些原理能夠應(yīng)用于許多其它實(shí)施方式。
圖2為根據(jù)另一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)的結(jié)構(gòu)圖。如圖2所示,冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)20與圖1中所示的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)10的區(qū)別在于:冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)20中的至少一個(gè)數(shù)據(jù)庫(kù)220包括:第一數(shù)據(jù)庫(kù)2210和第二數(shù)據(jù)庫(kù)2220。對(duì)于與冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng)10相同的部分,則不再贅述。
對(duì)于冷數(shù)據(jù),處理模塊2110還用于進(jìn)一步判斷冷數(shù)據(jù)的冷熱程度,如果冷數(shù)據(jù)的屬性為第一屬性,則存儲(chǔ)該冷數(shù)據(jù)至第一數(shù)據(jù)庫(kù)2210中;而如果冷數(shù)據(jù)的屬性為第二屬性,則存儲(chǔ)該冷數(shù)據(jù)至第二數(shù)據(jù)庫(kù)2210中。在一些實(shí)施例中,冷數(shù)據(jù)的屬性仍是以數(shù)據(jù)的被訪問(wèn)頻率而劃分的,第二屬性數(shù)據(jù)的訪問(wèn)頻度低于第一屬性的訪問(wèn)頻度。第二屬性數(shù)據(jù)為極冷數(shù)據(jù),例如依據(jù)年限劃分,某城市的氣象數(shù)據(jù)中的前一年降水?dāng)?shù)據(jù)與十年前的降水?dāng)?shù)據(jù)。
在一些實(shí)施例中,第一數(shù)據(jù)庫(kù)2210例如為NOSQL數(shù)據(jù)庫(kù),第二數(shù)據(jù)庫(kù)2220例如為傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)(SQL數(shù)據(jù)庫(kù)),但本發(fā)明不以此為限。
在數(shù)據(jù)被訪問(wèn)時(shí),處理模塊2110還用于接收數(shù)據(jù)的訪問(wèn)請(qǐng)求,如果其中攜帶有待訪問(wèn)數(shù)據(jù)的冷熱屬性,則處理模塊2110根據(jù)該屬性,確定待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置。例如,待訪問(wèn)數(shù)據(jù)為熱數(shù)據(jù),則處理模塊2110確定其存儲(chǔ)位置為內(nèi)存儲(chǔ)器2120;而如果待訪問(wèn)數(shù)據(jù)為冷數(shù)據(jù),且其屬性為相對(duì)而言較熱的溫?cái)?shù)據(jù),則確定其存儲(chǔ)位置為第一數(shù)據(jù)庫(kù)2210;若待訪問(wèn)數(shù)據(jù)為冷數(shù)據(jù),且其屬性為冷數(shù)據(jù),則確定其存儲(chǔ)位置為第二數(shù)據(jù)庫(kù)2210。
而如果訪問(wèn)請(qǐng)求中未攜帶有待訪問(wèn)數(shù)據(jù)的屬性,則處理模塊2110在內(nèi)存儲(chǔ)器2120、第一數(shù)據(jù)庫(kù)2210及第二數(shù)據(jù)庫(kù)2220中查找該待訪問(wèn)數(shù)據(jù)的位置。在一些實(shí)施例中,定義該查找順序?yàn)椋簝?nèi)存儲(chǔ)器2120->第一數(shù)據(jù)庫(kù)2210->第二數(shù)據(jù)庫(kù)2220。也即處理模塊2110先在內(nèi)存儲(chǔ)器2120中查找,如果沒(méi)有則在第一數(shù)據(jù)庫(kù)2210中查找,而如果仍然沒(méi)有則在第二數(shù)據(jù)庫(kù)2220中查找。
進(jìn)一步地,處理模塊2110在確定了待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置后,還用于從該確定的存儲(chǔ)位置中根據(jù)數(shù)據(jù)訪問(wèn)請(qǐng)求中的指示,對(duì)該待訪問(wèn)數(shù)據(jù)進(jìn)行操作。該操作例如包括:對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。也即,如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在內(nèi)存儲(chǔ)器1120中,則在該內(nèi)存儲(chǔ)器2120中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作;而如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在第一數(shù)據(jù)庫(kù)2210中,則在第一數(shù)據(jù)庫(kù)2210中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作;而如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在第二數(shù)據(jù)庫(kù)2220中,則在第二數(shù)據(jù)庫(kù)2220中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。對(duì)需要進(jìn)行長(zhǎng)久保存的數(shù)據(jù),處理模塊2110會(huì)做相應(yīng)的“持久化”操作。
本發(fā)明提供的冷熱溫?cái)?shù)據(jù)服務(wù)器系統(tǒng),在處理數(shù)據(jù)時(shí),充分考慮數(shù)據(jù)屬性,對(duì)不同屬性的數(shù)據(jù)采取不同的處理方式,擺脫了對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)的依賴,提高了系統(tǒng)的數(shù)據(jù)處理能力、提升了系統(tǒng)的性能并增強(qiáng)了系統(tǒng)的穩(wěn)定性。
需要注意的是,上述附圖中所示的框圖是功能實(shí)體,不一定必須與物理或邏輯上獨(dú)立的實(shí)體相對(duì)應(yīng)??梢圆捎密浖问絹?lái)實(shí)現(xiàn)這些功能實(shí)體,或在一個(gè)或多個(gè)硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。
下述為本發(fā)明方法實(shí)施例,可以應(yīng)用于本發(fā)明系統(tǒng)實(shí)施例中。對(duì)于本發(fā)明方法實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本發(fā)明系統(tǒng)實(shí)施例。
圖3為根據(jù)一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)處理方法的流程圖。如圖3所示,該方法30包括:
步驟S310,判斷數(shù)據(jù)的屬性。
例如,處理模塊1110判斷數(shù)據(jù)的屬性,該屬性包括根據(jù)數(shù)據(jù)的訪問(wèn)頻度劃分的冷數(shù)據(jù)及熱數(shù)據(jù)。
步驟S320,根據(jù)數(shù)據(jù)的屬性,將數(shù)據(jù)存儲(chǔ)在相應(yīng)的位置。
例如,如果該數(shù)據(jù)的屬性為熱數(shù)據(jù),即經(jīng)常被訪問(wèn)的數(shù)據(jù),例如:某學(xué)校在校生數(shù)據(jù)、電廠SIS系統(tǒng)中產(chǎn)生的實(shí)時(shí)生產(chǎn)數(shù)據(jù)等,則處理模塊1110將該數(shù)據(jù)存儲(chǔ)至服務(wù)器110的內(nèi)存儲(chǔ)器1120中;而如果該數(shù)據(jù)的屬性為冷數(shù)據(jù),即訪問(wèn)頻度低的數(shù)據(jù),例如:某學(xué)校畢業(yè)生數(shù)據(jù)、電廠SIS系統(tǒng)中一年以前的生產(chǎn)數(shù)據(jù)等,則處理模塊1110將該數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)120中。對(duì)于需持久化保存的數(shù)據(jù),則做相應(yīng)處理。
在一些實(shí)施例中,采用享元模式存儲(chǔ)熱數(shù)據(jù)中的共享數(shù)據(jù)。具體地,在大量數(shù)據(jù)存儲(chǔ)時(shí),通常其中有一部分?jǐn)?shù)據(jù)是重復(fù)的,這些重復(fù)數(shù)據(jù)會(huì)占用令人無(wú)法接受的內(nèi)存空間。因此,對(duì)于這些重復(fù)數(shù)據(jù),可以設(shè)計(jì)一種共享方式,采用共享的方式來(lái)存儲(chǔ)這些重復(fù)數(shù)據(jù),從而減少內(nèi)存的使用量。相比于各種類型的數(shù)據(jù)庫(kù),內(nèi)存儲(chǔ)器的存儲(chǔ)量會(huì)受到一定的限制,因此將享元模式存儲(chǔ)方式應(yīng)用于內(nèi)存儲(chǔ)器1120中,可以避免重復(fù)數(shù)據(jù)占用大量?jī)?nèi)存,顯著地提高了存儲(chǔ)效率、降低了內(nèi)存資源的消耗。
步驟S330,接收數(shù)據(jù)訪問(wèn)請(qǐng)求,如果該數(shù)據(jù)訪問(wèn)請(qǐng)求中攜帶有待訪問(wèn)數(shù)據(jù)的屬性,則根據(jù)該數(shù)據(jù)屬性確定待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置。
例如,如果待訪問(wèn)數(shù)據(jù)的屬性為熱數(shù)據(jù),則處理模塊1110確定該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在內(nèi)存儲(chǔ)器1120中;而如果待訪問(wèn)數(shù)據(jù)的屬性為冷數(shù)據(jù),則處理模塊1110確定該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)120中。
步驟S340,如果該數(shù)據(jù)訪問(wèn)請(qǐng)求中未攜帶有待訪問(wèn)數(shù)據(jù)的屬性,則在可能的存儲(chǔ)位置中依次尋找該待訪問(wèn)數(shù)據(jù)。
例如,處理模塊1110在內(nèi)存儲(chǔ)器1120及至少一個(gè)數(shù)據(jù)庫(kù)120中查找待訪問(wèn)數(shù)據(jù),以確定其存儲(chǔ)位置。在一些實(shí)施例中,內(nèi)存儲(chǔ)器1120的查找順序?yàn)椋簝?nèi)存儲(chǔ)器1120->至少一個(gè)數(shù)據(jù)庫(kù)120。也即處理模塊1110先在內(nèi)存儲(chǔ)器1120中查找,如果找不到,則在至少一個(gè)數(shù)據(jù)庫(kù)120中尋找。
步驟S350,在確定了待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置后,從該確定的存儲(chǔ)位置中根據(jù)數(shù)據(jù)訪問(wèn)請(qǐng)求中的指示,對(duì)該待訪問(wèn)數(shù)據(jù)進(jìn)行操作。
例如,處理模塊1110在確定了待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置后,還用于從該確定的存儲(chǔ)位置中根據(jù)數(shù)據(jù)訪問(wèn)請(qǐng)求中的指示,對(duì)該待訪問(wèn)數(shù)據(jù)進(jìn)行操作。該操作例如包括:對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。也即,如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在內(nèi)存儲(chǔ)器1120中,則在該內(nèi)存儲(chǔ)器1120中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作;而如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)120中,則在數(shù)據(jù)庫(kù)120中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。而對(duì)于需要進(jìn)行長(zhǎng)久保存的數(shù)據(jù),則做相應(yīng)的“持久化”處理。
圖4為根據(jù)另一示例實(shí)施例示出的冷熱溫?cái)?shù)據(jù)處理方法的流程圖。
步驟S410,判斷數(shù)據(jù)的屬性。
例如,處理模塊2110判斷數(shù)據(jù)的屬性,該屬性包括根據(jù)數(shù)據(jù)的訪問(wèn)頻度劃分的冷數(shù)據(jù)及熱數(shù)據(jù)。
步驟S420,根據(jù)數(shù)據(jù)的屬性或者數(shù)據(jù)的屬性和子屬性,將數(shù)據(jù)存儲(chǔ)在相應(yīng)的位置。
例如,如果該數(shù)據(jù)的屬性為熱數(shù)據(jù),即經(jīng)常被訪問(wèn)的數(shù)據(jù),例如:某學(xué)校在校生數(shù)據(jù)、電廠SIS系統(tǒng)中產(chǎn)生的實(shí)時(shí)生產(chǎn)數(shù)據(jù)等,則處理模塊2110將該數(shù)據(jù)存儲(chǔ)至服務(wù)器210的內(nèi)存儲(chǔ)器2120中;而如果該數(shù)據(jù)的屬性為冷數(shù)據(jù),即訪問(wèn)頻度低的數(shù)據(jù),例如:某學(xué)校畢業(yè)生數(shù)據(jù)、電廠SIS系統(tǒng)中一年以前的生產(chǎn)數(shù)據(jù)等,則處理模塊2110將該數(shù)據(jù)存儲(chǔ)在至少一個(gè)數(shù)據(jù)庫(kù)220中。
在一些實(shí)施例中,采用享元模式存儲(chǔ)熱數(shù)據(jù)中的共享數(shù)據(jù)。具體地,在大量數(shù)據(jù)存儲(chǔ)時(shí),通常其中有一部分?jǐn)?shù)據(jù)是重復(fù)的,這些重復(fù)數(shù)據(jù)占用了令人無(wú)法接受的大量?jī)?nèi)存。因此,對(duì)于這些重復(fù)數(shù)據(jù),可以設(shè)計(jì)一種共享方式,采用共享的方式來(lái)存儲(chǔ)這些重復(fù)數(shù)據(jù),從而減少內(nèi)存的使用量。相比于各種類型的數(shù)據(jù)庫(kù),內(nèi)存儲(chǔ)器的存儲(chǔ)量會(huì)受到一定的限制,因此將享元模式應(yīng)用于內(nèi)存儲(chǔ)器2120中,可以避免重復(fù)數(shù)據(jù)占用大量?jī)?nèi)存空間,顯著地提高了存儲(chǔ)效率、降低了內(nèi)存資源的消耗。
進(jìn)一步地,對(duì)于冷數(shù)據(jù),處理模塊2110還用于進(jìn)一步判斷冷數(shù)據(jù)的冷熱屬性,如果冷數(shù)據(jù)的屬性為較熱數(shù)據(jù)即溫?cái)?shù)據(jù),則存儲(chǔ)該數(shù)據(jù)至第一數(shù)據(jù)庫(kù)2210中;而如果冷數(shù)據(jù)的屬性為較冷數(shù)據(jù),則存儲(chǔ)該冷數(shù)據(jù)至第二數(shù)據(jù)庫(kù)2210中。在一些實(shí)施例中,冷數(shù)據(jù)的冷熱屬性仍是以數(shù)據(jù)的被訪問(wèn)頻率而劃分的,極冷數(shù)據(jù)的訪問(wèn)頻度低于溫?cái)?shù)據(jù)的訪問(wèn)頻度。
在一些實(shí)施例中,第一數(shù)據(jù)庫(kù)2210例如為NOSQL數(shù)據(jù)庫(kù),第二數(shù)據(jù)庫(kù)2220例如為傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)(SQL數(shù)據(jù)庫(kù)),但本發(fā)明不以此為限。
步驟S430,接收數(shù)據(jù)訪問(wèn)請(qǐng)求,如果該數(shù)據(jù)訪問(wèn)請(qǐng)求中攜帶有待訪問(wèn)數(shù)據(jù)的冷熱屬性,則根據(jù)該數(shù)據(jù)的屬性確定待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置。
例如,處理模塊2110根據(jù)該屬性,確定待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置。例如,待訪問(wèn)數(shù)據(jù)為熱數(shù)據(jù),則處理模塊2110確定其存儲(chǔ)位置為內(nèi)存儲(chǔ)器2120;而如果待訪問(wèn)數(shù)據(jù)為冷數(shù)據(jù),且其屬性為溫?cái)?shù)據(jù),則確定其存儲(chǔ)位置為第一數(shù)據(jù)庫(kù)2210;若待訪問(wèn)數(shù)據(jù)為冷數(shù)據(jù),且其屬性極冷數(shù)據(jù),則確定其存儲(chǔ)位置為第二數(shù)據(jù)庫(kù)2210。
步驟S440,而如果該數(shù)據(jù)訪問(wèn)請(qǐng)求中未攜帶有待訪問(wèn)數(shù)據(jù)的冷熱屬性,則在可能的存儲(chǔ)位置中依次尋找該待訪問(wèn)數(shù)據(jù)。
例如,處理模塊2110在內(nèi)存儲(chǔ)器2120、第一數(shù)據(jù)庫(kù)2210及第二數(shù)據(jù)庫(kù)2220中查找該待訪問(wèn)數(shù)據(jù)的位置。在一些實(shí)施例中,定義該查找順序?yàn)椋簝?nèi)存儲(chǔ)器2120->第一數(shù)據(jù)庫(kù)2210->第二數(shù)據(jù)庫(kù)2220。也即處理模塊2110先在內(nèi)存儲(chǔ)器2120中查找,如果沒(méi)有則在第一數(shù)據(jù)庫(kù)2210中查找,而如果仍然沒(méi)有則在第二數(shù)據(jù)庫(kù)2220中查找。
步驟S450,在確定了待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置后,從該確定的存儲(chǔ)位置中根據(jù)數(shù)據(jù)訪問(wèn)請(qǐng)求中的指示,對(duì)該待訪問(wèn)數(shù)據(jù)進(jìn)行操作。
例如,處理模塊2110在確定了待訪問(wèn)數(shù)據(jù)的存儲(chǔ)位置后,還用于從該確定的存儲(chǔ)位置中根據(jù)數(shù)據(jù)訪問(wèn)請(qǐng)求中的指示,對(duì)該待訪問(wèn)數(shù)據(jù)進(jìn)行操作。該操作例如包括:對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。也即,如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在內(nèi)存儲(chǔ)器2120中,則在該內(nèi)存儲(chǔ)器2120中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作;而如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在第一數(shù)據(jù)庫(kù)2210中,則在第一數(shù)據(jù)庫(kù)2210中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作;而如果該待訪問(wèn)數(shù)據(jù)存儲(chǔ)在第二數(shù)據(jù)庫(kù)2220中,則在第二數(shù)據(jù)庫(kù)2220中進(jìn)行對(duì)數(shù)據(jù)的“增”、“刪”、“改”、“查”操作。對(duì)于要長(zhǎng)久保存的數(shù)據(jù),處理模塊2110需要進(jìn)行“持久化”處理。
本發(fā)明提供的冷熱溫?cái)?shù)據(jù)處理方法,在處理數(shù)據(jù)時(shí),充分考慮數(shù)據(jù)屬性,對(duì)不同屬性的數(shù)據(jù)采取不同的處理方式,擺脫了對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)的依賴,提高了系統(tǒng)的數(shù)據(jù)處理能力、提升了系統(tǒng)的性能并增強(qiáng)了系統(tǒng)的穩(wěn)定性。
本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施方式的全部或部分步驟被實(shí)現(xiàn)為由CPU執(zhí)行的計(jì)算機(jī)程序。在該計(jì)算機(jī)程序被CPU執(zhí)行時(shí),執(zhí)行本發(fā)明提供的上述方法所限定的上述功能。所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
此外,需要注意的是,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施方式的方法所包括的處理的示意性說(shuō)明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)軟件結(jié)合必要的硬件的方式來(lái)實(shí)現(xiàn)。因此,根據(jù)本發(fā)明實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤,移動(dòng)硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺(tái)計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、移動(dòng)終端、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本發(fā)明實(shí)施方式的方法。
以上具體地示出和描述了本發(fā)明的示例性實(shí)施方式。應(yīng)該理解,本發(fā)明不限于所公開的實(shí)施方式,相反,本發(fā)明意圖涵蓋包含在所附權(quán)利要求范圍內(nèi)的各種修改和等效置換。