1.一種用于數據庫操作的方法,包括:
數據庫服務器識別數據存儲系統保存第一個表的數據的一個或多個
數據塊的一個或多個位置;
其中所述數據存儲系統包括一個或多個存儲設備,在所述一個或多
個存儲設備上,包括第一個表的邏輯結構的數據保存在包括所述一個或
多個數據塊的多個塊結構中;
所述數據庫服務器向數據存儲系統發送:
a)指定保存在所述數據存儲系統中的所述一個或多個數據塊的
所述一個或多個位置的輸入/輸出I/O請求,所述請求具體識別所述
一個或多個數據塊;和
b)描述過濾條件的與所述I/O請求關聯的元數據;
其中所述I/O請求是這樣的通信:當被數據存儲系統解讀時,使數
據存儲系統從所述一個或多個存儲設備取回所述一個或多個數據塊;
其中所述描述過濾條件的元數據是這樣的數據:當被數據存儲系統
解讀時,使數據存儲系統通過使用所述描述過濾條件的元數據至少過濾
所取回的一個或多個數據塊的內容,而產生過濾后的數據;
其中由數據存儲系統產生的所述過濾后的數據是以下之一:
一個或多個過濾后的數據塊;或
基于所述一個或多個數據塊產生的過濾后的邏輯結構,所述邏
輯結構是以下之一:行集、行源、表;和
響應所述I/O請求,所述數據庫服務器從數據存儲系統接收過濾后
的數據。
2.按照權利要求1所述的方法,還包括:
在把所述描述過濾條件的元數據發送給數據存儲系統之前,根據第
二個表的一個或多個屬性產生哈希表;
其中所述描述過濾條件的元數據包含所述哈希表。
3.按照權利要求1所述的方法,還包括:
在把所述描述過濾條件的元數據發送給數據存儲系統之前,根據第
二個表的一個或多個屬性產生哈希表;
在把所述描述過濾條件的元數據發送給數據存儲系統之前,根據第
二個表的一個或多個屬性產生布隆過濾器;
其中至少一些所述描述過濾條件的元數據以所述布隆過濾器為基
礎。
4.按照權利要求3所述的方法,還包括:
在把所述描述過濾條件的元數據發送給數據存儲系統之前,根據所
述布隆過濾器產生至少一個謂詞;
其中所述描述過濾條件的元數據包含所述至少一個謂詞。
5.按照權利要求1所述的方法,其中所述一個或多個位置保存構成
所述一個或多個數據塊的一個或多個字節系列。
6.按照權利要求5所述的方法,其中過濾后的數據包括一個或多個
過濾后的數據塊。
7.按照權利要求1所述的方法,還包括向數據存儲系統發送元數據
以幫助數據存儲系統了解由所述一個或多個數據塊表示的邏輯結構的至
少一部分。
8.按照權利要求1所述的方法,其中,所述描述過濾條件的元數據
描述第二個表的一個或多個特性。
9.按照權利要求8所述的方法,還包括數據庫服務器根據過濾后的
數據,對第一個表和第二個表進行第一聯接操作。
10.按照權利要求9所述的方法,
其中所述描述過濾條件的元數據還描述第三個表的一個或多個特
性;
其中所述描述過濾條件的元數據是這樣的數據:當被數據存儲系統
解讀時,使數據存儲系統通過根據在所述元數據中描述的第三個表的一
個或多個特性進一步過濾所述一個或多個數據塊的內容,產生過濾后的
數據;
所述方法還包括數據庫服務器根據第一聯接操作的結果,對第一個
表、第二個表和第三個表進行第二聯接操作。
11.按照權利要求1所述的方法,
其中,所述描述過濾條件的元數據包括一個或多個聯接過濾條件;
和
所述方法進一步包括根據過濾后的數據執行所述聯接操作。
12.按照權利要求1-11中任意一項所述的方法,其中,由發送的
元數據描述的過濾條件用于要關于所述一個或多個數據塊所代表的特定
邏輯結構執行的操作。
13.按照權利要求1的方法,其中,所述過濾后的數據是過濾后的
邏輯結構,其中所述過濾后的數據容納在虛擬數據塊中。
14.一種用于數據庫操作的方法,包括由數據存儲系統執行以下步
驟:
接收I/O請求,所述I/O請求指定在所述數據存儲系統中保存一個
或多個數據塊的一個或多個位置;
其中,所述數據存儲系統包括一個或多個存儲設備,在所述一個或
多個存儲設備上,邏輯結構的數據保存在包括所述一個或多個數據塊的
多個塊結構中;
其中,所述邏輯結構是數據庫表并且是與塊結構不同的結構;
接收描述過濾條件的與所述I/O請求相關聯的元數據;
響應于所述I/O請求,從所述一個或多個存儲設備上的所述一個或
多個位置讀取所述一個或多個數據塊;
通過根據所述描述過濾條件的元數據至少過濾所取回的一個或多個
數據塊的內容,而產生過濾后的數據;
其中由數據存儲系統產生的所述過濾后的數據是以下之一:
一個或多個過濾后的數據塊;或
基于所述一個或多個數據塊產生的過濾后的邏輯結構,所述邏
輯結構是以下之一:行集、行源、表;和
響應所述I/O請求,其中響應包括過濾后的數據。
15.按照權利要求14所述的方法,其中所述描述過濾條件的元數據
包括哈希表。
16.按照權利要求14所述的方法,其中所述描述過濾條件的元數據
包括布隆過濾器。
17.按照權利要求14所述的方法,其中所述描述過濾條件的元數據
包括基于布隆過濾器的謂詞。
18.按照權利要求14所述的方法,進一步包括:所述數據存儲系統
執行以下步驟:
接收元數據以幫助數據存儲系統了解由所述一個或多個數據塊表示
的邏輯結構的至少一部分;和
基于所述邏輯結構的所述至少一部分,識別由所述一個或多個數據
塊代表的一個或多個屬性值;
其中,過濾所述一個或多個數據塊的內容進一步基于將所述描述過
濾條件的元數據中的所述一個或多個過濾條件應用于識別出的一個或多
個屬性值。
19.按照權利要求14所述的方法,其中所述響應進一步包括所述一
個或多個數據塊中的至少一個數據塊,其中所述一個或多個數據塊中的
所述至少一個數據塊未被過濾。
20.按照權利要求18所述的方法,其中產生過濾后的數據進一步包
括聯接第一數據塊所代表的一個或多個行與來自第二數據塊的一個或多
個行,從而生成要返回給所述數據庫服務器的聯接的行集。
21.按照權利要求14所述的方法,其中所述一個或多個過濾條件是
用于要關于所請求的數據執行的聯接操作的過濾條件。
22.按照權利要求14-21中任意一項所述的方法,其中,由接收的
元數據描述的過濾條件用于要關于所述一個或多個數據塊所代表的特定
邏輯結構執行的操作。
23.一種用于數據庫操作的系統,包括:
一個或多個塊存儲設備,用于以多個數據塊結構保存數據;
存儲服務器,其通過從所述一個或多個塊存儲設備讀取數據塊或向
所述一個或多個塊存儲設備寫入數據塊,響應對于數據塊結構的輸入/輸
出(I/O)請求;以及
數據庫服務器,經由網絡連接到所述存儲服務器,所述數據庫服務
器至少通過以下操作接收和響應來自客戶端的第一SQL查詢:1)請求
來自所述存儲服務器的一個或多個數據塊的第一集合;2)將所述一個或
多個數據塊的第一集合解讀為至少一個或多個數據庫表的一個或多個
列;和3)執行由對所述至少一個或多個列的所述第一SQL查詢所指示
的第一數據庫操作以產生結果集;
其中,對于第二數據庫操作,所述數據庫服務器被配置為向所述存
儲服務器發送:a)指定從中取回一個或多個數據塊的第二集合的一個或
多個地址的I/O請求;和b)描述過濾條件的元數據;
其中,所述存儲服務器被配置為,響應于所述I/O請求從所指定的
一個或多個地址處的所述一個或多個存儲設備讀取一個或多個數據塊的
所述第二集合;
其中,所述存儲服務器進一步被配置為,在響應于所述I/O請求讀
取一個或多個數據塊的所述第二集合的基礎上,通過根據所述描述過濾
條件的元數據過濾一個或多個數據塊的所述第二集合的內容產生過濾后
的數據;
其中由數據存儲系統產生的所述過濾后的數據是以下之一:
一個或多個過濾后的數據塊;或
基于所述一個或多個數據塊產生的過濾后的邏輯結構,所述邏
輯結構是以下之一:行集、行源、表;
其中,所述存儲服務器進一步被配置為,響應于所述I/O請求,發
送過濾后的數據到所述數據庫服務器;和
其中,所述數據庫服務器進一步被配置為基于由所述存儲服務器返
回的過濾后的數據執行所述第二數據庫操作。
24.按照權利要求23所述的系統,其中,所述第二數據庫操作是聯
接操作,其中,所述描述過濾條件的元數據包括用于所述聯接操作的標
準。
25.按照權利要求24所述的系統,其中,用于所述聯接操作的所述
標準包括布隆過濾器。
26.按照權利要求23所述的系統,
其中所述存儲服務器進一步被配置為從所述數據庫服務器接收描述
由一個或多個數據塊的所述第二集合表示的表的一個或多個特性的元數
據,
其中所述存儲服務器進一步被配置為完成以下步驟:通過根據描述
所述表的所述一個或多個特性的元數據將一個或多個數據塊的所述第二
集合解讀為第二結構,并且然后根據所述描述過濾條件的元數據過濾所
述第二結構,來過濾一個或多個數據塊的所述第二集合的內容。
27.按照權利要求23所述的系統,其中所述存儲服務器和所述一個
或多個存儲設備位于第一計算設備處,其中所述數據庫服務器位于聯網
到所述第一計算設備的不同計算設備處。
28.一種用于數據庫操作的系統,包括:
用于識別數據存儲系統保存第一個表的數據的一個或多個數據塊的
一個或多個位置的裝置;
其中所述數據存儲系統包括一個或多個存儲設備,在所述一個或多
個存儲設備上,包括第一個表的邏輯結構的數據保存在包括一個或多個
數據塊的多個塊結構中;
用于向數據存儲系統發送以下內容的裝置:
a)指定保存在所述數據存儲系統中的所述一個或多個數據塊的
所述一個或多個位置的I/O請求,所述請求具體識別所述一個或多
個數據塊;和
b)描述過濾條件的與所述I/O請求相關聯的元數據;
其中所述I/O請求是這樣的通信:當被數據存儲系統解讀時,使數
據存儲系統從所述一個或多個存儲設備取回所述一個或多個數據塊;
其中所述描述過濾條件的元數據是這樣的數據:當被數據存儲系統
解讀時,使數據存儲系統通過使用所述描述過濾條件的元數據至少過濾
所取回的一個或多個數據塊的內容,而產生過濾后的數據;和
用于響應所述I/O請求從數據存儲系統接收過濾后的數據的裝置。
29.按照權利要求28所述的系統,還包括:
用于在把所述描述過濾條件的元數據發送給數據存儲系統之前,根
據第二個表的一個或多個屬性產生哈希表的裝置;
其中所述描述過濾條件的元數據包含所述哈希表。
30.按照權利要求28所述的系統,還包括:
用于在把所述描述過濾條件的元數據發送給數據存儲系統之前,根
據第二個表的一個或多個屬性產生哈希表的裝置;
用于在把所述描述過濾條件的元數據發送給數據存儲系統之前,根
據第二個表的一個或多個屬性產生布隆過濾器的裝置;
其中至少一些所述描述過濾條件的元數據以所述布隆過濾器為基
礎。
31.按照權利要求30所述的系統,還包括:
用于在把所述描述過濾條件的元數據發送給數據存儲系統之前,根
據所述布隆過濾器產生至少一個謂詞的裝置;
其中所述描述過濾條件的元數據包含所述至少一個謂詞。
32.按照權利要求28所述的系統,其中所述一個或多個位置保存構
成所述一個或多個數據塊的一個或多個字節系列的一個或多個位置。
33.按照權利要求32所述的系統,其中過濾后的數據包括一個或多
個過濾后的數據塊。
34.按照權利要求28所述的系統,還包括用于向數據存儲系統發送
元數據以幫助數據存儲系統了解由所述一個或多個數據塊表示的邏輯結
構的至少一部分的裝置。
35.按照權利要求28所述的系統,其中,所述描述過濾條件的元數
據描述第二個表的一個或多個特性。
36.按照權利要求35所述的系統,還包括用于根據過濾后的數據,
對第一個表和第二個表進行第一聯接操作的裝置。
37.按照權利要求36所述的系統,
其中所述描述過濾條件的元數據還描述第三個表的一個或多個特
性;
其中所述描述過濾條件的元數據是這樣的數據:當被數據存儲系統
解讀時,使數據存儲系統通過根據在所述元數據中描述的第三個表的一
個或多個特性進一步過濾所述一個或多個數據塊的內容,產生過濾后的
數據;
所述系統還包括用于根據第一聯接操作的結果,對第一個表、第二
個表和第三個表進行第二聯接操作的裝置。
38.按照權利要求28所述的系統,其中,
所述描述過濾條件的元數據包括一個或多個聯接過濾條件;和
所述系統進一步包括用于根據過濾后的數據執行所述聯接操作的裝
置。
39.按照權利要求28-38中任意一項所述的系統,其中,由發送的
元數據描述的過濾條件用于要關于所述一個或多個數據塊所代表的特定
邏輯結構執行的操作。
40.按照權利要求28所述的系統,其中,所述過濾后的數據是過濾
后的邏輯結構,其中所述過濾后的數據容納在虛擬數據塊中。
41.一種用于數據庫操作的系統,包括:
用于接收令數據存儲系統為數據庫服務器提供一個或多個數據塊的
I/O請求的裝置,其中所述請求具體識別在所述數據存儲系統中保存所述
一個或多個數據塊的一個或多個位置;
其中,所述數據存儲系統包括一個或多個存儲設備,在所述一個或
多個存儲設備上,邏輯結構的數據保存在包括一個或多個數據塊的多個
塊結構中;
其中,所述邏輯結構是數據庫表并且是與塊結構不同的結構;
用于接收描述過濾條件的與所述I/O請求相關聯的元數據的裝置;
用于響應于所述I/O請求,從所述一個或多個存儲設備上的所述一
個或多個位置讀取所述一個或多個數據塊的裝置;
用于通過根據所述描述過濾條件的元數據至少過濾所取回的一個或
多個數據塊的內容,而產生過濾后的數據的裝置;
其中由數據存儲系統產生的所述過濾后的數據是以下之一:
一個或多個過濾后的數據塊;或
基于所述一個或多個數據塊產生的過濾后的邏輯結構,所述邏
輯結構是以下之一:行集、行源、表;和
用于響應所述I/O請求的裝置,其中響應包括過濾后的數據。
42.按照權利要求41所述的系統,其中所述描述過濾條件的元數據
包括哈希表。
43.按照權利要求41所述的系統,其中所述描述過濾條件的元數據
包括布隆過濾器。
44.按照權利要求41所述的系統,其中所述描述過濾條件的元數據
包括基于布隆過濾器的謂詞。
45.按照權利要求41所述的系統,進一步包括:
用于接收元數據以幫助數據存儲系統了解由所述一個或多個數據塊
表示的邏輯結構的至少一部分的裝置,其中所述表的數據保存在所述一
個或多個數據塊中;和
用于基于所述邏輯結構的所述至少一部分,識別由所述一個或多個
數據塊代表的一個或多個屬性值的裝置;
其中,過濾所述一個或多個數據塊的內容進一步基于將所述描述過
濾條件的元數據中的所述一個或多個過濾條件應用于識別出的一個或多
個屬性值。
46.按照權利要求41所述的系統,其中所述響應進一步包括所述一
個或多個數據塊中的至少一個數據塊,其中所述一個或多個數據塊中的
所述至少一個數據塊未被過濾。
47.按照權利要求45所述的系統,其中用于產生過濾后的數據的裝
置進一步包括用于聯接第一數據塊所代表的一個或多個行與來自第二數
據塊的一個或多個行,從而生成要返回給所述數據庫服務器的聯接的行
集的裝置。
48.按照權利要求41所述的系統,其中所述一個或多個過濾條件是
用于要關于所請求的數據執行的聯接操作的過濾條件。
49.按照權利要求41-48中任意一項所述的系統,其中,由接收的
元數據描述的過濾條件用于要關于所述一個或多個數據塊所代表的特定
邏輯結構執行的操作。
展開