性的文件訪問請求,還包含文件偏移量,對于是根據查詢條件獲取文件的內容的文件訪問請求(即特殊文件訪問請求),還包含與查詢條件相關的參數,例如:如果查詢條件中包含某個參數的范圍,貝1J與查詢條件相關的參數可以是:該范圍的上限,該范圍的下限,是否包含該范圍的上限,是否包含該范圍的下線,或者該范圍上下限范圍之間相反的范圍。列舉一個具體的例子,參數為A,5彡A彡10,表示A的上限是10,下限是5,包含上限和下限;5〈A〈10,表示A的上限是10,下限是5,不包含上限和下限,A彡5,A < 10,表示A的上限是10,下限是5,A的范圍是上下限范圍之間相反的范圍。
[0077]其中,緩沖區包括完全匹配緩沖區和半匹配緩沖區。
[0078]完全匹配緩沖區是指存放完全匹配查詢條件的文件的內容的緩沖區,半匹配緩沖區是指存放部分匹配查詢條件的文件的內容的緩沖區。
[0079]步驟S306:若文件訪問請求是根據查詢條件獲取文件的內容,則獲取文件的元數據,其中,文件的元數據中包含文件的索引信息,查詢條件是針對文件的索引信息選擇文件的內容。
[0080]步驟S307:根據文件的索引信息,確定符合查詢條件的文件的內容。
[0081]步驟S308:通過磁盤1控制器獲取所有查詢條件的文件的內容,以便于應用層訪問文件。
[0082]步驟S309:若獲取的文件的內容完全匹配查詢條件,則將獲取的文件的內容放入完全匹配緩沖區,若獲取的文件的內容部分匹配查詢條件,則將獲取的文件的內容放入半匹配緩沖區。
[0083]如果從磁盤中獲取的文件的內容完全匹配查詢條件,則將獲取的文件的內容放入完全匹配緩沖區,如果從磁盤中獲取的文件的內容部分匹配查詢條件,則將獲取的文件的內容放入半匹配緩沖區。
[0084]步驟S310:若文件訪問請求不是根據查詢條件獲取文件的內容,則按照文件系統原來的方式或流程進行操作。
[0085]如果文件訪問請求不是根據查詢條件獲取文件的內容,即為一般性文件訪問請求,則按照文件系統原來的方式或流程進行操作。
[0086]需要說明的是,在實際應用中,可以根據具體情況對上述步驟進行增減,在此不做限制。
[0087]本發明實施方式文件系統對文件按照預設要求進行預處理,獲得的文件的索引信息保存在文件的元數據中,在接收到來自應用層的文件訪問請求是根據查詢條件獲取所述文件的內容時,查詢條件是針對文件的索引信息選擇文件的內容,根據索引信息,即可通過磁盤1控制器獲取所有符合查詢條件的文件的內容,因此,通過本發明實施方式,能夠避免一次查詢帶來的多次缺頁中斷以及多次磁盤10,并且通過過濾部分數據減少內存使用。
[0088]另外,通過文件訪問請求中是否包含與查詢條件相關的參數來有效區分一般性文件訪問請求和特殊文件訪問請求;通過區分完全匹配緩沖區和半匹配緩沖區可以更加提高訪問文件的效率。
[0089]列舉一個具體的例子來說明本實施方式:參閱圖4,圖4中表達了查詢第3到15個塊的過程:首先應用層發送特殊性文件訪問請求(即根據查詢條件獲取所述文件的內容),要求查詢第3到15個塊,然后文件系統根據該特殊性文件訪問請求,獲取該文件的元數據索引信息,根據該文件的元數據索引信息來判斷哪些簇是符合條件的(這里(0,10),(10,05) 2個簇符合條件),然后分別獲取這2個簇的索引信息,最終定位到(3,8),(8,10),(10,20) 3個塊,由于索引信息中已經包含了某個塊的數值信息(最大值和最小值),那么可以很容易的分辨出(3,8),(8,10) 2個塊需要放到完全匹配緩沖區I中,(10,20)需要放到半匹配緩沖區2中,最后返回2個緩沖區。
[0090]參閱圖5,圖5是本發明文件的訪問裝置一實施方式的結構示意圖,該裝置包括:接收模塊101、第一獲取模塊102、確定模塊103以及第二獲取模塊104。
[0091]需要說明的是,圖5的裝置可以執行圖1至圖3中的步驟。
[0092]接收模塊101用于接收來自應用層的文件訪問請求。
[0093]本發明文件的訪問系統包括三層:一個是應用層,數據庫通常在應用層;第二個是文件系統層,第三個是磁盤,即文件的存放位置。
[0094]文件系統是操作系統用于明確磁盤或分區上的文件的方法和數據結構,即在磁盤上數據的組織方法。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,當用戶不再使用時撤銷文件等。
[0095]在一般情況下,文件系統對文件是不做任何處理的,數據庫是按照數據結構來組織、存儲和管理數據的倉庫,在本發明實施方式中,文件系統已經按照預設要求對文件進行了預處理,即將數據庫的部分功能加入文件系統中來。預設要求是預先設定的對文件進行預處理(例如組織、排序、分類、整理等等)的要求,例如:按照某種條件對文件進行排序,列數據庫文件記錄某個列的信息,可以按照某列進行排序;或者按照哈希值對文件進行處理;或者按照該文件的某個參數的范圍對該文件進行處理等等。
[0096]第一獲取模塊102用于在接收模塊101接收來自應用層的文件訪問請求后,在文件訪問請求是根據查詢條件獲取文件的內容時,獲取文件的元數據,其中,文件的元數據中包含文件的索引信息,查詢條件是針對文件的索引信息選擇文件的內容。
[0097]元數據(Metadata)是描述其它數據的數據(data about other data),或者說是用于提供某種資源的有關信息的結構數據(structured data)。
[0098]索引本身是數據庫中經常需要使用的信息,是對數據庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問數據庫表中的特定信息。在本發明實施方式中,將索引信息引入到文件系統中,將對文件預處理后獲得的索引信息保存在該文件的元數據中。
[0099]在文件系統對文件按照預設要求進行預處理后,獲得該文件的索引信息,將該文件的索引信息保存在該文件的元數據中。如果文件訪問請求是根據查詢條件獲取文件的內容,那么獲取該文件的元數據。因為元數據中保存有已預處理的文件的索引信息,查詢條件是針對文件的索引信息選擇文件的內容的,那么根據該索引信息,可以很方便地知道需要選擇性獲取的文件的內容在磁盤中的具體位置,因此可以獲取該文件訪問請求所需要的文件的內容。
[0100]其中,索引信息至少包括規則類型和每個簇包含的范圍,規則類型中規定了對文件進行預處理的方式。規則類型用于規定對文件進行怎樣的預處理,例如:對文件進行排序,或按照參數范圍進行分類,或按照哈希值進行處理等等。
[0101]文件系統是操作系統與驅動器之間的接口,當操作系統請求從硬盤里讀取一個文件時,會請求相應的文件系統打開文件。扇區是磁盤最小的物理存儲單元,但由于操作系統無法對數目眾多的扇區進行尋址,所以操作系統就將相鄰的扇區組合在一起,形成一個簇,然后再對簇進行管理。每個簇可以包括2、4、8、16、32或64個扇區。顯然,簇是操作系統所使用的邏輯概念,而非磁盤的物理特性。為了更好地管理磁盤空間和更高效地從硬盤讀取數據,操作系統規定一個簇中只能放置一個文件的內容,因此文件所占用的空間,只能是簇的整數倍;而如果文件實際大小小于一簇,它也要占一簇的空間。
[0102]知道了每個簇包含的范圍,也即可獲知總簇的數目。當然,索引信息還可以包含文件的數據類型,例如:精確數字類型、近似數字類型、日期和時間類型、字符數據類型、Unicode字符數據類型、二進制字符數據類型、其它數據類型等等。索引信息還可以包含其它的信息,在此不再進行贅敘。
[0103]確定模塊103用于在第一獲取模塊102獲取文件的元數據后,根據文件的索引信息,確定符合查詢條件的文件的內容。
[0104]查詢條件是針對文件的索引信息選擇文件的內容的,那么根據該索引信息,可以很方便地知道需要獲取的文件的內容在磁盤中的具體位置,因此可以確定符合查詢條件的文件的內容。
[0105]第二獲取模塊104用于在確定模塊103確定符合查詢條件的文件的內容后,通過磁盤1控制器獲取所有符合查詢條件的文件的內容,以便于應用層訪問文件。
[0106]正如上面所述,由于事先對文件按照預設要求進行預處理,預處理后獲得的索引信息保存在該文件的元數據中,查詢條件是針對文件的索引信息選擇文件的內容的,通過該索引信息,可以很快獲知滿足查詢條件的文件的內容的存儲位置,通過磁盤1控制器即可獲取所有符合查詢條件的文件的內容,從而方便應用層訪問文件。
[0107]本發明實施方式由于文件的元數據中保存有已按照預設要求進行預處理的文件的索引信息,在接收到來自應用層的文件訪問請求是根據查詢條件獲取所述文件的內容時,根據索引信息,即可通過磁盤1控制器獲取所有符合查詢條件的文件的內容,因此,通過本發明實施方式,能夠避免一次查詢帶來的多次缺頁中斷以及多次磁盤10,并且通過過濾部分數據減少內存使用。
[0108]參閱圖6,圖6是本發明文件的訪問裝置另一實施方式的結構示意圖,該裝置包括:獲得模塊201、保存模塊202、接收模塊203、第一獲取模塊204、確定模塊205以及第二獲取模塊206。本實施方式的裝置和圖5的裝置基本相同,相同之處具體請參見圖5以及相應的文字說明,不同之處是本實施方式的裝置還包括獲得模塊201和保存模塊202,具體內容如