TWI819943B - 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 - Google Patents
資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 Download PDFInfo
- Publication number
- TWI819943B TWI819943B TW111150982A TW111150982A TWI819943B TW I819943 B TWI819943 B TW I819943B TW 111150982 A TW111150982 A TW 111150982A TW 111150982 A TW111150982 A TW 111150982A TW I819943 B TWI819943 B TW I819943B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- data
- data index
- index value
- hash
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004590 computer program Methods 0.000 title claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims description 48
- 230000015654 memory Effects 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 27
- 239000000284 extract Substances 0.000 claims description 8
- 230000007717 exclusion Effects 0.000 claims description 7
- 238000003491 array Methods 0.000 abstract 2
- 230000000875 corresponding effect Effects 0.000 description 55
- 230000006870 function Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Container Filling Or Packaging Operations (AREA)
Abstract
一種產生資料索引值的裝置、方法及其電腦程式產品被揭露於此。該裝置將一筆資料的鍵值劃分為第一長度的多個位元區段,並將該等位元區段與一組第一係數陣列值兩兩相乘並進行互斥或運算,以自結果中擷取出第二長度的位元作為指示值。該裝置接著根據該指示值,自多組第二係數陣列中決定一組候選係數陣列,並將該組候選係數陣列與該等位元區段兩兩相乘並進行互斥或運算,產生第二雜湊值,並以第一和第二雜湊值組合出該筆資料的間接資料索引值。於此系統中,第一係數陣列和第二係數陣列均可隨著資料集的變化而動態調整以達到完美雜湊的計算。
Description
本揭露是關於一資料索引值產生裝置、資料索引值產生方法及其數位電路所對應的電腦程式產品。更具體而言,本揭露是關於可用於實作完美雜湊的資料索引值產生裝置、資料索引值產生方法及其數位電路所對應的電腦程式產品。
完美雜湊(perfect hashing)是常被應用於資料內容/項目固定的資料索引(indexing)方法,其可藉由設計兩階層的雜湊函數來實現。所述兩階層中的第一階層具有一個雜湊函數,第二階層則具有數十個、數百個、甚至更多的雜湊函數,其具體數量乃依系統所需進行資料索引的資料總數而定。第一階層的雜湊函數根據輸入資料的索引關鍵碼(key)計算後續應使用第二階層的多個雜湊函數中的何者,第二層的各雜湊函數則根據索引關鍵碼計算出最終的索引值(index)。由上述內容可知,完美雜湊之實作效率取決於各層產生雜湊值的速度。此外,完美雜湊在例如密碼學及後台密碼管理等應用上均扮演了重要角色,故完美雜湊的實作效率將直接地影響這些技術及應用的運作效率。
無論是第一層或第二層的雜湊函數「h i (k)」,均是採「h i (k)=((a i k+b i )% p i )」之形式,其中,「i」為零至「m-1」的整數,「k」為輸入資料之鍵值,「m」為兩個階層的雜湊函數總數量,「%」為模除運算,而「a i 」、「b i 」、「p i 」則為雜湊函數之參數。原則上,雜湊函數「h i (k)」所計算出的數值須足夠接近亂數,方能有效地降低計算出的索引值發生碰撞(collision)的機率。因此,「a i 」通常須為一個較大的質數,加上鍵值「k」本身也可能是一個很大的值(例如:數十至數百位元),此表示雜湊函數「h i (k)」在計算雜湊值時常涉及諸多長整數的運算(例如:長整數的乘法)。因此,當採用現場可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)電路或客製化電路來實現上述的完美雜湊時,勢需採用支援長位元運算的邏輯元件(例如:長整數的乘法器),惟此種實作方式於計算各層的雜湊值均相當耗時,另外,在針對特定一個資料集合搜尋完美雜湊係數所需的複雜度也會較高,致使完美雜湊整體的運作效率不甚理想。有鑑於此,如何提供一種效率更佳的資料索引方式,並進一步提供一種高效的完美雜湊實作方案,實為本發明所屬技術領域中亟待解決的技術問題。
為了至少解決上述問題,在某些實施例中,本發明提供一種資料索引值產生裝置。該資料索引值產生裝置可包含一儲存器以及與該儲存器電性連接的一數位計算電路。該儲存器可用以儲存一組第一係數以及複數組第二係數。當所需要索引的資料集合S1改變時,該組第一係數及該複數組第二係數可被動態地更改,以達到完美雜湊的計算。該數位計算電路可用以將一鍵值劃分為具有第一長度的複數個位元區段,並且對應地將該複數個位元區段與該組第一係
數相乘,藉此產生複數個第一乘積。該鍵值可對應至一筆第一資料。此外,該數位計算電路還可用以針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值。該數位計算電路尚可用以根據該指示值,自該複數組第二係數中決定一組候選係數,並對應地將該組候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積,以及針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值。
在某些實施例中,本發明還提供一種資料索引值產生方法。該資料索引值產生方法可包含下列步驟:由一電子計算裝置,將一鍵值劃分為具有第一長度的複數個位元區段,其中該鍵值對應至一筆第一資料;由該電子計算裝置,對應地將該複數個位元區段與一組第一係數相乘,藉此產生複數個第一乘積;由該電子計算裝置,針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值;由該電子計算裝置,根據該指示值,自複數組第二係數中決定一組候選係數,並對應地將該組候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積;以及
由該電子計算裝置,針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值。
在某些實施例中,本發明還提供一種電腦程式產品。該電腦程式產品經一電子計算裝置載入後,該電子計算裝置可執行下列指令:將一鍵值劃分為具有第一長度的複數個位元區段,其中該鍵值對應至一筆第一資料;對應地將該複數個位元區段與一組第一係數相乘,藉此產生複數個第一乘積;針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值;根據該指示值,自複數組第二係數中決定一組候選係數,並對應地將該組候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積;以及針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值。
綜上所述,本發明提供了一種資料索引值產生裝置及資料索引值產生方法,其藉由將鍵值「k」劃分為複數個位元區段的短整數,使得原先上述之鍵值「k」與係數「a i 」的長整數乘法運算被轉換為多個可同步或平行進行的短整數乘法。因此,當以FPGA電路或客製化電路的形式實作本發明時,均只需以支援短整數運算的邏輯元件(例如:8位元乘法器)便可成功地實作出,且雜湊函數的各項參數還可使用分散式記憶體(distributed memory)儲存,顯著地提升
了計算的平行度及動態重算雜湊對映時的彈性。因此,無論是在針對特定的資料/鍵值集合嘗試找出完美雜湊的對應參數組合,抑或是在針對未知的資料/鍵值進行雜湊處理,本發明均可有效地減少產生雜湊值的所需時間。習知的完美雜湊技術在根據所需要的資料集合計算出雜湊函數之係數後,即會固定使用相同的係數而不再修改。本發明所提供的資料索引值產生裝置、資料索引值產生方法及其電腦程式產品則屬於適合在可程式化的數位邏輯電路裝置上(如FPGA)施作的可快速動態施作完美雜湊函數的方案。據此,本發明確實提供了一種效率更佳的雜湊值產生方式,同時也提供了一種效率更佳的完美雜湊實作方式,而效率更佳的完美散列實作方式也使得電腦在處理密碼學應用及管理後台密碼時可擁有更佳的運作效率,進而節約電腦使用者的時間並提升該使用者的體驗。
本發明除了可迅速且有效地解決上述問題之外,藉由提出基於檢查值而針對非法鍵值(即,非屬於上述特定資料/鍵值集合的其他資料/鍵值)進行過濾的機制,還帶來了針對非法鍵值的容錯能力。再者,藉由提出索引值映射的機制,本發明甚至進一步提供了可動態更新索引值的完美雜湊實作方式。
此發明內容段落整體地敘述了本發明的核心概念,並涵蓋了本發明可解決的問題、可採用的手段以及可達到的功效,以提供本發明所屬技術領域中具有通常知識者對本發明的基本理解。然而,應理解,此發明內容段落並非有意概括本發明的所有實施例,而僅是以一簡單形式來呈現本發明的核心概念,以作為隨後詳細描述的一個引言。以下結合圖式闡述本發明之詳細技術及實施方式,俾使本發明所屬技術領域中具有通常知識者能理解所請求保護之發明之技術特徵。
如下所示:
1:資料索引值產生裝置
11:儲存器
12:數位計算電路
13:收發器
14:I/O介面
2:資料索引值產生模組
6:資料索引值產生方法
601~605:步驟
A11:第一雜湊模組
A21、A22、A2r:第二雜湊模組
AD1、AD2、AD3:記憶體位址
B1、B2、Br:候選資料索引值
C11、C12、C1x:第一係數
C21、C22、C2x:第二係數
CC1:連接運算模組
CV1:檢查值
CV2:合法檢查值
D1、D2、D3:資料
E1:索引值映射模組
EX1:檢查值計算模組
H11:第一雜湊值
H21:第二雜湊值
ID1、ID2、ID3:資料索引值
IN1:指示值
K1:鍵值
K11、K12、K1x:位元區段
M1、M2、Mx:乘法器
MU1:多工器模組
P11、P12、P1x、P21、P22、P2x:乘積
S1:資料集合
T1:索引值映射表
T2:檢查值對應表
如下所示:第1圖為描繪根據本發明的一或多個實施例的資料索引值產生裝置的示意圖。
第2圖為描繪第1圖所示的資料索引值產生裝置根據鍵值產生索引值所依據的模組架構的示意圖。
第3圖為描繪第1圖所示的資料索引值產生裝置中可採用的第一雜湊模組示意圖。
第4圖為描繪第1圖所示的資料索引值產生裝置可採用的第二雜湊模組的示意圖。
第5圖為描繪第1圖所示的資料索引值產生裝置根據資料索引值而將資料儲存於特定記憶體位址的示意圖。
第6圖為描繪根據本發明的一或多個實施例的資料索引值產生方法的流程圖。
第1圖~第6圖所示內容僅是作為說明本發明的實施例的範例,而非為了限制本發明的保護範圍。
以下將透過實施方式來解釋本發明所提供之資料索引值產生裝置、資料索引值產生方法及其電腦程式產品。然而,該等實施方式並非用以限制本發明須在如該等實施方式所述之任何環境、應用或方式方能實施。因此,關於實施方式之說明僅為闡釋本發明之目的,而非用以限制本發明之範圍。應理解,
在以下實施方式及圖式中,與本發明非直接相關之元件已省略而未繪示,且各元件之尺寸以及元件間之尺寸比例僅為例示而已,而非用以限制本發明之範圍。
參照第1圖,本揭露的第一實施方式為一種資料索引值產生裝置1,其可以是或包含各種類型之具有運算能力的計算裝置,並且可被實作為例如(但不限於)FPGA裝置、特定應用積體電路(application specific integrated circuit,ASIC)裝置、桌上型電腦、筆記型電腦、伺服器、行動電話。整體而言,資料索引值產生裝置1可用以針對特定的一組資料(例如:第1圖中所示的資料集合S1)中的各筆資料進行完美雜湊處理,產生不會發生一般雜湊計算時會出現的碰撞問題的資料索引值,並且據以將各筆資料儲存於對應的記憶體位址。倘若使用者欲存取該組資料中的特定一筆資料,則可透過提供對應的鍵值而自記憶體中檢索出該筆資料。又倘若使用者掌握特定的一鍵值,也可透過該鍵值而確認記憶體中是否存在對應的資料。本揭露提供的資料索引值產生裝置1尤其適合用以實作符合完美雜湊要求的一資料索引系統。
資料索引值產生裝置1基本上可包含一儲存器11以及與儲存器11電性連接的一數位計算電路12,且儲存器11、數位計算電路12之間的電性連接可以是直接的(即沒有透過其他元件而彼此連接)或是間接的(即透過其他元件而彼此連接)。
儲存器11可用以儲存資料索引值產生裝置1所產生的資料、外部裝置傳入的資料、或由使用者自行輸入的資料。以FPGA電路的施作為例,儲存器11可包含邏輯函數表(lookup table,LUT)邏輯元件、正反器(Flip-flop)、靜態隨機存取記憶體(SRAM)等等第一級記憶體,以及高頻寬記憶體(high bandwidth memory,HBM)或動態隨機存取記憶體(DRAM)等第二級記憶體。
數位計算電路12可以是以FPGA或ASIC所實作的處理晶片。所述數位計算電路的特點在於可高速地進行客製化的平行計算以及平行資料讀取。
在某些實施例中,資料索引值產生裝置1還可包含與儲存器11及數位計算電路12電性連接的一收發器13,其可包含一傳送器(transmitter)與一接收器(receiver)。以無線通訊為例,收發器13可包含但不限於:天線、放大器、調變器、解調變器、偵測器、類比至數位轉換器、數位至類比轉換器等通訊元件。以有線通訊為例,收發器13可以是例如但不限於:一十億位元乙太網路收發器(gigabit Ethernet transceiver)、一十億位元乙太網路介面轉換器(gigabit interface converter,GBIC)、一小封裝可插拔收發器(small form-factor pluggable (SFP)transceiver)、一百億位元小封裝可插拔收發器(ten gigabit small form-factor pluggable(XFP)transceiver)等。
在某些實施例中,資料索引值產生裝置1還可包含與儲存器11及數位計算電路12電性連接的一輸入/輸出(即,I/O)介面14,以讓使用者透過操作與I/O介面14相連接的I/O裝置而提供所欲進行資料索引及儲存處理的資料。所述之I/O裝置可為例如(但不限於):滑鼠、觸控板、鍵盤、觸控螢幕、手寫板等裝置(亦即,使用者可藉由操作這些裝置而產生及/或輸入資料),而該I/O介面則可為相應於該I/O裝置的各式資料傳輸介面,例如(但不限於):USB、Thunderbolt、Lightning、HDMI等等。
資料集合S1可包含複數筆資料D1、D2、D3...,且各筆資料可具有對應的一鍵值(key)。舉例而言,資料集合S1可為用於蒐羅各使用者的個人資訊的一集合,相應地,資料集合S1中的各筆資料可包含各使用者的居住地址、
電話號碼、電子郵件地址、或其他個人資訊,而各筆資料所對應的鍵值則可為對應的使用者的姓名、編號、或其他代表資訊。
以下將以資料D1作為範例,說明資料索引值產生裝置1如何為資料D1產生對應的資料索引值ID1並據以將資料D1儲存於記憶體中的特定位址。本發明所屬技術領域中具有通常知識者根據針對資料D1的敘述可理解資料索引值產生裝置1如何針對資料D2、D3進行相應的處理,進而產生對應的資料索引值ID2、ID3。因此,相同的內容將不贅述。
參照第2圖,整體而言,資料索引值產生裝置1為資料D1產生對應的資料索引值之流程可透過一個模組或複數個模組的組合來實現,例如第2圖中所示的資料索引值產生模組2。資料索引值產生模組2所呈現的邏輯功能實質上可由資料索引值產生裝置1中的儲存器11、數位計算電路12、收發器13及/或I/O介面14等元件依據本文針對資料索引值產生模組2所敘述的特定的邏輯規劃進行互動所完成。儲存器11可儲存資料索引值產生模組2,而數位計算電路12則可運行資料索引值產生模組2,進而自行執行及/或指揮其他元件執行相應的動作。
資料索引值產生模組2可包含複數個雜湊模組以及一多工器模組MU1。該複數個雜湊模組可構成一雙層雜湊架構,其第一層具有一第一雜湊模組A11,第二層則具有複數個第二雜湊模組A21、A22、...、A2r。各個雜湊模組均可對應至一個雜湊函數。
整體而言,與資料D1相應的一鍵值K1可被提供至第一雜湊模組A11以及第二雜湊模組A21~A2r中的每一者。相應地,第一雜湊模組A11可輸出一指示值IN1,第二雜湊模組A21~A2r則可輸出複數個候選資料索引值B1、B2、...、Br。多工器模組MU1可耦合至第一雜湊模組A11以及第二雜湊模組A21
~A2r,且在多工器模組MU1中,數位計算電路12可根據第一雜湊模組A11輸出的指示值IN1,相應地選擇第二雜湊模組A21~A2r其中一者所輸出的候選資料索引值做為一資料索引值ID1。
所述第二雜湊模組A21~A2r的數量可視所欲進行資料索引處理的資料筆數(例如:資料集合S1的資料筆數)而定。由於第二層之雜湊處理不能產生碰撞,一有碰撞發生,就必需重新搜尋零碰撞的雜湊係數。所以第二雜湊模組的數目越多,需要處理碰撞的機率也會越小,搜尋零碰撞的雜湊係數所需的時間就越短,系統在執行時的平均效率就越高。
接著同時參照第3圖與第4圖。第一雜湊模組A11以及第二雜湊模組A21~A2r中的每一者均可具有相同的架構。詳言之,在第一雜湊模組A11以及第二雜湊模組A21~A2r中的每一者中,數位計算電路12均可將輸入的鍵值K1劃分為具有一第一長度的複數個位元區段K11、K12、...、K1x,而各個雜湊模組中均可包含與位元區段K11~K1x分別對應的複數個乘法器M1、M2、...、Mx。位元區段K11~K1x與乘法器M1~Mx的數量可視使用者所設計採用的乘法器的運算量而定。具體而言,當採用的是n位元的乘法器,且鍵值K1的長度為m位元時,則數位計算電路12可將鍵值K1劃分為個位元區段。在某些實施例中,位元區段K11~K1x中的每一者均可為例如(但不限於)8位元的短整數,但不以此為限,且可根據實際需求而增加或減少。
在某些實施例中,倘若鍵值K1的長度無法為所欲劃分的位元區段數量所整除,則數位計算電路12還可針對長度不足的最後一個位元區段進行二進位的補零處理。
第一雜湊模組A11以及第二雜湊模組A21~A2r中的每一者均可具有對應的一組係數(即「c i 」),各組係數可用以和對應的位元區段相乘,例如第3圖中所示與第一雜湊模組A11對應的一組第一係數C11、C12、...、C1x,或是第4圖中所示與第二雜湊模組A21對應的一組第二係數C21、C22、...、C2x。
各雜湊模組相應的該組係數可被儲存於儲存器11中。第一雜湊模組A11以及第二雜湊模組A21~A2r之間的差異即在於乘法器所使用的係數組合,不同的係數組合使得各雜湊模組即便輸入相同(均為一關鍵值K1),其輸出仍可彼此不同。
如第3圖所示,在第一雜湊模組A11中,數位計算電路12可藉由乘法器M1~Mx而將位元區段K11~K1x分別與第一係數C11~C1x相乘,進而獲得相應的複數個乘積P11、P12、...、P1x。接著,在第一雜湊模組A11中,數位計算電路12可迭代地將乘積P11~P1x任取二者進行互斥或(XOR)運算,直到獲得最終的一互斥或結果,並將其做為一第一雜湊值H11。第一雜湊模組A11中可包含複數個互斥或邏輯閘以實現上述之互斥或運算,惟為便於呈現,第3圖中僅概念性地表示互斥或運算之整體存在。
有鑑於第一雜湊模組A11的輸出係被提供至多工器模組MU1做為選擇第二雜湊模組的依據,故於產生第一雜湊值H11之後,數位計算電路12於第一雜湊模組A11中可根據第二雜湊模組的數量而在第一雜湊值H11中相應地擷取具有第二長度的複數個位元做為指示值IN1,以讓指示值IN1的數值範圍可正
確且一對一地涵蓋所有第二雜湊模組。舉例而言,若第二雜湊模組的數量為「r」個,且該第二長度為「q」個位元,則「q」與「r」的關係可為「q=log2 r」,亦即「r=2 q 」。
在某些實施例中,該第二長度可與第一雜湊值H11的長度相同。換言之,數位計算電路12可不特地擷取第一雜湊值H11的局部位元,而是直接以第一雜湊值H11來做為指示值IN1。
實務上,該第二長度與第二雜湊模組的該數量當中的任一者可用以決定另一者。舉例而言,倘若先確定了第二雜湊模組的數量為四個,則數位計算電路12可據以決定該第二長度為2位元。相反地,也可先確定該第二長度為2位元,接著才設計資料索引值產生模組2具有四個第二雜湊模組。
另一方面,如第4圖所示,在第二雜湊模組A21中,數位計算電路12可藉由乘法器M1~Mx而將位元區段K11~K1x分別與第二係數C21~C2x相乘,進而獲得相應的複數個乘積P21、P22、...、P2x。接著,在第二雜湊模組A21中,數位計算電路12可迭代地將乘積P21~P2x任取二者進行互斥或運算,直到獲得最終的一互斥或結果,並將其做為一第二雜湊值H21。第二雜湊模組A21中可同樣包含複數個互斥或邏輯閘以實現上述之互斥或運算,惟為便於呈現,第4圖中僅概念性地表示互斥或運算之整體存在。
於產生第二雜湊值H21之後,在第二雜湊模組A21中,數位計算電路12可進一步根據針對儲存位址針對資料索引值的格式需求(例如:儲存資料的陣列大小所對應的資料索引值範圍)而自第二雜湊值H21中擷取具有第三長度的複數個位元做為第二雜湊模組A21輸出的候選資料索引值B1。
由於第二雜湊模組A21~A2r均具有相同的架構,其間之差異僅在於對應的係數組合不同,因此本文僅以第二雜湊模組A21做為代表性的示例。本發明所屬技術領域中具有通常知識者根據本文針對第二雜湊模組A21的敘述以及第4圖自可理解第二雜湊模組A22~A2r相應的架構及運算。
同時參照第2圖~第4圖,茲假設第一雜湊模組A11所輸出的指示值IN1係指示應選擇第二雜湊模組A21~A2r中的第一個第二雜湊模組A21(例如:指示值IN1的數值為「01」),此時於多工器模組MU1中,數位計算電路12便會以第二雜湊模組A21所輸出的候選資料索引值B1做為所輸出的資料索引值ID1。至於資料索引值產生裝置1為資料D2~D3產生對應的資料索引值ID2~ID3的處理方式,如前所述,其與為資料D1產生對應的資料索引值ID1的方式相仿,故將不再贅述。
根據第2圖與第4圖所示之內容可得出以下結論:由於第二雜湊模組A21~A2r的每一者均有對應的一組第二係數,故前述由數位計算電路12在多工器模組MU1中根據第一雜湊模組A11輸出的指示值IN1而相應地選擇一個第二雜湊模組所輸出的候選資料索引值(例如:第二雜湊模組A21所輸出的候選資料索引值B1)做為第一資料索引值ID1之行為,實質上可相當於在該複數組第二係數中選擇出一組候選係數來與各個位元區段相乘,進而產生資料索引值ID1。
在某些實施例中,數位計算電路12可針對各個雜湊模組進行完美雜湊之對映計算。更具體而言,數位計算電路12可隨機決定第一係數C11~C1x與該複數組第二係數(即,第二係數C21~C2x以及對應至第二雜湊模組A22~A2r的複數組第二係數)的數值,並且計算資料D1~D3所對應的複數個資料索引值ID1~ID3。只要針對資料D1~D3所計算出的資料索引值ID1~ID3彼此有重複
(即,發生碰撞),則數位計算電路12便可再次隨機決定第一係數C11~C1x與該複數組第二係數的數值,並且可重複執行隨機決定係數以及計算資料索引值之動作,直到該複數個資料索引值彼此不同。藉此,數位計算電路12便可決定出針對資料集合S1符合完美雜湊的該組第一係數與該複數組第二係數。
在某些實施例中,資料索引值產生模組2還可包含一連接(concatenate)運算模組CC1。連接運算模組CC1可耦合至多工器模組MU1的輸出端,且數位計算電路12可藉由連接運算模組CC1的邏輯功能進一步針對指示值IN1與資料索引值ID1進行一連接運算,並將連接的結果用以更新資料索引值ID1。質言之,在這些實施例中,更新後的資料索引值ID1相當於是將指示值IN1與原資料索引值ID1進行串接所得到的結果。
在某些實施例中,儲存器11還可儲存一索引值映射表T1,其可記錄所有可能由資料索引值產生模組2產生的資料索引值形成的一資料索引值集合與另一個資料索引值集合之間的對應關係。相應地,資料索引值產生模組2還可包含一索引值映射模組E1,其可耦合至多工器模組MU1或連接運算模組CC1的輸出端。於索引值映射模組E1中,數位計算電路12可根據索引值映射表T1的邏輯功能而再進一步地更新原資料索引值ID1(或進一步更新與指示值IN1連接後的資料索引值ID1)。
索引值映射表T1的其中一種設計目的在於當資料集合S1的內容出現更動時,針對重新算出的第一係數和第二係數所新計算出的索引值,可藉由更新索引值映射表T1使得仍可透過該索引值成功地存取資料,而無需實質搬動資料的儲存位址來符合新的完美雜湊計算結果。換言之,藉由此資料索引值映射的機制,資料索引值產生裝置1可動態地重新計算完美雜湊對映的指標陳列資料
結構,而無需在重新計算完美雜湊函數後,對資料儲存位址進行搬移重排以配合新雜湊函數算出的索引值。倘若資料索引值產生裝置1係被應用於需要經常更新資料集合S1內容的情境,則此機制可有效地提升重新計算完美雜湊對映之速度。在FPGA電路中,可採用FPGA的SRAM或邏輯函數表(lookup table,LUT)等邏輯單元來實作索引值映射表T1。
上述內容係針對資料集合S1及其對應的鍵值所進行的資料索引流程。經此流程之處理,如實作完美雜湊則可確保資料集合S1中的各筆資料在資料索引值產生裝置1的雜湊處理中不會出現資料碰撞的情況。然而,在實際之應用情境中,被輸入的資料及其鍵值可能不屬於資料集合S1(亦即,非法的資料/鍵值),因此本發明還提出一種非法鍵值的過濾方案。具體而言,在某些實施例中,資料索引值產生模組2還可包含一檢查值計算模組EX1,其可耦合至多工器模組MU1、連接運算模組CC1、或索引值映射模組E1的輸出端。於檢查值計算模組EX1中,針對由多工器模組MU1所輸出的資料索引值ID1,或是經連接運算模組CC1、或索引值映射模組E1所更新過的資料索引值ID1,數位計算電路12均可為其計算對應的一檢查值CV1。相應地,儲存器11還可儲存一檢查值對應表T2,其可記錄資料索引值產生模組2可能產生的所有資料索引值(包含資料索引值ID1)在檢查值計算模組EX1的運算邏輯下所各自對應的合法檢查值,其中包含由資料索引值ID1所對應的一合法檢查值CV2。所述合法檢查值是數位計算電路12在完美雜湊之對映計算時,對每一個登錄的合法鍵值(例如:資料集合S1中的各筆資料所對應的鍵值)所計算出的檢查值。
接著,數位計算電路12可確認為資料索引值ID1所計算的檢查值CV1與資料索引值ID1在檢查值對應表中所對應的合法檢查值CV2是否相同。若
是,則判定所輸入的關鍵值K1對應的資料D1是合法的資料;若否,則判定關鍵值K1對應的資料D1是非法的資料,且數位計算電路12後續將不會把資料D1以及其與資料索引值ID1的對應關係儲存於儲存器11中。
數位計算電路12於檢查值計算模組EX1中計算檢查值的方式可以是各式已知的數值轉換方式,例如但不限於:與第一雜湊模組A11或第二雜湊模組A21~A2r相同或不同的另一雜湊函數、霍夫曼編碼等等。在某些實施例中,數位計算電路12甚至可直接以所輸入的鍵值(例如:鍵值K1)作為對應的資料索引值的檢查值。
參照第5圖,於確認資料索引值ID1~ID3之後,數位計算電路12便可根據資料索引值產生模組2所算出、或是經過索引值映射表T1所查出的資料索引值ID1~ID3(例如:以各資料索引值做為一陣列的索引值)而分別將資料D1~D3儲存於儲存器11中特定的一記憶體位址AD1、AD2、AD3處,並且分別為資料索引值ID1~ID3與資料D1~D3以及記憶體位址AD1~AD3建立一關聯。藉此,未來使用者便可透過對應的鍵值而呼叫或存取正確的資料。
本發明提供的是一種產生資料索引值的一架構,使用者根據本架構實作完美雜湊時可獲得更快的效率。然而,本架構所帶來之好處未必僅限於減少在實作完美雜湊時找出相應係數的運算量,實際上,歸功於將鍵值劃分成複數個位元區段之手段,將傳統循序的長整數運算改用短位元的平行計算來提高計算效率。凡涉及為特定資料之鍵值計算對應之資料索引值,其運算延遲皆可因長整數運算數量的減少而相對地降低。
上述資料索引值產生裝置1針對資料D11進行資料索引處理的流程可透過FPGA電路實作出。由於FPGA電路的結構屬於本發明所屬技術領域中
的通常知識,故本發明所屬技術領域中具有通常知識者可根據本文針對資料索引值產生裝置1所敘述的動作而理解對應FPGA電路的結構為何。
參照第6圖,本揭露的一第二實施方式為一種資料索引值產生方法6。資料索引值產生方法6可包含下列步驟:由一電子計算裝置,將一關鍵值劃分為具有第一長度的複數個位元區段,其中該關鍵值對應至一筆第一資料(標示為601);由該電子計算裝置,對應地將該複數個位元區段與一組第一係數相乘,藉此產生複數個第一乘積(標示為602);由該電子計算裝置,針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值(標示為603);由該電子計算裝置,根據該指示值,自複數組第二係數中決定一組候選係數,並將該候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積(標示為604);以及由該電子計算裝置,針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值(標示為605)。
在某些實施例中,關於資料索引值產生方法6,該電子計算裝置可以是藉由一第一雜湊模組而根據該鍵值產生該指示值,且該電子計算裝置可以是藉由一多工器模組而根據該指示值自複數個第二雜湊模組中決定出一個候選雜湊電路,並藉由該候選雜湊模組而根據該鍵值產生該第一資料索引值。此外,該多工器模組可與該第一雜湊模組以及該複數個第二雜湊模組耦合。在某些實
施例中,如該第二長度為q個位元,則該複數個第二雜湊模組的數量可為2的q次方個。
在某些實施例中,資料索引值產生方法6還可包含下列步驟:由該電子計算裝置,根據該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的一特定記憶體位址。在某些實施例中,資料索引值產生方法6還可進一步包含下列步驟:由該電子計算裝置,根據一索引值映射表以及該第一資料索引值或更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的該特定記憶體位址。此外,在某些實施例中,資料索引值產生方法6還可更進一步包含下列步驟:由該電子計算裝置,計算該第一資料索引值或更新後的該第一資料索引值對應的一檢查值;以及由該電子計算裝置,確認該檢查值是否記載在一檢查值對應表中,並據以判斷該鍵值是否為合法的鍵值。
在某些實施例中,資料索引值產生方法6還可包含下列步驟:由該電子計算裝置,針對該指示值與該第一資料索引值進行一連接運算,藉此更新該第一資料索引值;以及由該電子計算裝置,根據更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的一特定記憶體位址。在某些實施例中,資料索引值產生方法6還可進一步包含下列步驟:由該電子計算裝置,根據一索引值映射表以及該第一資料索引值或更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的該特定記憶體位址。此外,在某些實施例中,資料索引值產生方法6還可更進一步包含下列步驟:由該電子計算裝置,計算該第一資料索引值或更新後的該第一資料索引值對應的一檢查值;以及由該電子計算裝置,確認該檢查值是否記載在一檢查值對應表中,並據以判斷該鍵值是否為合法的鍵值。
在某些實施例中,關於資料索引值產生方法6,該電子計算裝置還可儲存包含該筆第一資料的複數筆目標資料。此外,資料索引值產生方法6還可包含下列步驟:由該電子計算裝置,反覆地隨機決定該組第一係數與該複數組第二係數的數值,並且計算該複數筆目標資料所對應的複數個資料索引值,直到該複數個資料索引值彼此不同,藉此決定該組第一係數與該複數組第二係數,其中該複數個資料索引值包含該第一資料索引值;以及由該電子計算裝置,根據該複數個資料索引值,將該複數筆資料儲存於該電子計算裝置中的複數個特定記憶體位址。
資料索引值產生方法6的每一個實施例基本上都會與資料索引值產生裝置1的某一個實施例相對應。因此,僅根據上文針對資料索引值產生裝置1的說明,本發明所屬技術領域中具有通常知識者即已能充分瞭解且實現資料索引值產生方法6的所有相應的實施例,即使上文未針對資料索引值產生方法6的每一個實施例進行詳述。
本揭露的一第三實施方式為根據第二實施方式中的資料索引值產生方法6所實作之一電腦程式產品。當該電腦程式產品被讀入一電子計算裝置時,該電子計算裝置將執行第二實施方式所述之資料索引值產生方法6之各個實施例的相應步驟。電腦程式產品係指載有電腦可讀取之程式且不限外在形式之物,例如但不限於:一非暫態有形機器可讀媒介(non-transitory tangible machine-readable medium),例如(但不限於)一唯讀記憶體(read-only memory,ROM)、一快閃記憶體(flash memory)、一磁碟片(floppy disk)、一行動硬碟、一磁帶
(magnetic tape)、網路資料庫、雲端節點、或任何其他為本發明所屬技術領域中具有通常知識者所熟知且具有相同功能的電腦軟體儲存媒介。
上述實施方式僅用來例舉本發明之部分實施態樣,以及闡釋本發明之技術特徵,而非用來限制本發明之保護範疇及範圍。任何本發明所屬技術領域中具有通常知識者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,而本發明之權利保護範圍以申請專利範圍為準。
6:資料索引值產生方法
601~605:步驟
Claims (25)
- 一種資料索引值產生裝置,包含:一儲存器,用以儲存一組第一係數以及複數組第二係數;以及一數位計算電路,與該儲存器電性連接,且用以:將一鍵值劃分為具有第一長度的複數個位元區段,其中該鍵值對應至一筆第一資料;對應地將該複數個位元區段與該組第一係數相乘,藉此產生複數個第一乘積;針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值;根據該指示值,自該複數組第二係數中決定一組候選係數,並對應地將該組候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積;以及針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值。
- 如請求項1所述之資料索引值產生裝置,其中:該數位計算電路是藉由一第一雜湊模組而根據該鍵值產生該指示值;且該數位計算電路是藉由一多工器模組而根據該指示值自複數個第二雜湊模組中決定出一個候選雜湊電路,並藉由該候選雜湊模組而根據該鍵值產生該第一資料索引值,其中,該多工器模組與該第一雜湊模組以及該複數個第二雜湊模組耦合。
- 如請求項2所述之資料索引值產生裝置,其中,該第二長度為q個位元,且該複數個第二雜湊模組的數量為2的q次方個。
- 如請求項2所述之資料索引值產生裝置,其中,該第一雜湊模組包含複數個乘法器以及複數個互斥或閘,該複數個乘法器用以對應地將該複數個位元區段與該組第一係數相乘,以獲得該複數個第一乘積,且該複數個互斥或閘用以將該複數個第一乘積兩兩進行互斥或運算,藉此獲得該第一雜湊值。
- 如請求項2所述之資料索引值產生裝置,其中,該複數個第二雜湊模組中的每一者皆包含複數個乘法器以及複數個互斥或閘,該複數個乘法器用以相應地將該複數個位元區段與該組候選係數相乘,以獲得該複數個第二乘積,且該複數個互斥或閘用以將該複數個第二乘積兩兩進行互斥或運算,藉此獲得包含該第二雜湊值的複數個雜湊值。
- 如請求項1所述之資料索引值產生裝置,其中,該數位計算電路還用以根據該第一資料索引值而將該筆第一資料儲存於該儲存器中的一特定記憶體位址。
- 如請求項1所述之資料索引值產生裝置,其中,該數位計算電路還用以:針對該指示值與該第一資料索引值進行一連接運算,藉此更新該第一資料索引值;以及根據更新後的該第一資料索引值而將該筆第一資料儲存於該儲存器中的一特定記憶體位址。
- 如請求項6或7所述之資料索引值產生裝置,其中: 該儲存器還用以儲存一索引值映射表;且該數位計算電路還用以根據該索引值映射表以及該第一資料索引值或更新後的該第一資料索引值而將該筆第一資料儲存於該儲存器中的該特定記憶體位址。
- 如請求項8所述之資料索引值產生裝置,其中,該儲存器還用以儲存一檢查值對應表,且該數位計算電路還用以:計算該第一資料索引值或更新後的該第一資料索引值對應的一檢查值;以及確認該檢查值是否記載在該檢查值對應表中,並據以判斷該鍵值是否為合法的鍵值。
- 如請求項1所述之資料索引值產生裝置,其中,該儲存器還用以儲存包含該筆第一資料的複數筆目標資料,且該數位計算電路還用以:反覆地隨機決定該組第一係數與該複數組第二係數的數值,並且計算該複數筆目標資料所對應的複數個資料索引值,直到該複數個資料索引值彼此不同,藉此決定出該組第一係數與該複數組第二係數,其中該複數個資料索引值包含該第一資料索引值;以及根據該複數個資料索引值,對應地將該複數筆資料儲存於該儲存器中的複數個特定記憶體位址。
- 一種資料索引值產生方法,包含:由一電子計算裝置,將一鍵值劃分為具有第一長度的複數個位元區段,其中該鍵值對應至一筆第一資料; 由該電子計算裝置,對應地將該複數個位元區段與一組第一係數相乘,藉此產生複數個第一乘積;由該電子計算裝置,針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值;由該電子計算裝置,根據該指示值,自複數組第二係數中決定一組候選係數,並對應地將組該候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積;以及由該電子計算裝置,針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值。
- 如請求項11所述之資料索引值產生方法,其中:該電子計算裝置是藉由一第一雜湊模組而根據該鍵值產生該指示值;且該電子計算裝置是藉由一多工器模組而根據該指示值自複數個第二雜湊模組中決定出一個候選雜湊電路,並藉由該候選雜湊模組而根據該鍵值產生該第一資料索引值,其中,該多工器模組與該第一雜湊模組以及該複數個第二雜湊模組耦合。
- 如請求項12所述之資料索引值產生方法,其中,該第二長度為q個位元,且該複數個第二雜湊模組的數量為2的q次方個。
- 如請求項11所述之資料索引值產生方法,還包含:由該電子計算裝置,根據該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的一特定記憶體位址。
- 如請求項11所述之資料索引值產生方法,還包含:由該電子計算裝置,針對該指示值與該第一資料索引值進行一連接運算,藉此更新該第一資料索引值;以及由該電子計算裝置,根據更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的一特定記憶體位址。
- 如請求項14或15所述之資料索引值產生方法,還包含:由該電子計算裝置,根據一索引值映射表以及該第一資料索引值或更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的該特定記憶體位址。
- 如請求項16所述之資料索引值產生方法,還包含:由該電子計算裝置,計算該第一資料索引值或更新後的該第一資料索引值對應的一檢查值;以及由該電子計算裝置,確認該檢查值是否記載在一檢查值對應表中,並據以判斷該鍵值是否為合法的鍵值。
- 如請求項11所述之資料索引值產生方法,其中,該電子計算裝置還儲存包含該筆第一資料的複數筆目標資料,且該資料索引值產生方法還包含:由該電子計算裝置,反覆地隨機決定該組第一係數與該複數組第二係數的數值,並且計算該複數筆目標資料所對應的複數個資料索引值,直到該複數個資料索引值彼此不同,藉此決定該組第一係數與該複數組第二係數,其中該複數個資料索引值包含該第一資料索引值;以及 由該電子計算裝置,根據該複數個資料索引值,將該複數筆資料儲存於該電子計算裝置中的複數個特定記憶體位址。
- 一種電腦程式產品,經一電子計算裝置載入後,該電子計算裝置執行下列指令:將一鍵值劃分為具有第一長度的複數個位元區段,其中該鍵值對應至一筆第一資料;對應地將該複數個位元區段與一組第一係數相乘,藉此產生複數個第一乘積;針對該複數個第一乘積進行互斥或運算,藉此產生一第一雜湊值,並於該第一雜湊值中擷取具有第二長度的複數個位元,藉此產生一指示值;根據該指示值,自複數組第二係數中決定一組候選係數,並對應地將該組候選係數與該複數個位元區段相乘,藉此產生複數個第二乘積;以及針對該複數個第二乘積進行互斥或運算,藉此產生一第二雜湊值,並於該第二雜湊值中擷取具有第三長度的複數個位元,藉此產生對應至該筆第一資料的一第一資料索引值。
- 如請求項19所述之電腦程式產品,經該電子計算裝置載入後,該電子計算裝置還執行下列指令:根據該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的一特定記憶體位址。
- 如請求項19所述之電腦程式產品,經該電子計算裝置載入後,該電子計算裝置還執行下列指令: 針對該指示值與該第一資料索引值進行一連接運算,藉此更新該第一資料索引值;以及根據更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的一特定記憶體位址。
- 如請求項20或21所述之電腦程式產品,經該電子計算裝置載入後,該電子計算裝置還執行下列指令:根據一索引值映射表以及該第一資料索引值或更新後的該第一資料索引值而將該筆第一資料儲存於該電子計算裝置中的該特定記憶體位址。
- 如請求項22所述之電腦程式產品,經該電子計算裝置載入後,該電子計算裝置還執行下列指令:計算該第一資料索引值或更新後的該第一資料索引值對應的一檢查值;以及確認該檢查值是否記載在一檢查值對應表中,並據以判斷該鍵值是否為合法的鍵值。
- 如請求項19所述之電腦程式產品,其中,該電子計算裝置還儲存包含該筆第一資料的複數筆目標資料,且該電腦程式產品經該電子計算裝置載入後,該電子計算裝置還執行下列指令:反覆地隨機決定該組第一係數與該複數組第二係數的數值,並且計算該複數筆目標資料所對應的複數個資料索引值,直到該複數個資料索引值彼此不同,藉此決定出該組第一係數與該複數組第二係數,其中該複數個資料索引值包含該第一資料索引值;以及 根據該複數個資料索引值,將該複數筆資料儲存於該電子計算裝置中的複數個特定記憶體位址。
- 如請求項24所述之電腦程式產品,其中,該電子計算裝置是根據該複數個資料索引值,先更新一索引值映射表,再根據該索引值映射表而將該複數筆資料儲存於該電子計算裝置中的該複數個特定記憶體位址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111150982A TWI819943B (zh) | 2022-12-30 | 2022-12-30 | 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111150982A TWI819943B (zh) | 2022-12-30 | 2022-12-30 | 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI819943B true TWI819943B (zh) | 2023-10-21 |
TW202427227A TW202427227A (zh) | 2024-07-01 |
Family
ID=89858016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111150982A TWI819943B (zh) | 2022-12-30 | 2022-12-30 | 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI819943B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011035595A1 (zh) * | 2009-09-27 | 2011-03-31 | 中兴通讯股份有限公司 | 一种哈希查找表的方法和装置 |
US8171013B2 (en) * | 2007-04-19 | 2012-05-01 | Retrevo Inc. | Indexing and searching product identifiers |
US20160232188A1 (en) * | 2013-04-25 | 2016-08-11 | International Business Machines Corporation | Management of a database system |
CN103902701B (zh) * | 2014-03-31 | 2017-12-29 | 北京皮尔布莱尼软件有限公司 | 一种数据存储***和存储方法 |
TW201935243A (zh) * | 2018-02-06 | 2019-09-01 | 南韓商三星電子股份有限公司 | 固態驅動器、分散式資料儲存系統和利用鍵值儲存的方法 |
CN108664509B (zh) * | 2017-03-31 | 2021-09-07 | 华为技术有限公司 | 一种即席查询的方法、装置及服务器 |
-
2022
- 2022-12-30 TW TW111150982A patent/TWI819943B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171013B2 (en) * | 2007-04-19 | 2012-05-01 | Retrevo Inc. | Indexing and searching product identifiers |
WO2011035595A1 (zh) * | 2009-09-27 | 2011-03-31 | 中兴通讯股份有限公司 | 一种哈希查找表的方法和装置 |
US20160232188A1 (en) * | 2013-04-25 | 2016-08-11 | International Business Machines Corporation | Management of a database system |
CN103902701B (zh) * | 2014-03-31 | 2017-12-29 | 北京皮尔布莱尼软件有限公司 | 一种数据存储***和存储方法 |
CN108664509B (zh) * | 2017-03-31 | 2021-09-07 | 华为技术有限公司 | 一种即席查询的方法、装置及服务器 |
TW201935243A (zh) * | 2018-02-06 | 2019-09-01 | 南韓商三星電子股份有限公司 | 固態驅動器、分散式資料儲存系統和利用鍵值儲存的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130007008A1 (en) | Hash algorithm-based data storage method and system | |
US10831747B2 (en) | Multi stage aggregation using digest order after a first stage of aggregation | |
US20200218509A1 (en) | Multiplication Circuit, System on Chip, and Electronic Device | |
TWI724579B (zh) | 區塊鏈資料處理方法、裝置、系統、處理設備及儲存媒體 | |
CN110019283B (zh) | 极值确定方法及装置、电子设备、存储介质 | |
US9916319B2 (en) | Effective method to compress tabular data export files for data movement | |
JP2016062613A (ja) | キャッシュメモリ・システム及びその動作方法 | |
US20180041224A1 (en) | Data value suffix bit level compression | |
TWI819943B (zh) | 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 | |
CN110362560A (zh) | 一种无业务主键数据在存储数据库时去重的方法 | |
US10303791B2 (en) | Efficient join on dynamically compressed inner for improved fit into cache hierarchy | |
CN115827555B (zh) | 数据处理方法、计算机设备、存储介质和乘法器结构 | |
Ko et al. | A new non-uniform segmentation and addressing remapping strategy for hardware-oriented function evaluators based on polynomial approximation | |
TW202427227A (zh) | 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 | |
WO2022247193A1 (zh) | 用于数据处理的装置、方法、芯片、计算机设备及介质 | |
US11868332B2 (en) | Data index establishment method, and apparatus | |
CN118277376A (zh) | 数据索引值产生装置、数据索引值产生方法及其计算机程序产品 | |
US8775776B2 (en) | Hash table using hash table banks | |
WO2022105183A1 (zh) | 一种用户聚类方法、装置及设备 | |
Singha et al. | A new architecture for FPGA based implementation of conversion of binary to double base number system (DBNS) using parallel search technique | |
EP3246900B1 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program | |
US11507371B2 (en) | Column data driven arithmetic expression evaluation | |
US8868634B2 (en) | Method and apparatus for performing multiplication in a processor | |
CN115398423A (zh) | 使用多核处理单元的集合运算 | |
CN105930521A (zh) | 一种数据库管理装置和方法 |