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

分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法與流程

文檔序號:12364388閱讀:330來源:國知局
分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法與流程

本發(fā)明涉及計算機軟件技術(shù)領(lǐng)域,具體涉及一種分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法。



背景技術(shù):

隨著信息時代的發(fā)展,數(shù)據(jù)規(guī)模呈現(xiàn)爆炸性增長,如何從這些海量數(shù)據(jù)中提取有價值的信息,是當(dāng)前社會面臨的巨大挑戰(zhàn)。而聯(lián)機分析處理(OLAP,On-Line Analytical Processing)系統(tǒng)表現(xiàn)了其強大的數(shù)據(jù)分析能力,它已廣泛應(yīng)用于銀行、電信、證券交易所等商業(yè)領(lǐng)域。

支持OLAP系統(tǒng)的分布式內(nèi)存列式數(shù)據(jù)庫允許用戶以多個維度從海量數(shù)據(jù)中提取和分析有價值的信息,這些信息可能是一個簡單的報表,也可能是一個復(fù)雜的分析結(jié)果。隨著查詢語句復(fù)雜度的提升,查詢操作所需要的時間也會越長,而高復(fù)雜度的查詢語句在支持OLAP系統(tǒng)的分布式內(nèi)存列式數(shù)據(jù)庫中出現(xiàn)的頻率很高。

數(shù)據(jù)庫中查詢請求在語義方面具有很強的相關(guān)性,因此部分查詢結(jié)果很可能在歷史查詢中出現(xiàn)過。分布式內(nèi)存列式數(shù)據(jù)庫引入緩存管理系統(tǒng)來保存某些歷史查詢信息,從而減少重復(fù)查詢的執(zhí)行次數(shù)。圖1是分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理系統(tǒng)的結(jié)構(gòu)示意圖,所述緩存管理系統(tǒng)包括查詢執(zhí)行引擎(Query Engine)11、緩存主控節(jié)點(Cache Master)12、備用節(jié)點(Standby Cache Master)13以及至少一個緩存從節(jié)點(Cache Slave)14。其中,所述查詢執(zhí)行引擎11負(fù)責(zé)解析和執(zhí)行用戶SQL請求,返回查詢結(jié)果;所述緩存主控節(jié)點12負(fù)責(zé)管理所有緩存從節(jié)點14,維護緩存元數(shù)據(jù),根據(jù)相關(guān)算法淘汰緩存,維護緩存一致性;所述備用節(jié)點13定期同步所述緩存主控節(jié)點12的所有緩存元數(shù)據(jù),當(dāng)所述緩存主控節(jié)點12出現(xiàn)故障時,立即替代所述緩存主控節(jié)點12,繼續(xù)提供緩存服務(wù);所述緩存從節(jié)點14負(fù)責(zé)存儲緩存實際數(shù)據(jù),響應(yīng)所述查詢執(zhí)行引擎11讀取緩存的請求。

如何在分布式場景下盡可能緩存訪問頻率高的數(shù)據(jù)、加快數(shù)據(jù)庫查詢速度,正是分布式緩存管理系統(tǒng)要解決的問題。



技術(shù)實現(xiàn)要素:

本發(fā)明所要解決的是如何在分布式場景下盡可能緩存訪問頻率高的數(shù)據(jù)、加快數(shù)據(jù)庫查詢速度的問題。

本發(fā)明通過下述技術(shù)方案實現(xiàn):

一種分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,所述分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理系統(tǒng)包括查詢執(zhí)行引擎、緩存主控節(jié)點以及至少一個緩存從節(jié)點,所述緩存管理方法包括:在緩存主控節(jié)點中建立緩存隊列,所述緩存隊列中每項元素對應(yīng)為一個物理任務(wù)的緩存元數(shù)據(jù);以每個物理任務(wù)為根節(jié)點切割其所在的物理執(zhí)行計劃以獲得每個物理任務(wù)對應(yīng)的緩存計算軌跡;根據(jù)每個物理任務(wù)對應(yīng)的緩存計算軌跡在緩存主控節(jié)點中構(gòu)建緩存特征樹;在查詢請求到來時,查詢執(zhí)行引擎將SQL語句解析成物理執(zhí)行計劃;從物理執(zhí)行計劃的根節(jié)點開始層次遍歷物理執(zhí)行計劃中每個節(jié)點,判斷每個物理任務(wù)對應(yīng)的緩存計算軌跡是否與所述緩存特征樹匹配;若匹配,直接從緩存從節(jié)點中讀取該物理任務(wù)的緩存實際數(shù)據(jù),否則計算該物理任務(wù)。

本發(fā)明采用緩存計算軌跡唯一標(biāo)識緩存,在查詢請求到來時,只需要將每個物理任務(wù)對應(yīng)的緩存計算軌跡與緩存特征樹進行匹配,能夠迅速檢測緩存是否命中,從一定程度上減少分布式數(shù)據(jù)庫中重復(fù)任務(wù)的計算,節(jié)省查詢時間,提高查詢效率。

進一步地,所述緩存隊列中每項元素按權(quán)重從大到小的順序排列。

進一步地,所述緩存隊列中每項元素的權(quán)重根據(jù)Wi=qi×(a×Si+b×Pi)獲得,其中,Wi為第i項元素的權(quán)重,qi為第i項元素對應(yīng)的物理任務(wù)的權(quán)重因子,Si為第i項元素的時空比且ti為第i項元素對應(yīng)的緩存計算軌跡中到根節(jié)點最長路徑的時間,ki為第i項元素對應(yīng)的存儲策略常量,mi為第i項元素實際所占的系統(tǒng)存儲空間,Pi為第i項元素的命中頻率且ni為第i項元素的歷史命中次數(shù),di為第i項元素距離上一次命中的時間間隔,vi為第i項元素平均命中時間間隔,a為時空比對權(quán)重的影響因子,b為命中頻率對權(quán)重的影響因子,i為正整數(shù)。

進一步地,所述分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法還包括當(dāng)所述緩存管理系統(tǒng)收到新緩存的存儲請求時進行如下步驟:步驟S1,更新所述緩存隊列中每項元素的權(quán)重;步驟S2,判斷所述緩存管理系統(tǒng)當(dāng)前剩余空間是否足以存儲新緩存;若所述緩存管理系統(tǒng)當(dāng)前剩余空間足以存儲新緩存,執(zhí)行步驟S3,緩存主控節(jié)點通知緩存從節(jié)點存儲新緩存,將新緩存元數(shù)據(jù)放入所述緩存隊列,并在所述緩存特征樹中記錄新緩存對應(yīng)的緩存計算軌跡;若所述緩存管理系統(tǒng)當(dāng)前剩余空間不足以存儲新緩存,執(zhí)行步驟S4,判斷新緩存的權(quán)重是否大于所述緩存隊列中最后一項元素的權(quán)重;若新緩存的權(quán)重不大于所述緩存隊列中最后一項元素的權(quán)重,執(zhí)行步驟S5,緩存主控節(jié)點通知緩存從節(jié)點拒絕存儲新緩存;若新緩存的權(quán)重大于所述緩存隊列中最后一項元素的權(quán)重,執(zhí)行步驟S6,判斷是否仍有查詢操作正在使用所述緩存隊列中最后一項元素;若仍有查詢操作正在使用所述緩存隊列中最后一項元素,執(zhí)行步驟S7,將所述緩存隊列中最后一項元素標(biāo)記為待刪除;若無查詢操作正在使用所述緩存隊列中最后一項元素,執(zhí)行步驟S8,緩存主控節(jié)點刪除所述緩存隊列中最后一項元素,回收所述緩存管理系統(tǒng)中被淘汰緩存占用的存儲空間,從所述緩存特征樹中刪除所述緩存隊列中最后一項元素對應(yīng)的緩存計算軌跡,并轉(zhuǎn)到步驟S2。

進一步地,所述分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法還包括:為所述緩存隊列中每項元素設(shè)置一個對應(yīng)的引用計數(shù),當(dāng)一項元素首次命中時,將該項元素對應(yīng)的引用計數(shù)置1,并且啟動一個計時器;若在計時器超時前,緩存主控節(jié)點收到使用一項元素的SQL語句查詢完畢的反饋,則將該項元素的引用計數(shù)減1,并重置計時器;在一項元素對應(yīng)的引用計數(shù)等于0時,則關(guān)閉計時器。

進一步地,判斷是否仍有查詢操作正在使用所述緩存隊列中最后一項元素為判斷所述緩存隊列中最后一項元素對應(yīng)的引用計數(shù)是否為0。

進一步地,每個物理任務(wù)對應(yīng)的緩存計算軌跡包括每個節(jié)點的結(jié)果計算時間、結(jié)果存儲大小以及每條邊代表的數(shù)據(jù)傳輸時間。

進一步地,所述緩存特征樹中所有節(jié)點所涉及的表都擁有版本號。

本發(fā)明與現(xiàn)有技術(shù)相比,具有如下的優(yōu)點和有益效果:

本發(fā)明提供的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,通過高效的緩存匹配算法迅速檢測緩存是否命中,利用合理的緩存淘汰算法保證系統(tǒng)可用性和穩(wěn)定性,從一定程度上減少了分布式數(shù)據(jù)庫中重復(fù)任務(wù)的計算,節(jié)省了查詢時間和存儲空間,提高了查詢效率。

附圖說明

此處所說明的附圖用來提供對本發(fā)明實施例的進一步理解,構(gòu)成本申請的一部分,并不構(gòu)成對本發(fā)明實施例的限定。在附圖中:

圖1是分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理系統(tǒng)的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實施例的物理執(zhí)行計劃的結(jié)構(gòu)示意圖;

圖3是本發(fā)明實施例的緩存計算軌跡的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實施例的緩存特征樹的結(jié)構(gòu)示意圖;

圖5是本發(fā)明實施例的T2-Join計算軌跡的結(jié)構(gòu)示意圖;

圖6是本發(fā)明實施例的T3-Join計算軌跡的結(jié)構(gòu)示意圖;

圖7是本發(fā)明實施例的緩存匹配結(jié)果的結(jié)構(gòu)示意圖;

圖8是本發(fā)明實施例的緩存淘汰方法的流程示意圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合實施例和附圖,對本發(fā)明作進一步的詳細說明,本發(fā)明的示意性實施方式及其說明僅用于解釋本發(fā)明,并不作為對本發(fā)明的限定。

實施例

本實施例提供一種分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,所述分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理系統(tǒng)的結(jié)構(gòu)示意圖可參考圖1,包括查詢執(zhí)行引擎、緩存主控節(jié)點、備用節(jié)點以及至少一個緩存從節(jié)點。

在查詢請求到來時,查詢執(zhí)行引擎將SQL語句解析成由DAG表示的物理執(zhí)行計劃。物理執(zhí)行計劃中的每個節(jié)點代表一個物理任務(wù),物理任務(wù)又分為GetColumn、Join、Filter、Group和BuildRow等,每條邊代表兩個物理任務(wù)之間計算結(jié)果的傳輸關(guān)系。一條典型的查詢語句(SELECT A.id FROM A,B WHERE A.id=B.id AND A.id<=100AND B.id<=80)的物理執(zhí)行計劃如圖1所示。在緩存管理系統(tǒng)中,緩存數(shù)據(jù)的粒度是單個物理任務(wù)的計算結(jié)果。當(dāng)緩存是BuildRow的計算結(jié)果時,則緩存了整條SQL語句的最終查詢結(jié)果。本實施例采用緩存計算軌跡唯一標(biāo)識緩存。

首先,在緩存主控節(jié)點中建立緩存隊列,所述緩存隊列中每項元素對應(yīng)為一個物理任務(wù)的緩存元數(shù)據(jù)。如前所述,緩存數(shù)據(jù)的粒度是單個物理任務(wù)的計算結(jié)果,在最初建立緩存隊列時,所述緩存管理系統(tǒng)有足夠的存儲空間,因此,在接收到緩存請求時,直接將物理任務(wù)的計算結(jié)果存儲在緩存從節(jié)點中,將物理任務(wù)的緩存元數(shù)據(jù)作為緩存隊列的一個元素。

以每個物理任務(wù)為根節(jié)點切割其所在的物理執(zhí)行計劃以獲得每個物理任務(wù)對應(yīng)的緩存計算軌跡。具體地,請求緩存的每個物理任務(wù)均對應(yīng)有一個物理執(zhí)行計劃。在物理執(zhí)行計劃中,以該請求緩存的物理任務(wù)為根結(jié)點切割物理執(zhí)行計劃獲得子圖,該子圖就是根節(jié)點對應(yīng)的緩存計算軌跡。緩存計算軌跡記錄了從原始數(shù)據(jù)到生成該緩存的所有信息,包括每個節(jié)點的結(jié)果計算時間、結(jié)果存儲大小以及每條邊代表的數(shù)據(jù)傳輸時間。緩存計算軌跡的每個節(jié)點是一個特征點,所有特征點及其關(guān)系構(gòu)成緩存的特征。以圖2所示的物理執(zhí)行計劃為例,假如用戶要緩存T3-Join物理任務(wù)的計算結(jié)果,則以該物理任務(wù)節(jié)點為根節(jié)點,獲得對應(yīng)的緩存計算軌跡如圖3所示。

根據(jù)每個物理任務(wù)對應(yīng)的緩存計算軌跡在緩存主控節(jié)點中構(gòu)建緩存特征樹。所述緩存特征樹記錄了各個緩存的特征點及其關(guān)系,它根據(jù)表關(guān)系按層次結(jié)構(gòu)組織,層數(shù)代表該層涉及的表數(shù),最底層只涉及一張表。所述緩存特征樹的每個節(jié)點代表一個緩存特征點,特征點之間通過連線表示相互的依賴關(guān)系,一個緩存的特征是由一系列特征點及其關(guān)系構(gòu)成。

為了防止緩存數(shù)據(jù)和數(shù)據(jù)庫原始數(shù)據(jù)不一致,所述緩存特征樹中所有節(jié)點所涉及的表都擁有版本號,只有在表版本號一致的前提下才能進行匹配。用戶嘗試讀取或?qū)懭刖彺鏁r,輸入均包含涉及的表在當(dāng)前分布式數(shù)據(jù)庫中最新的版本號,當(dāng)緩存主控節(jié)點發(fā)現(xiàn)某個表的版本過期時,則刪除與該表有關(guān)的所有緩存。一個典型的緩存特征樹如圖4所示,其中,實線框表示該特征點描述的緩存存在,虛線框表示該特征點描述的緩存不存在,后者只是為了保證它所屬緩存的特征完整性。

在查詢請求到來時,查詢執(zhí)行引擎將SQL語句解析成物理執(zhí)行計劃,物理執(zhí)行計劃由一張物理任務(wù)DAG表示。本領(lǐng)域技術(shù)人員知曉查詢執(zhí)行引擎如何將SQL語句解析成物理執(zhí)行計劃,在此不再贅述。

從物理執(zhí)行計劃的根節(jié)點開始層次遍歷物理執(zhí)行計劃中每個節(jié)點,判斷每個物理任務(wù)對應(yīng)的緩存計算軌跡是否與所述緩存特征樹匹配。緩存匹配包括兩種情況:完全匹配和部分匹配。完全匹配是指請求的緩存計算軌跡中所有特征點及其關(guān)系都能在所述緩存特征樹中找到;部分匹配基本與完全匹配一致,唯一區(qū)別在于,緩存計算軌跡的根結(jié)點是所述緩存特征樹中某個特征點的子集。若匹配,直接從緩存從節(jié)點中讀取該物理任務(wù)的緩存實際數(shù)據(jù),否則計算該物理任務(wù)。

在圖4描述的緩存特征樹基礎(chǔ)上,以圖2描述的SQL語句(SELECT A.id FROM A,B WHERE A.id=B.id AND A.id<=100AND B.id<=80)為例,從物理執(zhí)行計劃根節(jié)點開始層次遍歷每個節(jié)點,對應(yīng)的緩存匹配步驟如下:

檢測T1-BuildRow是否命中緩存。T1-BuildRow的緩存計算軌跡就是整張DAG圖,從根結(jié)點開始層次掃描每個特征點是否命中,只要檢測到一個特征點未命中,則該任務(wù)未命中緩存。由于節(jié)點T1涉及兩張表AB,所以在特征樹的Level 2查找是否存在該特征點,實際結(jié)果是無,所以T1-BuildRow未命中緩存。

檢測T2-Join是否命中緩存。T2-Join的緩存計算軌跡如圖5所示,節(jié)點T2匹配緩存特征樹中的特征點2_1,節(jié)點T5匹配緩存特征樹中的特征點1_1,而節(jié)點T4是特征點1_5的子集,但關(guān)系(1_5,2_1)不存在,所以T2-Join未命中緩存。

檢測T3-Join是否命中緩存。T3-Join的緩存計算軌跡如圖6所示,節(jié)點T3匹配緩存特征樹中的特征點2_1,節(jié)點T6匹配緩存特征樹中的特征點1_2,而由前述可知節(jié)點T5匹配緩存特征樹中的特征點1_1,關(guān)系(T5,T3)匹配關(guān)系(1_1,2_1),關(guān)系(T6,T3)匹配關(guān)系(1_2,2_1),所以T3-Join完全匹配。

節(jié)點T4是特征點1_5的子集,即T4-GetColumn部分匹配,節(jié)點T5匹配特征點1_1,故T5-GetColumn完全匹配。節(jié)點T6匹配特征點1_2,即T6-GetColumn完全匹配。

上述步驟結(jié)束后,可以得到該SQL語句的緩存匹配結(jié)果如圖7所示。從圖7可以看出,查詢執(zhí)行引擎只需要計算T1和T2物理任務(wù),就可以完成整條SQL語句的查詢,極大地提高了查詢效率。

由于緩存管理系統(tǒng)的存儲空間是有限的,在存儲空間都被占用后,接收到新緩存的存儲請求時需要對現(xiàn)有的緩存進行淘汰。緩存淘汰是緩存管理系統(tǒng)的核心之一,決定緩存的換入換出,進而影響緩存的命中率和緩存服務(wù)的穩(wěn)定性。在本實施例中,所述緩存隊列中每項元素按權(quán)重從大到小的順序排列,隊尾權(quán)重最小。每次淘汰緩存時,均從隊尾彈出元素。

假設(shè)ti是第i項元素對應(yīng)的緩存計算軌跡中到根節(jié)點最長路徑的時間(單位:ms),mi是第i項元素實際所占的系統(tǒng)存儲空間(單位:Byte),ki是第i項元素對應(yīng)的存儲策略常量,不同的存儲策略,其讀取緩存數(shù)據(jù)的方式和時間都不同。第i項元素的時空比計算公式為:

假設(shè)di是第i項元素距離上一次命中的時間間隔(單位:ms),ni是第i項元素的歷史命中次數(shù),vi是第i項元素平均命中時間間隔(單位:ms)。第i項元素的命中頻率計算公式為:如果第i項元素是首次加入隊列,則Pi=1。

綜上所述,所述緩存隊列中第i項元素的權(quán)重計算公式為:Wi=qi×(a×Si+b×Pi)。其中,Wi為第i項元素的權(quán)重,qi為第i項元素對應(yīng)的物理任務(wù)的權(quán)重因子。第i項元素對應(yīng)的物理任務(wù)越復(fù)雜,第i項元素對應(yīng)的物理任務(wù)的權(quán)重因子qi的值越大。比如Join任務(wù)對應(yīng)的權(quán)重因子的值要比GetColumn任務(wù)對應(yīng)的權(quán)重因子的值大。默認(rèn)情況下,第i項元素對應(yīng)的物理任務(wù)的權(quán)重因子qi等于1.0。a和b均是常量,分別代表時空比和命中頻率對權(quán)重的影響因子。如果系統(tǒng)存儲空間比較小,則可以調(diào)大a的值,增加時空比對權(quán)重的影響,反之則調(diào)小a。

在本實施例中,為所述緩存隊列中每項元素設(shè)置一個對應(yīng)的引用計數(shù),代表正在使用該緩存的查詢操作個數(shù)。當(dāng)一項元素首次命中時,該項元素對應(yīng)的引用計數(shù)置1,并且啟動一個計時器,缺省值可以根據(jù)實際情況進行設(shè)置,例如30秒。如果在計時器超時前,緩存主控節(jié)點收到某條使用一項元素的SQL語句查詢完畢的反饋,則將該項元素對應(yīng)的引用計數(shù)減1,并重置計時器。在一項元素對應(yīng)的引用計數(shù)等于0時,則關(guān)閉計時器。計時器的作用在于防止查詢執(zhí)行引擎出現(xiàn)故障,導(dǎo)致緩存主控節(jié)點無法收到查詢完畢的反饋。

緩存被淘汰時,假如被淘汰緩存對應(yīng)的引用計數(shù)不為0,說明仍有查詢操作在使用該緩存,如果立即刪除該緩存,可能導(dǎo)致查詢執(zhí)行引擎獲取緩存失敗,耗費多余時間進行任務(wù)故障恢復(fù)。被淘汰的緩存僅僅被標(biāo)記為待刪除,等到引用計數(shù)為0時才真正被刪除。

圖8是本發(fā)明實施例的緩存淘汰方法的流程示意圖,當(dāng)系統(tǒng)收到一個新緩存的存儲請求時,緩存主控節(jié)點進行如下步驟:

步驟S1,更新所述緩存隊列中每項元素的權(quán)重。由于緩存隊列中每項元素距離上一次命中的時間間隔會隨著時間推移增大,所以需要先更新緩存隊列中每項元素的權(quán)重。

步驟S2,判斷所述緩存管理系統(tǒng)當(dāng)前剩余空間是否足以存儲新緩存。

若所述緩存管理系統(tǒng)當(dāng)前剩余空間足以存儲新緩存,執(zhí)行步驟S3,緩存主控節(jié)點通知緩存從節(jié)點存儲新緩存,將新緩存元數(shù)據(jù)放入所述緩存隊列,并在所述緩存特征樹中記錄新緩存對應(yīng)的緩存計算軌跡。

若所述緩存管理系統(tǒng)當(dāng)前剩余空間不足以存儲新緩存,執(zhí)行步驟S4,判斷新緩存的權(quán)重是否大于所述緩存隊列中最后一項元素的權(quán)重。

若新緩存的權(quán)重不大于所述緩存隊列中最后一項元素的權(quán)重,執(zhí)行步驟S5,緩存主控節(jié)點通知緩存從節(jié)點拒絕存儲新緩存。

若新緩存的權(quán)重大于所述緩存隊列中最后一項元素的權(quán)重,執(zhí)行步驟S6,判斷是否仍有查詢操作正在使用所述緩存隊列中最后一項元素,即判斷所述緩存隊列中最后一項元素對應(yīng)的引用計數(shù)是否為0。

若仍有查詢操作正在使用所述緩存隊列中最后一項元素,執(zhí)行步驟S7,將所述緩存隊列中最后一項元素標(biāo)記為待刪除。待所述緩存隊列中最后一項元素對應(yīng)的引用計數(shù)為0時,再將所述緩存隊列中最后一項元素刪除。

若無查詢操作正在使用所述緩存隊列中最后一項元素,執(zhí)行步驟S8,緩存主控節(jié)點刪除所述緩存隊列中最后一項元素,回收所述緩存管理系統(tǒng)中被淘汰緩存占用的存儲空間,從所述緩存特征樹中刪除所述緩存隊列中最后一項元素對應(yīng)的緩存計算軌跡,并轉(zhuǎn)到步驟S2。

以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1