亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法

文檔序號(hào):6377752閱讀:141來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法
一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體的說(shuō)是一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,主要應(yīng)用于對(duì)數(shù)據(jù)組織、訪(fǎng)問(wèn)有一定效率要求的內(nèi)存數(shù)據(jù)訪(fǎng)問(wèn)場(chǎng)景。數(shù)據(jù)的存儲(chǔ)與訪(fǎng)問(wèn),是各類(lèi)計(jì)算機(jī)應(yīng)用中最為普遍的需求,隨著內(nèi)存容量的不斷提升,越來(lái)越多的數(shù)據(jù)被加載到內(nèi)存中,系統(tǒng)通過(guò)讀寫(xiě)內(nèi)存的方式來(lái)調(diào)整、設(shè)置數(shù)據(jù)狀態(tài),如何組織內(nèi)存數(shù)據(jù),使其能夠滿(mǎn)足高效并發(fā)訪(fǎng)問(wèn)的要求,在數(shù)據(jù)的并發(fā)訪(fǎng)問(wèn)過(guò)程中仍能夠保證數(shù)據(jù)讀寫(xiě)的事務(wù)一致性,同時(shí)該組織結(jié)構(gòu)還具有一定的普適性,使得該組織形式能夠滿(mǎn)足不同應(yīng)用場(chǎng)景的數(shù)據(jù)訪(fǎng)問(wèn)、定位需求,已成為多數(shù)應(yīng)用系統(tǒng)共同面臨的問(wèn)題之一。以證券行業(yè)為例,各種業(yè)務(wù)運(yùn)行于后臺(tái)主機(jī)之上,對(duì)于不同的應(yīng)用,分別對(duì)應(yīng)著不 同的狀態(tài)數(shù)據(jù),業(yè)務(wù)在實(shí)時(shí)運(yùn)行過(guò)程中,需要根據(jù)不同的輸入,或查詢(xún)、或修改各類(lèi)狀態(tài)數(shù)據(jù),這類(lèi)數(shù)據(jù)如何存儲(chǔ),一般有兩種方法方法一,利用現(xiàn)有數(shù)據(jù)庫(kù),將數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中,通過(guò)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行增、刪、改操作。該方法的好處在于,操作接口簡(jiǎn)單、統(tǒng)一,通過(guò)現(xiàn)有的標(biāo)準(zhǔn)SQL語(yǔ)言可以進(jìn)行;缺點(diǎn)是,實(shí)時(shí)響應(yīng)能力較低;應(yīng)用系統(tǒng)需要與某一數(shù)據(jù)庫(kù)綁定在一起,數(shù)據(jù)庫(kù)龐大、冗余、耗費(fèi)資源,同時(shí)應(yīng)用系統(tǒng)僅僅利用了數(shù)據(jù)庫(kù)所有功能中的很小一部分;方法二,將整體數(shù)據(jù)存放于內(nèi)存中使用內(nèi)存數(shù)據(jù)庫(kù)管理數(shù)據(jù)或自行管理。前者需在現(xiàn)有系統(tǒng)的基礎(chǔ)上額外構(gòu)建完整的第三方內(nèi)存數(shù)據(jù)庫(kù)軟件,顯然對(duì)于數(shù)據(jù)訪(fǎng)問(wèn)模型較為簡(jiǎn)單的場(chǎng)景,第三方內(nèi)存數(shù)據(jù)庫(kù)方案顯得過(guò)于復(fù)雜,成本也較高,后者的實(shí)現(xiàn)多數(shù)情況下又都是各自業(yè)務(wù)根據(jù)自身特點(diǎn)組織數(shù)據(jù),不同數(shù)據(jù)按照不同的方式進(jìn)行組織,各數(shù)據(jù)之間沒(méi)有通用的結(jié)構(gòu),不方便擴(kuò)展?;谝陨险J(rèn)識(shí),在內(nèi)存中構(gòu)建一套簡(jiǎn)潔、完整的通用型內(nèi)存數(shù)據(jù)組織結(jié)構(gòu)及訪(fǎng)問(wèn)方法則顯得十分必要,該方法需在滿(mǎn)足各業(yè)務(wù)對(duì)不同數(shù)據(jù)進(jìn)行增、刪、改以及數(shù)據(jù)讀寫(xiě)事務(wù)完整性要求的同時(shí),又保留現(xiàn)有內(nèi)存數(shù)據(jù)訪(fǎng)問(wèn)高效的特點(diǎn), 該類(lèi)通用性?xún)?nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法至少需滿(mǎn)足一下三方面要求(I)讀寫(xiě)事務(wù)完整性,在對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)操作時(shí),必須確保數(shù)據(jù)結(jié)果的完整性,數(shù)據(jù)完整性是指在對(duì)數(shù)據(jù)進(jìn)行并發(fā)訪(fǎng)問(wèn)時(shí),數(shù)據(jù)的讀寫(xiě)之間不存在讀操作的結(jié)果為寫(xiě)操作修改數(shù)據(jù)時(shí)的中間過(guò)程結(jié)果;(2)并發(fā)聞效性,能為使用者提供聞效率的并發(fā)訪(fǎng)問(wèn)響應(yīng);(3)靈活性,能提供不同維度的數(shù)據(jù)組織和訪(fǎng)問(wèn)方式。目前現(xiàn)有的多數(shù)內(nèi)存數(shù)據(jù)組織及訪(fǎng)問(wèn)方法中,為滿(mǎn)足數(shù)據(jù)訪(fǎng)問(wèn)的讀寫(xiě)事務(wù)完整性,主要通過(guò)以下幾種手段來(lái)實(shí)現(xiàn)(I)訪(fǎng)問(wèn)排隊(duì),在數(shù)據(jù)訪(fǎng)問(wèn)的前端設(shè)置“排隊(duì)機(jī)”,在數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求進(jìn)入到實(shí)際數(shù)據(jù)處理模塊之前,由排隊(duì)機(jī)進(jìn)行“序列化”操作,經(jīng)排隊(duì)過(guò)的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求依次進(jìn)入數(shù)據(jù)處理模塊并獲得訪(fǎng)問(wèn)結(jié)果,通過(guò)序列化確保兩次操作不存在沖突的可能。
(2)操作系統(tǒng)級(jí)鎖機(jī)制并發(fā)控制,基于操作系統(tǒng)提供的并發(fā)控制機(jī)制一鎖機(jī)制,在操作系統(tǒng)層面對(duì)各進(jìn)程數(shù)據(jù)訪(fǎng)問(wèn)進(jìn)行調(diào)度控制,從而避免訪(fǎng)問(wèn)沖突情況的發(fā)生。以上兩種處理方式都有效解決了數(shù)據(jù)并發(fā)訪(fǎng)問(wèn)完整性的問(wèn)題,但無(wú)論是訪(fǎng)問(wèn)排隊(duì),還是鎖并發(fā)控制都為整個(gè)數(shù)據(jù)訪(fǎng)問(wèn)帶來(lái)了過(guò)多的額外資源開(kāi)銷(xiāo),這類(lèi)手段不利于整體并發(fā)訪(fǎng)問(wèn)性能的提升。另一方面,為滿(mǎn)足數(shù)據(jù)訪(fǎng)問(wèn)的靈活性,在已有的內(nèi)存數(shù)據(jù)組織及訪(fǎng)問(wèn)方法中引入了多維索引、非唯一索引的方法,將數(shù)據(jù)與多維索引進(jìn)行同時(shí)映射,使得可以從不同維度訪(fǎng)問(wèn)同一數(shù)據(jù);為同一索引鍵值的數(shù)據(jù)構(gòu)建非唯一索引,使得同一鍵值的不同數(shù)據(jù)可以并存并被訪(fǎng)問(wèn)。
但現(xiàn)有的技術(shù)方法并未結(jié)合兩類(lèi)索引方法提供完整支持,有些方法只提供了單一的非唯一索引檢索方法,并未支持實(shí)際的多維索引;有些方法提供了多維索引,但在多維索引的數(shù)據(jù)訪(fǎng)問(wèn)及操作上存在不足,有些方法并未對(duì)多維索引的添加、刪除更新進(jìn)行完整支持,僅支持了其中的添加、更新功能;有些方法僅考慮了正常情況下各種索引的構(gòu)建、刪除邏輯,并未周全考慮在數(shù)據(jù)訪(fǎng)問(wèn)過(guò)程中如修改操作出現(xiàn)意外終止,而導(dǎo)致內(nèi)存數(shù)據(jù)局部不一致場(chǎng)景下的合理處理方法;有些方法,在提供多維索引的同時(shí)卻并未解決在不降低并發(fā)性能的基礎(chǔ)上確保讀寫(xiě)事務(wù)完整性的問(wèn)題,總之存在缺陷。本發(fā)明的目的在于解決上述技術(shù)問(wèn)題,提供一種在一寫(xiě)多讀前提下可滿(mǎn)足不同應(yīng)用場(chǎng)景的數(shù)據(jù)訪(fǎng)問(wèn)、定位需求的并發(fā)內(nèi)存數(shù)據(jù)組織形式及訪(fǎng)問(wèn)方法,并實(shí)現(xiàn)高效并發(fā)訪(fǎng)問(wèn)的同時(shí)保持?jǐn)?shù)據(jù)讀寫(xiě)的事務(wù)一致性。為實(shí)現(xiàn)上述目的,設(shè)計(jì)一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于一種靈活的內(nèi)存數(shù)據(jù)組織形式,能有效降低一寫(xiě)多讀情況下的并發(fā)訪(fǎng)問(wèn)沖突,提供兩類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)方式Key-Value的精確索引方式及Key-ValueList的集合索引方式,根據(jù)需求訪(fǎng)問(wèn)各實(shí)體中的任何一個(gè)屬性,同時(shí)支持多維索引,單一實(shí)體可通過(guò)不同索引進(jìn)行檢索,整個(gè)內(nèi)存數(shù)據(jù)采用分塊組織的方式進(jìn)行管理,各內(nèi)存塊分別存放不同級(jí)別、不同類(lèi)型的管理信息,數(shù)據(jù)的訪(fǎng)問(wèn)依靠各內(nèi)存區(qū)的邏輯進(jìn)行串聯(lián)控制,該數(shù)據(jù)訪(fǎng)問(wèn)方法操作如下a.創(chuàng)建數(shù)據(jù)存儲(chǔ)空間,根據(jù)預(yù)定的配置信息在內(nèi)存空間中創(chuàng)建完整的存儲(chǔ)實(shí)體,既包括實(shí)際數(shù)據(jù)存放區(qū)域,又包括為提供各項(xiàng)索引功能而必須的控制區(qū)域;b.將數(shù)據(jù)實(shí)體添加到數(shù)據(jù)存儲(chǔ)空間,同時(shí)為該數(shù)據(jù)實(shí)體設(shè)定對(duì)應(yīng)的每一維索引的索引鍵(Key),并構(gòu)建索引鍵到數(shù)據(jù)實(shí)體的映射關(guān)系,為支持多維索引的Key-Value/ValueList訪(fǎng)問(wèn)作基礎(chǔ);c.完成數(shù)據(jù)實(shí)體添加后,通過(guò)不同維度索引對(duì)數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn),可通過(guò)Key-Value精確訪(fǎng)問(wèn)的方式定位某一數(shù)據(jù),并對(duì)該數(shù)據(jù)進(jìn)行讀取、更新、刪除操作;可以通過(guò)Key-ValueList集合訪(fǎng)問(wèn)的方式定位某一數(shù)據(jù)鏈表,并從該鏈表的某一“點(diǎn)”開(kāi)始向后遍歷訪(fǎng)問(wèn),并對(duì)對(duì)應(yīng)的數(shù)據(jù)進(jìn)行讀取、更新、刪除操作;d.當(dāng)有其他進(jìn)程也需要訪(fǎng)問(wèn)同一塊內(nèi)存數(shù)據(jù),執(zhí)行“附著”操作,將該共享內(nèi)存接入到本地內(nèi)存空間,即可通過(guò)Key-Value/ValueList的方式訪(fǎng)問(wèn)數(shù)據(jù);e.并發(fā)訪(fǎng)問(wèn)時(shí),一個(gè)數(shù)據(jù)的更新會(huì)在其完成數(shù)據(jù)提交后真正生效,之后的對(duì)于該數(shù)據(jù)的讀取訪(fǎng)問(wèn)都將讀到更新后的數(shù)據(jù),生效過(guò)程是原子的,通過(guò)這一原子操作有效保證數(shù)據(jù)一致性。將數(shù)據(jù)實(shí)體添加到數(shù)據(jù)存儲(chǔ)空間,該步驟實(shí)際分為索引區(qū)索引鍵添加,數(shù)據(jù)區(qū)數(shù)據(jù)值添加以及鍵值關(guān)系構(gòu)建三部分,對(duì)于多維索引來(lái)說(shuō),添加數(shù)據(jù)的同時(shí)需要保證所有維度的索引能夠同時(shí)映射到同一數(shù)據(jù)實(shí)體,因此在實(shí)際的數(shù)據(jù)添加時(shí),會(huì)首先選取一個(gè)“總控區(qū)”位置,將數(shù)據(jù)實(shí)體與該總控區(qū)位置對(duì)應(yīng)起來(lái),之后,將各維索引鍵值“安插”到各自“索引區(qū)”的合理位置,并建立各索引鍵與“總控區(qū)”位置的一一對(duì)應(yīng)關(guān)聯(lián)關(guān)系,從而確保各維索弓I與數(shù)據(jù)實(shí)體的關(guān)聯(lián)關(guān)系構(gòu)建完成。數(shù)據(jù)實(shí)體的操作過(guò)程,主要是通過(guò)索引區(qū),首先定位到“總控區(qū)”位置,基于該位置去訪(fǎng)問(wèn)實(shí)際的數(shù)據(jù)實(shí)體,對(duì)于數(shù)據(jù)的讀取操作,直接將對(duì)應(yīng)的數(shù)據(jù)返回給調(diào)用者;而對(duì)于更新操作,主要基于多版本的概念,更新不在原有數(shù)據(jù)上進(jìn)行,而是新增一個(gè)副本,當(dāng)更新數(shù)據(jù)完成在副本的寫(xiě)入后,再將“數(shù)據(jù)指針”指向新的版本;對(duì)于刪除操作,分為索引刪除和數(shù)據(jù)刪除兩部分,對(duì)于索引刪除操作,將把所有維度索引一同刪除,在刪除索引的時(shí)候,索引對(duì)應(yīng)的數(shù)據(jù)實(shí)體不被刪除。刪除索引,將釋放對(duì)應(yīng)的空間,以備后續(xù)重復(fù)使用,對(duì)于數(shù)據(jù)刪除,會(huì)將刪除的空間“隔離”開(kāi)來(lái),外界不可再次訪(fǎng)問(wèn)該部分內(nèi)容,但是實(shí)際數(shù)據(jù)不做“抹除”操作,數(shù)據(jù)空間不被重復(fù)利用。添加多維索引操作中,索引添加的最后步驟是為多維索引共同指向的“總控區(qū)”槽位設(shè)置標(biāo)志位,表明該槽位已被占用,只有“總控區(qū)”槽位設(shè)置標(biāo)識(shí)位,對(duì)應(yīng)索引槽位才是有效索引,該設(shè)置過(guò)程是原子的,在讀操作與索引添加操作同時(shí)發(fā)生時(shí),當(dāng)該標(biāo)志位未被設(shè)置,則讀操作讀不到任何索引;當(dāng)該標(biāo)志已為設(shè)置,則讀操作可以訪(fǎng)問(wèn)到對(duì)應(yīng)的索引。添加數(shù)據(jù)操作中,在數(shù)據(jù)添加完成時(shí),會(huì)將“總控區(qū)”槽位“指向”添加的數(shù)據(jù),表明數(shù)據(jù)添加成功,該過(guò)程同樣是原子的,當(dāng)讀操作與數(shù)據(jù)添加操作同時(shí)進(jìn)行,“指向”未能形 成,讀操作讀不到數(shù)據(jù),“指向”已形成,則可以讀到完整數(shù)據(jù),數(shù)據(jù)完整性不被破壞。更新數(shù)據(jù)操作中,寫(xiě)操作并不會(huì)破壞原有的數(shù)據(jù),只是將更新的數(shù)據(jù)寫(xiě)入另一塊內(nèi)存空間,在此之后將“總控區(qū)”槽位指向新的數(shù)據(jù),而這個(gè)“指向”過(guò)程是原子的,因此,當(dāng)讀操作與更新操作同時(shí)進(jìn)行,一種情況是讀操作在“指向”改變前完成數(shù)據(jù)讀取,則讀到更新前的數(shù)據(jù),整個(gè)數(shù)據(jù)是完整的;另一種情況是讀操作在“指向”該表后進(jìn)行數(shù)據(jù)讀取,則讀到更新后的數(shù)據(jù),讀取的數(shù)據(jù)仍然是完整的。刪除索引操作中,索引對(duì)應(yīng)的數(shù)據(jù)并未被刪除,實(shí)際上是在多維索引指向的“總控區(qū)”槽位打上“已刪除”標(biāo)記,對(duì)“總控區(qū)”槽位打標(biāo)志過(guò)程是原子的,當(dāng)讀操作與刪除操作同時(shí)進(jìn)行,當(dāng)刪除操作的打標(biāo)記過(guò)程已完成,則讀操作無(wú)法訪(fǎng)問(wèn)到實(shí)際索引,也就不會(huì)訪(fǎng)問(wèn)到對(duì)應(yīng)的數(shù)據(jù),因此數(shù)據(jù)完整性不被破壞;當(dāng)刪除操作的打標(biāo)記過(guò)程在讀操作定位索引之后完成,由于實(shí)際的數(shù)據(jù)并未刪除,因此讀操作可以讀到完整的數(shù)據(jù),數(shù)據(jù)完整性也沒(méi)有被破壞。刪除數(shù)據(jù)操作中,實(shí)際的數(shù)據(jù)并未被刪除,而是將“總控區(qū)”槽位與數(shù)據(jù)的“聯(lián)系”打斷,而打斷“聯(lián)系”的過(guò)程是原子的,讀操作與刪除操作同時(shí)進(jìn)行時(shí),當(dāng)讀操作在打斷聯(lián)系之前完成,則可以讀到數(shù)據(jù),且數(shù)據(jù)是完整的,當(dāng)讀操作在打斷“聯(lián)系”之后完成,則不會(huì)讀到任何數(shù)據(jù)。本發(fā)明與現(xiàn)有技術(shù)相比,以數(shù)據(jù)完整性和并發(fā)訪(fǎng)問(wèn)高效性為前提,對(duì)內(nèi)存數(shù)據(jù)結(jié)構(gòu)進(jìn)行靈活設(shè)計(jì)、組織,在不使用系統(tǒng)級(jí)并發(fā)控制機(jī)制的前提下,提高了證券行業(yè)計(jì)算機(jī)超大容量數(shù)據(jù)訪(fǎng)問(wèn)速度性能,具體的說(shuō)具有以下有益效用(I)在不采用鎖機(jī)制的情況下確保了數(shù)據(jù)訪(fǎng)問(wèn)完整性,支持一寫(xiě)多讀場(chǎng)景的并發(fā)數(shù)據(jù)訪(fǎng)問(wèn),在對(duì)數(shù)據(jù)進(jìn)行讀取操作的同時(shí),可對(duì)數(shù)據(jù)進(jìn)行修改,兩方面操作互不干擾,保證并發(fā)訪(fǎng)問(wèn)數(shù)據(jù)一致性,提高了訪(fǎng)問(wèn)效率;(2)提供了高效的數(shù)據(jù)檢索模型,即多維索引支持,一個(gè)數(shù)據(jù)實(shí)體可由不同索引進(jìn)行檢索,使得數(shù)據(jù)訪(fǎng)問(wèn)更加靈活,提供Key-Value精確索引模式,從關(guān)鍵字檢索對(duì)應(yīng)數(shù)據(jù)實(shí)體的精確訪(fǎng)問(wèn);提供Key-ValueList集合索引模式,從關(guān)鍵字檢索對(duì)應(yīng)數(shù)據(jù)實(shí)體集合的訪(fǎng)問(wèn),可支持單一實(shí)體上的多維索引,可通過(guò)不同維度索引檢索到同一實(shí)體;(3)提供了統(tǒng)一的內(nèi)存數(shù)據(jù)存放、管理方式,即分區(qū)存放各類(lèi)信息,將實(shí)際數(shù)據(jù)區(qū)和索引控制管理區(qū)合理分離,單獨(dú)組織;不同用戶(hù)可共同操作同一塊數(shù)據(jù),數(shù)據(jù)組織具有一 定的邏輯性,可有效提高數(shù)據(jù)訪(fǎng)問(wèn)速度;(4)可以制定配置信息,靈活的將不同數(shù)據(jù)存放其中,具有較好的適應(yīng)性;(5)具有容錯(cuò)能力,在操作異常終止的情況下仍能確保數(shù)據(jù)一致性,不需要第三方干預(yù)。圖I為創(chuàng)建共享數(shù)據(jù)時(shí)內(nèi)存操作根據(jù)參數(shù)信息構(gòu)建出區(qū)域示意圖;圖2為實(shí)施例中實(shí)際添加第一組數(shù)據(jù)后內(nèi)存數(shù)據(jù)組織結(jié)構(gòu)圖;圖3為實(shí)施例中依次加入第二組至第五組數(shù)據(jù)實(shí)例后的內(nèi)存數(shù)據(jù)組織結(jié)構(gòu)圖;圖4為實(shí)施例中加入第六組數(shù)據(jù)后的內(nèi)存數(shù)據(jù)組織結(jié)構(gòu)圖;圖5為實(shí)施例中更新后的數(shù)據(jù)內(nèi)存組織結(jié)構(gòu)圖;圖6為實(shí)施例中刪除第二組數(shù)據(jù)屬性2后的內(nèi)存數(shù)據(jù)組織結(jié)構(gòu)圖;圖7為實(shí)施例中刪除索引后的內(nèi)存數(shù)據(jù)組織結(jié)構(gòu)圖;為了使本發(fā)明的目的原理及設(shè)計(jì)方案清楚明了,現(xiàn)結(jié)合附圖
及實(shí)施例對(duì)本發(fā)明作進(jìn)一步闡述,其中涉及的方法對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)是可以實(shí)現(xiàn)的。本發(fā)明設(shè)計(jì)的技術(shù)方案所要解決的關(guān)鍵問(wèn)題是提出一種內(nèi)存數(shù)據(jù)組織和訪(fǎng)問(wèn)方式,使得數(shù)據(jù)訪(fǎng)問(wèn)既不沖突,又高效,且數(shù)據(jù)讀寫(xiě)事務(wù)完整性得到有效保障,有效降低資源消耗,提升并發(fā)訪(fǎng)問(wèn)能力。提供了兩類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)方式(I) Key-Value的精確索引方式,Key不重復(fù),每一個(gè)Key對(duì)應(yīng)一個(gè)實(shí)體,該實(shí)體具有多個(gè)屬性(屬性個(gè)數(shù)可配置),根據(jù)需求可訪(fǎng)問(wèn)其中任何一個(gè)屬性;(2) Key-ValueList的集合索引方式,Key允許重復(fù),重復(fù)Key的多個(gè)實(shí)體被串聯(lián)為一個(gè)集合,集合中的每個(gè)實(shí)體具有多個(gè)屬性(屬性個(gè)數(shù)可配置),根據(jù)需求可訪(fǎng)問(wèn)各實(shí)體中的任何一個(gè)屬性。同時(shí)支持多維索引,單一實(shí)體可通過(guò)不同索引進(jìn)行檢索,為達(dá)到通用、高效管理數(shù)據(jù)的目的,整個(gè)內(nèi)存數(shù)據(jù)采用分塊組織的方式進(jìn)行管理,各內(nèi)存塊分別存放不同級(jí)別、不同類(lèi)型的管理信息。數(shù)據(jù)的訪(fǎng)問(wèn)依靠各內(nèi)存區(qū)的邏輯進(jìn)行串聯(lián)控制。
在對(duì)數(shù)據(jù)的整體操作中,所有應(yīng)用對(duì)于數(shù)據(jù)的訪(fǎng)問(wèn)都大致可以抽象成六大類(lèi)型創(chuàng)建、添加、讀取、修改、刪除、遍歷,為了支持上述應(yīng)用對(duì)數(shù)據(jù)訪(fǎng)問(wèn)的需求,特別提供了以上六類(lèi)訪(fǎng)問(wèn)接口。實(shí)施例我們選取日常生活中最常見(jiàn)的場(chǎng)景作為實(shí)施的用例,假設(shè)整個(gè)數(shù)據(jù)有三維索弓丨,其中A、B兩維是支持Key-Value精確訪(fǎng)問(wèn)模式的索弓丨,另外一維索引C是支持Key-ValueList集合訪(fǎng)問(wèn)模式的索引,三維索引代表的含義分別為A=員工號(hào);B=手機(jī)號(hào);C=姓名,每個(gè)索引對(duì)應(yīng)的數(shù)據(jù)實(shí)體包括三個(gè)屬性a=性別;b=年齡;c=學(xué)歷,獲得的數(shù)據(jù)實(shí)例如表I所示表I初始數(shù)據(jù)
權(quán)利要求
1.一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于在內(nèi)存數(shù)據(jù)組織形式提供兩類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)方式Key-Value的精確索引方式及Key-ValueList的集合索引方式,根據(jù)需求訪(fǎng)問(wèn)各實(shí)體中的任何一個(gè)屬性,同時(shí)支持多維索引,單一實(shí)體可通過(guò)不同索引進(jìn)行檢索,整個(gè)內(nèi)存數(shù)據(jù)采用分塊組織的方式進(jìn)行管理,各內(nèi)存塊分別存放不同級(jí)別、不同類(lèi)型的管理信息,數(shù)據(jù)的訪(fǎng)問(wèn)依靠各內(nèi)存區(qū)的邏輯進(jìn)行串聯(lián)控制,該數(shù)據(jù)訪(fǎng)問(wèn)方法操作如下 a.創(chuàng)建數(shù)據(jù)存儲(chǔ)空間,根據(jù)預(yù)定的配置信息在內(nèi)存空間中創(chuàng)建完整的存儲(chǔ)實(shí)體,既包括實(shí)際數(shù)據(jù)存放區(qū)域,又包括為提供各項(xiàng)索引功能而必須的控制區(qū)域; b.將數(shù)據(jù)實(shí)體添加到數(shù)據(jù)存儲(chǔ)空間,同時(shí)為該數(shù)據(jù)實(shí)體設(shè)定對(duì)應(yīng)的每一維索引的索引鍵(Key),并構(gòu)建索引鍵到數(shù)據(jù)實(shí)體的映射關(guān)系,為支持多維索引的Key-Value/ValueList訪(fǎng)問(wèn)作基礎(chǔ); c.完成數(shù)據(jù)實(shí)體添加后,通過(guò)不同維度索引對(duì)數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn),可通過(guò)Key-Value精確訪(fǎng)問(wèn)的方式定位某一數(shù)據(jù),并對(duì)該數(shù)據(jù)進(jìn)行讀取、更新、刪除操作;可以通過(guò)Key-ValueList集合訪(fǎng)問(wèn)的方式定位某一數(shù)據(jù)鏈表,并從該鏈表的某一“點(diǎn)”開(kāi)始向后遍歷訪(fǎng)問(wèn),并對(duì)對(duì)應(yīng)的數(shù)據(jù)進(jìn)行讀取、更新、刪除操作; d.當(dāng)有其他進(jìn)程也需要訪(fǎng)問(wèn)同一塊內(nèi)存數(shù)據(jù),執(zhí)行“附著”操作,將該共享內(nèi)存接入到本地內(nèi)存空間,即可通過(guò)Key-Value/ValueList的方式訪(fǎng)問(wèn)數(shù)據(jù); e.并發(fā)訪(fǎng)問(wèn)時(shí),一個(gè)數(shù)據(jù)的更新會(huì)在其完成數(shù)據(jù)提交后真正生效,之后的對(duì)于該數(shù)據(jù)的讀取訪(fǎng)問(wèn)都將讀到更新后的數(shù)據(jù),生效過(guò)程是原子的,通過(guò)這一原子操作有效保證數(shù)據(jù)一致性。
2.如權(quán)利要求I所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于將數(shù)據(jù)實(shí)體添加到數(shù)據(jù)存儲(chǔ)空間,該步驟實(shí)際分為索引區(qū)索引鍵添加,數(shù)據(jù)區(qū)數(shù)據(jù)值添加以及鍵值關(guān)系構(gòu)建三部分,對(duì)于多維索引來(lái)說(shuō),添加數(shù)據(jù)的同時(shí)需要保證所有維度的索引能夠同時(shí)映射到同一數(shù)據(jù)實(shí)體,因此在實(shí)際的數(shù)據(jù)添加時(shí),會(huì)首先選取一個(gè)“總控區(qū)”位置,將數(shù)據(jù)實(shí)體與該總控區(qū)位置對(duì)應(yīng)起來(lái),之后,將各維索引鍵值“安插”到各自“索引區(qū)”的合理位置,并建立各索引鍵與“總控區(qū)”位置的一一對(duì)應(yīng)關(guān)聯(lián)關(guān)系,從而確保各維索引與數(shù)據(jù)實(shí)體的關(guān)聯(lián)關(guān)系構(gòu)建完成。
3.如權(quán)利要求I或2所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于數(shù)據(jù)實(shí)體的操作過(guò)程,主要是通過(guò)索引區(qū),首先定位到“總控區(qū)”位置,基于該位置去訪(fǎng)問(wèn)實(shí)際的數(shù)據(jù)實(shí)體,對(duì)于數(shù)據(jù)的讀取操作,直接將對(duì)應(yīng)的數(shù)據(jù)返回給調(diào)用者;而對(duì)于更新操作,主要基于多版本的概念,更新不在原有數(shù)據(jù)上進(jìn)行,而是新增一個(gè)副本,當(dāng)更新數(shù)據(jù)完成在副本的寫(xiě)入后,再將“數(shù)據(jù)指針”指向新的版本;對(duì)于刪除操作,分為索引刪除和數(shù)據(jù)刪除兩部分,對(duì)于索引刪除操作,將把所有維度索引一同刪除,在刪除索引的時(shí)候,索引對(duì)應(yīng)的數(shù)據(jù)實(shí)體不被刪除;刪除索引,將釋放對(duì)應(yīng)的空間,以備后續(xù)重復(fù)使用,對(duì)于數(shù)據(jù)刪除,會(huì)將刪除的空間“隔離”開(kāi)來(lái),外界不可再次訪(fǎng)問(wèn)該部分內(nèi)容,但是實(shí)際數(shù)據(jù)不做“抹除”操作,數(shù)據(jù)空間不被重復(fù)利用。
4.如權(quán)利要求I所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于添加多維索引操作中,索引添加的最后步驟是為多維索引共同指向的“總控區(qū)”位置設(shè)置標(biāo)志位,表明該槽位已被占用,只有“總控區(qū)”槽位設(shè)置標(biāo)識(shí)位,對(duì)應(yīng)索引槽位才是有效索引,該設(shè)置過(guò)程是原子的,在讀操作與索引添加操作同時(shí)發(fā)生時(shí),當(dāng)該標(biāo)志位未被設(shè)置,則讀操作讀不到任何索引;當(dāng)該標(biāo)志已為設(shè)置,則讀操作可以訪(fǎng)問(wèn)到對(duì)應(yīng)的索引。
5.如權(quán)利要求I所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于添加數(shù)據(jù)操作中,在數(shù)據(jù)添加完成時(shí),會(huì)將“總控區(qū)”槽位“指向”添加的數(shù)據(jù),表明數(shù)據(jù)添加成功,該過(guò)程同樣是原子的,當(dāng)讀操作與數(shù)據(jù)添加操作同時(shí)進(jìn)行,“指向”未能形成,讀操作讀不到數(shù)據(jù),“指向”已形成,則可以讀到完整數(shù)據(jù),數(shù)據(jù)完整性不被破壞。
6.如權(quán)利要求I所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于更新數(shù)據(jù)操作中,寫(xiě)操作并不會(huì)破壞原有的數(shù)據(jù),只是將更新的數(shù)據(jù)寫(xiě)入另一塊內(nèi)存空間,在此之后將“總控區(qū)”槽位指向新的數(shù)據(jù),而這個(gè)“指向”過(guò)程是原子的,因此,當(dāng)讀操作與更新操作同時(shí)進(jìn)行,一種情況是讀操作在“指向”改變前完成數(shù)據(jù)讀取,則讀到更新前的數(shù)據(jù),整個(gè)數(shù)據(jù)是完整的;另一種情況是讀操作在“指向”該表后進(jìn)行數(shù)據(jù)讀取,則讀到更新后的數(shù)據(jù),讀取的數(shù)據(jù)仍然是完整的。
7.如權(quán)利要求I所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于刪除索引操作中,索引對(duì)應(yīng)的數(shù)據(jù)并未被刪除,實(shí)際上是在多維索引指向的“總控區(qū)”槽位打上“已刪除”標(biāo)記,對(duì)“總控區(qū)”槽位打標(biāo)志過(guò)程是原子的,當(dāng)讀操作與刪除操作同時(shí)進(jìn)行,當(dāng)刪除操作的打標(biāo)記過(guò)程已完成,則讀操作無(wú)法訪(fǎng)問(wèn)到實(shí)際索引,也就不會(huì)訪(fǎng)問(wèn)到對(duì)應(yīng)的數(shù)據(jù),因此數(shù)據(jù)完整性不被破壞;當(dāng)刪除操作的打標(biāo)記過(guò)程在讀操作定位索引之后完成,由于實(shí)際的數(shù)據(jù)并未刪除,因此讀操作可以讀到完整的數(shù)據(jù),數(shù)據(jù)完整性也沒(méi)有被破壞。
8.如權(quán)利要求I所述的一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于刪除數(shù)據(jù)操作中,實(shí)際的數(shù)據(jù)并未被刪除,而是將“總控區(qū)”槽位與數(shù)據(jù)的“聯(lián)系”打斷,而打斷“聯(lián)系”的過(guò)程是原子的,讀操作與刪除操作同時(shí)進(jìn)行時(shí),當(dāng)讀操作在打斷聯(lián)系之前完成,則可以讀到數(shù)據(jù),且數(shù)據(jù)是完整的,當(dāng)讀操作在打斷“聯(lián)系”之后完成,則不會(huì)讀到任何數(shù)據(jù)。
全文摘要
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體的說(shuō)是一種新型的并發(fā)內(nèi)存數(shù)據(jù)組織與訪(fǎng)問(wèn)方法,其特征在于內(nèi)存數(shù)據(jù)組織形式提供兩類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)方式Key-Value的精確索引方式及Key-ValueList的集合索引方式,根據(jù)需求訪(fǎng)問(wèn)各實(shí)體中的任何一個(gè)屬性,同時(shí)支持多維索引,單一實(shí)體可通過(guò)不同索引進(jìn)行檢索,整個(gè)內(nèi)存數(shù)據(jù)采用分塊組織的方式進(jìn)行管理,各內(nèi)存塊分別存放不同級(jí)別、不同類(lèi)型的管理信息,數(shù)據(jù)的訪(fǎng)問(wèn)依靠各內(nèi)存區(qū)的邏輯進(jìn)行串聯(lián)控制,本發(fā)明與現(xiàn)有技術(shù)相比,以數(shù)據(jù)完整性和并發(fā)訪(fǎng)問(wèn)高效性為前提,對(duì)內(nèi)存數(shù)據(jù)結(jié)構(gòu)進(jìn)行靈活設(shè)計(jì)、組織,提供了高效的數(shù)據(jù)檢索模型,支持一寫(xiě)多讀場(chǎng)景的并發(fā)數(shù)據(jù)訪(fǎng)問(wèn),數(shù)據(jù)讀寫(xiě)事務(wù)完整性得到有效保障,有效降低資源消耗,提升并發(fā)訪(fǎng)問(wèn)能力。
文檔編號(hào)G06F17/30GK102880704SQ20121036254
公開(kāi)日2013年1月16日 申請(qǐng)日期2012年9月25日 優(yōu)先權(quán)日2012年9月25日
發(fā)明者陳雷, 武劍鋒, 王泊, 蔣衛(wèi), 黃寅飛, 林志高, 鄭剛, 陸素源, 白碩 申請(qǐng)人:上海證券交易所
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1