TWI262406B - System, method and program storage device for dynamic caching of data based on queries performed by a local application - Google Patents

System, method and program storage device for dynamic caching of data based on queries performed by a local application Download PDF

Info

Publication number
TWI262406B
TWI262406B TW092135005A TW92135005A TWI262406B TW I262406 B TWI262406 B TW I262406B TW 092135005 A TW092135005 A TW 092135005A TW 92135005 A TW92135005 A TW 92135005A TW I262406 B TWI262406 B TW I262406B
Authority
TW
Taiwan
Prior art keywords
query
local
database
new
server
Prior art date
Application number
TW092135005A
Other languages
English (en)
Other versions
TW200426625A (en
Inventor
Khalil S Amiri
Sriram Padmanabhan
Sang-Hyun Park
Renu Tewari
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW200426625A publication Critical patent/TW200426625A/zh
Application granted granted Critical
Publication of TWI262406B publication Critical patent/TWI262406B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Laminated Bodies (AREA)
  • Adhesives Or Adhesive Processes (AREA)
  • Paper (AREA)

Description

1262406 玖、發明說明: 一、【發明所屬之技術領域】 本發明係針對分散式網路之資料庫快取。分散式網路應用程式之盛 行’增加應用程式查詢至遠端伺服器之頻率。為了改進此查詢之性能以及 提鬲資料可利用性,此應用程式可使用本地資料庫快取。例如,位於内容 分佈網路之邊際伺服器可使用附近之資料庫快取,以增快資料存取以及更 快地產生動態網站内容於邊際網路。
二、【先前技術】 一般於邊際伺服器快取資料之技術依賴(i)全資料庫之明確複製 (explicit replica)或位於本地機器之其明確的部分複製,或(ϋ)先前查 詢答覆之快取以及新查詢敘述(query statement)之完全匹配(exact-match) 對應先前已快取之答覆。在複製方法中,快取之内容係明顯地經由管理者 決定那一部份之資料庫表被複製至邊際點作說明。一旦快取内容被舉出, 為表明或實質圖定義,資料自原始伺服器被複製至邊際快取。 在查詢答覆快取方法中,快取動態地與應用程式查詢之答覆分佈。快 取中之資料係以查詢答覆清單描述,每一答覆附加其產生之查詢敘述一標 記。若查詢匹配,則使用答覆以回答隨後查詢,通常經由串(string)比較, 查詢串對應之已快取答覆。查詢答覆快取經由動態地快取資料控制清除管 理者的需求,但無效率地儲存資料於不同地方,每一查詢答覆一地方。這 如同相同基本資料可被複製至許多查詢答覆般產生高空間額外費用(high space overhead)。這是因為查詢答覆通常部分重疊,通常包含基本資料庫 7 1262406 之重要與平凡之部分。再者,因為已快取之查詢答覆只被使用做相同查 珣之完全重新傳遞,但非其他可能包含於答覆之查詢,此法導致有限性能 杈勢。例如’假设一起始查詢找所有不到3〇歲之員工之身分證字號(s〇ciai security number)。此 SQL 敘述為: SELECT employee, ssn FROM employee WHERE employee. age<30 叙设此查询之答覆已被快取以及快取接收一新查詢要找尋所有不到烈 歲之員工之身分證字號。此SQL敘述為: SELECT employee, ssn FROM employee WHERE employee. age<25 雖然新查詢之答覆係包含綠—答覆,因為所有不到3()歲之員工亦是 不到25歲之員工,但是根據完全匹配一查詢答覆快取不會自快取服務此查 詢。 因此’明顯的管理者定義的資料快取需要手動,以及職管理者有每 邊際伺服之工作f,以及資源之密切知識。查詢答频取消除管理者 額外費用,但受害於有限的效率以及高空間額外_。再者,—致性管理 因為已快取資料之代表,以及原始祠服器之基準資料之間之錯誤匹配,而 越來越複雜。-雜㈣通常需要,當任_鱗纽變時使所有查詢答覆 無效,或保持複雜附屬性圖。 因此’具有-快取不需要管理者說明其内容係合意❾,或依照工作量 文羑或卜夬取存在之機益之資源可使用率之改變而適應其說明。更合意 的係使快取在儲存費用以及一致性管理為有效率地。 三、【發明内容】 1262406 前案的這独及其他短處以及缺點,可以電齡統以及對應之方法, 根據本地顧程式所運狀查詢,支持資料的_絲來解決。 示範系統包含具有完整資料庫之遠端伺服器、於包含完整資料庫之次 組之邊際舰n之本地資料庫、邊際錬器與遠服器連繫、於邊際飼 服器之本地資料庫之共享表以自完整資料庫快取結果、接收本地所產生之 資料,以及根據可使狀儲存要求協調快取之内容,並且確保本地資料庫 與遠端資料庫之間之資料一致性。 示範裝置包含邊際資料快取係包含查詢評估器、快取索引、快取儲存 處、資源管理H、容ϋ檢查n、查詢騎器、—致性管理料與查詢評估 器以訊號連繫。 本地伺服器之示範對應方法滿足針對至少一個遠端伺服器之資料庫查 詢,包含動態地快取遠端値H之先前資料庫查詢之結果、連繫本地祠服 裔與本地滅S、齡複數錄取結絲共享表之本地資辦,以及使用 袓數個快取結果來滿足本地伺服器之新的資料庫查詢。 本發明的這些以及其他目的、特徵以及優勢會在以下範例實施例之描 述中與附加圖式一同閱讀而越趨明顯。 四、【實施方式】 本揭露之實施例提供-個允許對遠端舰器之倾庫查詢,被本地機 器所服務之動Μ料庫快取。快取_本地㈣庫引擎保持先前查詢結果 iTtoriahzed vlew^) 〇 詢精力動態地散佈。容器檢查器所運作之查詢述詞(query阶价你),係 1262406 用以建立新查詢之結果是否包含於已快取結果之聯集中。共用本地表在可 實施時,於部分重疊之查詢結果中共享實體儲存。資料一致性係以,自原 始資料庫傳播插入、刪除以及更新至其已快取之本地對應物來保持。背景 清除演算法持續地或週期地,以逐出一致性協定所傳播之多餘列,以及屬 於自快取被記號逐出之查詢之列的方法,消除共用本地表之内容。,,查詢答 覆’’(“query response”)以及”查詢結果”(“query result”)這兩術語在此揭 露書中可交替使用。 接下來的描述中,以下定義可幫助本示範實施例原理且/或運作之理 解。 負料表((13七3 table):如關聯式(relational)資料系統所定義之關聯式 表。 查詢述詞(query predicate):查詢中所指定之限制(例如:SqL敘述中之 WHERE子句)’係用以作為選取基準表中的哪一列被回覆於查詢結果之準則。 查詢結果(query result):SQL查詢回覆給資料系統之答覆。查詢結果 看似有許多列與攔之表。 查詢結果組(set 〇f qUery resuits)··對應複數個查詢之複數個結果組。 差異一致性(delta consistency):有關原始資料庫之資料,其資料庫 快取之資料在一固定時間内係為一致的要求。正確地,表示在現今時間點 Tc之已快取資料之狀態,要與時間點Tp之原始資料庫之過去狀態一致,其 中Τρ係於預定之最大時間窗口之内。 查询/異動時間戳記(query/transacti〇n timest_): 一獨特伺服器所 1262406 產生的數,係單調地增加,以及係與執行於原始伺服器中之所有查詢以及 · 異動有關。時間戳記反映有關同時運作之異動或查詢之串列化排序。 再新訊息(refresh message):原始伺服器傳送給邊際快取之訊息,反 映最近之改變(例如,插入、刪除以及更新敘述)至原始資料庫之表中。基 準表之改變可批次(batched)於複數個再新訊息,但是再新訊息係以其報告 為已發生之改變之排序傳播。 即時更新可見性(immediate update visibility)··應用程式成功地更 新完成之後,其應用程式之查詢必觀察資料庫中更新之影響之屬性。 · 單調狀態變遷(monotonic state transitions):應用程式提交給快取 _ 之兩個連續性查詢,會觀察到資料庫狀態隨時間而改進之屬性,其中第二 _ 查询係在第一查詢之答覆被接收後提交。即,第二查詢會觀察到最近,或 比第一查詢所觀察到更新進之資料庫狀態。 如圖1所示,有一”邊際資料快取”之示範網路實施例通常係以參考數 100表示。網路100可為一更大應用系統之一部份。網路100包含兩個邊際 伺服器109與110連結至客戶端機器運作網路請求,亦連結至原始伺服器 修 108 ’其中主資料庫以及網站經由網路連結1〇7被主持。原始伺服器1〇8包 含資料庫101、應用伺服器102以及網路伺服器1〇3。邊際伺服器1〇9、11() 各包含應用飼服器105以及網路伺服器106。然而,邊際伺服器不像原始網 站有儲存整個資料庫之複製。反而,使用新穎的邊際資料快取。動態内 谷之凊求係被邊際伺服器接收,並被主持於邊際應用伺服器105内之應用 元件處理。這些元件發佈資料庫查詢,係被邊際資料快取104攔截,若可 11 1262406 行的話於本地資料庫處理。若查詢不能被本地資料庫處理,則邊際資料快 取104遞送請求至原始資料庫ιοί,並且於此擷取結果。 參考圖2,邊際資料快取通常係以參考號2〇〇表示。邊際資料快取2〇〇 包含Java伺服器程式(serviet)201與主要部分202耦合。主要部分202包 含JDBC介面203與查詢剖析器205以訊號聯繫耦合、容器檢查器2〇7、查 詢評估器204、快取索引206、本地儲存庫208、一致性管理器21〇以及資 源管理器209。快取功能係實施於以下元件: 查詢剖析器2〇5轉換SQL串為,,查詢敘述,,資料結構,剖析樹加脱廿沈)φ 表明攔清單、目標表以及許多查詢存取之子句。具體地,職E子句被剖析 為儲存於AND-OR的正規類型中之Boolean述詞。這允許容器檢查器以查詢_ 述詞之成對運作等值以及容器運作。 查詢容器檢查H 2 G 7決靖查騎果是魏含於先前6快取之查詢 中。容器可以完全匹配檢查之前的查詢、之前查詢之適當次組,或複數個 之前查詢之聯集之適當次組。 快取索引2 0 6提供容器檢查。當查詢述詞複雜或已快取查詢組太卩 · 時’谷讀查計异可係昂貴的。當新查詢被接收,不檢查所有辅已快取 查詢,反而只專注於運作於相同之表或欄中之查詢。快取索引,根據表明 以及攔名,整理已快取之查詢於複數層散列表。 查射估為2 0 4係快取之核心組件,並包含快取邏輯。其決定存取 為种(hit)絲擊巾(miss),以及後端回覆之結果於未擊巾後,是否被插 入快取中。亦可於傳送至後端前,重寫在快取中未擊中之查詢,以預先取 12 1262406 得資料以及改進資料性能。 資源管理器209保持擊中率,以及答覆時間之統計資料,以及保持快 取組態參數值。若所蒐集的統計資料表示有此需求,則可改變組態參數值 來適應某程度之工作量。 快取儲存處208儲存結果。查詢結果,係快取未擊中,儲存於快取評 估器所決定的本地資料庫表。本揭露實施例使用併合實體儲存政策。有些 查詢’其每一查詢-結果模組使用一表,而其他經由後端基準表之部分散佈 本地複製,共享實體儲存。 一致性管理器210實施更新至本地已快取的資料,以對應後端資料庫 接收之再新訊息。 運作時,查詢原始於應用程式或應用元件,例如Java伺服器程式201。 資料庫快取202接收查詢。更具體地,快取203中之JDBC介面配接器負責 與應用程式接觸。介面配接器係等級組之實施之定義,以及java几3(;規 範之要求。”查詢敘述,,接著被傳遞至查詢評估器204。查詢評估器係負責決 定本地或遠端執行,以及控制快取運作之模組。接收查詢敘述後,查詢評 估器啟動查詢剖析器205以剖析已接收之敘述。剖析器分類敘述於四大類 型之一。敘述之處理係根據查詢類型。 參考圖3,查詢樹通常以參考數300表示。查詢樹3〇〇表示不同之查詢 類型。快取301所接收之查詢係整理為2等級,容器可檢查的查詢3〇2,以 及非容器可檢查的查詢303。已快取的容器可檢查查詢可滿足其結果,可被 證明為已快取查詢之結果之子集之任一隨後查詢。運作於單一表或結合複 13 1262406 數表,但不包含依群組(group-by)子句,以及沒有聚集操作器的查詢,係 以谷器可檢查的查狀方法查詢。其查詢可踐_步被分類為_型,全 結果(full-result)或簡易查詢3〇4,以及部分查詢或最前n個查詢3〇5。 非谷器可檢查的查詢可被快取,但是匹配係用SQL串完全匹配方法運 行。其查詢可更進一步被分類為兩類型:聚集3〇6以及複雜3〇7查詢。使 用UDF、次查詢或依群組子句的複雜查詢,不被容器檢查器處理,並且以完 全匹配方法快取。使用其選取清單中之聚集操作器,例如圆、ΜΑχ以及鑛 來聚集貪料之查詢,亦以完全匹配快取。然而,以聚集查詢3Q6可經由移 除其選取清單巾H操作H,而被賴至容器檢查器3G2。當預期利益係 重大的,最佳化係被快取運作。 簡易查詢處理如下進行。簡《麵係其結果係絲表之贿攔之子 集。簡易查詢因此沒有任何”·ΡΒγ,,子句、次查詢或使用者定義之功能。 根據WHERE子句使用基本比較基元,他們不是最前η個查詢以及簡易選取 一單一表之一部份,或複數表之結合。簡易查詢之範例如下 SELECT employee.id FROM employee WHERE employee.age < 25 如圖4所不,高階處理演算法以參考數4〇〇表示。高階處理演算法4〇〇 提供快取擊巾或快取未擊巾處理。接收錢後,快取索·以娜位於相 同表清單以及列清單之查詢。接著,若查詢包含這魏触取之查詢於決 疋塊410中,則容器檢查器被啟動建立。 在快取擊中之情況下,查詢係於本地快取執行以及結果回覆於功能塊 412中。功能塊412亦傳送查詢至快取儲存處414,係其接收結果處。在快 取未擊中之情況下,於傳送至後端伺服器前,查詢重新寫功能塊416以及 418。運作以下最佳化。第一,選取清單擴增至包含界册貺子句、一⑽ 14 1262406 子句以及having子句所述之欄。擴增之目的係最大化可執行擊中於快取中 之未來查詢之可能性。第二,主要關鍵欄亦被加入其選取清單。當有部份 重複結果之複數個查詢擷取相同基準表之相同列時,快取主要關鍵攔係需 用以預防重複列被插入快取中。未擊中後,後端回覆之結果並非永遠插入 之快取中。以過去紀錄為基礎的複雜演算法可於決定塊420使用,以決定 哪一查詢值得於功能塊422中快取。結果以輸出提供並傳送至快取儲存處 414。 最前η個查詢之處理如下進行。最前查詢自結果組前端取一固定 列數,通常按照order-by子句排列。查詢容器,以及評估演算法與其簡單 全結果查詢不同。最前n個查詢以清除Fetch子句轉換成簡易查詢。簡易 查珣之容器運作如上述。最後,決定jretch子句。雖然基本查詢(沒有Fetch 子句)係快取擊中,Fetch子句可使其變成快取未擊中。例如,參考下列兩 查詢Q1以及Q2 : Q1: SELECT id FROM item WHERE cost < 15 ORDER BY cost FFNRO20 Q2: SELECT id FROM item WHERE cost < 5 ORDER BY cost FFNRO20 若FETCH FIRST 20 ROW ONLY演算法(“FFNR 20,,)子句不在此兩查詢中, 則第二查詢之結果會被包含在第一查詢之結果中,例如,快取擊中。然而, 當子句存在時,快取擊中不僅僅被查詢敘述之檢驗保證。因此,最前η個 查Π旬之谷欢查處理之弟二步驟,係試圖本地執行已快取資料。若有擷取 足夠列,則查詢被視為快取擊中,否則,視為快取未擊中。此類快取未擊 中被稱之為”部分擊中,,(“partial hit,,),因為只有部分結果在本地快取中 找到。 若容器檢查器沒有找到任何匹配查詢,或結果組沒有足夠的列,則原 始查詢QN被轉換成修改過的查詢QN,,其中在Fetch中的N值被較大的N, (N .擴張-因素)替換。例如,在實驗中的内定因素值為2,需要取兩倍 1262406 的列數。擷取比應用程式要求更多的列,係以降低之後,,部分擊中,,查詢為目 的之試探,例如,通過容器檢查步驟的查詢卻沒找到所需的列數。 聚集查詢之處理如下進行。聚集的查詢有一聚集操作器(例如,慰、 MIN、AVG、SUM)在其選取清單,要不然係容器可檢查的。參考下列查詢明: Q3: SELECT MAX(cost) FROM item WHERE id = l〇 擊中之匹配進行兩個步驟。第一,根據SQL串作一完全匹配之檢查, 並且回覆整個結果組至細程式。接著,若沒有朗完全匹配,則原始查 詢Q3經由移除聚集操作器被修改至查詢Q4: Q4: SELECT cost FROM item WEHRE id = 10 若容器匹配找到已修改的查詢Q4,則原始查詢Q3於本區塊取被執行, 本區地聚減本,以及喊絲至應聰式。在未擊巾時,已修改的以查 詢於後端被齡。若結果組大小係介賊界财,縣果儲存於對應之本 地表,以及原始查詢於本地執行。這使不同聚集操作器的未來查詢被快取 服務。若絲組大小太大,縣始快取Q3被傳鞋_,以及結果儲存於 新的完全隨表巾。這使任何完全隨聚鱗況的未緑詢,被快取服務。 此試探目的係增加快取擊中,而不過分遞增加快取大小。 因為複雜子句(例如,使用者定義功能或於丽孤子句之次查詢)或 group-by子句,複雜查詢非容器可檢查的。gr〇up—by子句產生只可被具有 完全相同之group-by子句,以及WHERE子句之聚集資料使用。因此,容器 檢查係不適當的。反之,此查詢之結果係儲存於查詢的SQL串所索引之不 同的表中。此查詢之容器檢查係根據SqL _之完全匹配。因為係根據以狐 串為關鍵之散,此搜尋方法係报快速。若完全SQL串被遞送至快取, 則本地查触騎麟應絲|,卩嫩全糾物,”SELEGT$·請⑽ 本地執行)。此查詢不昂貴,有最少處理時間於邊際伺服器。 16 1262406 參考圖5,本地儲存處通常係以參考數5⑽表示。本地儲存處_表示、 查詢結果如何儲存於本地快取儲存處5〇卜儲存處5〇1被分為兩分區,一個. 係複雜或完全匹配查詢5〇3之儲存,以及另一個係容器可檢查的查詢5〇3 之儲存。完全随錢齡於㈣表,錢只制_答其雜匹配已快 取查詢之SQL串之新查詢。例如,無論其結果是否部份重疊,查詢奶咖 以及Q6 505儲存於不同表。 容器可檢查的查詢健存於共享表中。相同基準表之查詢儲存於表的相 同本地複本中。例如,圖假設兩個查詢Q7和Q8 “SELECT,,來自相同表。查 · 詢Q7 506所擷取的元組(tuple)先被插入快取。接著,第二查詢明所取得 的列被插入507相同表中。當Q8結果被插入,現今列以新取得值更新。因 此,兩個不同查詢所取得的相同列,不於快取中重複。因為所有查詢被重 新寫入,於傳送至後端伺服器前取得主要關鍵,所以相同列會被發現。 參考圖6,快取表結構通常係以參考數表示。快取表結構⑼〇表示 相同資料表中兩個查詢之一具體範例,此稱之為”empl〇yee,,,以及表示其結 果資料結構601、602如何儲存於邊際資料快取中之相同本地表6〇3。 鲁 如圖7所示,一致性協定通常係以參考數7〇〇表示。一致性協定7〇() 包含邊際伺服部分701,與後端伺服器部分702以訊號連繫。邊際伺服器 部分701包含DBProxyO單元703,與快取儲存處704以訊號連繫來插入查 詢結果以及執行查詢。一改變APPLY單元705與快取儲存處704以訊號連 繫來再新表。 後端伺服器部分702包含DBMS單元706,與DBProxyO單元703以訊號 17 1262406 連繫來接收查詢以及提供結果。DBMS單元706更與另一快取儲存處707, 以訊號連繫來寫入以及讀取於快取儲存處7〇7。快取儲存處7〇7與改變 CAPTURE單元708,以訊號連繫來讀取新寫入之資料。改變CApTURE單元 708,依次,與改變APPLY單元705耦合以訊號連繫來再新訊息。 因此,資料一致性可經由簽署原始伺服器傳播之更新流而確保。傳統 實質圖方法,以重新執行基準資料之改變,,差量”的圖,定義更新已快取圖。 然而,因為快取可能有大量的查詢(”圖”),邊際資料快取需要更有效之機 制。因為已快取資料似後端表之部分散佈複本鱗,改變定於起源之基 準表可被簡易地”以此”傳播至已快取版本,而不需要重新查詢。更新、冊條 以及插入(“UDIs”)至基準表被傳播,以及應用至邊際中部分散佈之對應物。 會執打於快取之未來的查詢會自此新傳播之改變,擷取任一匹配元組。此 解決方案假設緩慢地改變資料,大部分網輯境皆是如此,以及交換可能 不需要的資料傳播’係用以減少決定如何更新已快取圖之額外費用。然而, 當-表在經歷高更新作量時,快取魏管理料結束本地複本—段時間。 邊際應用程式所發布之只可讀取的查詢,可隨時於快取中滿足。更新 異動永遠路由至後端資料庫關執行,而雜行顧至本地快取。因為邊 際資料快取係設計給大規卿署,—致性齡必與其麵越鬆地耗合越 好。因此,德快取-致性之紐,衫落於邊取,其巾獅比例較 自然。後端舰II只需負責週期更新傳播,係可被轉移至其他處理方法或 機器的工作。雖供強的-致性保證,可導致限織取效率之高成本, 現今所描述的如何保證-些重要的一致性,例如,即時更新可見性以及差 18 1262406 量-致性,係可被_的。本揭露書依職料傳播器,紀錄所有刪S至起 源表中,以及傳送,,再新訊息,,至邊際餘。龍改變傳触邊際以其異動識 別符標籤,以及以躺定立财細至其邊際快取。進人UDIS流,反映於 起始站定立異動之影響,係被應用至本地已快取表中。 由於UDIs依時間戮記排序被傳播,以及應用至快取,所有使用於此段 之時間戳記,係指後端舰器端定立時_記,快取中之元組值,必反映 對應起源之最後_訊息之時間戳記之資料庫狀態。更具舰,傳播訊息 之時間戳記,係任何更新異動,包含在其訊息之最大_戳記。因為本地 表可被傳播訊息,以及查_果插人於未擊巾更新,確縣量—致性的挑 戰因此提高。 保證的-致性屬性。快取保證邊際應用程式許多重要的一致性屬性, 即差ϊ-致性、單調狀態變遷以及即時更新可見性。快取以即時後端資料 庫表現給細程式。然而,其魄鱗並不像儲存於魏:雜庫之快取現 時。因此,因為其反映與現今狀態不同之狀態至應用程式,快取,,輸出,,資料 庫之一固定狀態。差量一致性之屬性要求當時快取輪出之資料庫狀態,永 退對應先如時間點之資料庫之過去狀態。此輸出狀態與實際狀態之落後 亦係限制的。單調狀態變遷之屬性,暗指快取所輸出之資料庫狀態,只依 時間移動前進。即時麟可見性之屬性要求,若顧程奴立更新並之後 公佈查詢,則查詢應觀察到此更新(以及所有先前更新)之影響。 確保差量一致性以及單調變遷。假設起初,快取與一分鐘前之資料庫 狀怨一致。若於快取未命中並執行於起源之新查詢結果被插入,則快取會 19 1262406 包含舊與新資料的混合。差量一致性要求已快取之資料,永遠與資料庫之 · 單一前版本一致。假設查詢基元地執行於起源。當查詢未命中並且執行於 - 遠端時,伺服器一起回覆其結果與其最後定立時間戳記,tq執行查詢。 參考圖8,查詢處理演算法通常係以參考數800表示。查詢處理演算法 800考量一致性,並且包含功能塊801,以根據查詢之容器檢查器登記快取 擊中。功能塊謝傳遞控制至決定塊802,以決定擊中是否發生。若擊中是 發生,則控制傳遞至功能塊803以運作共享快取之鎖定、查詢之本地執行, 以及共旱快取之打開。然而,若擊中未發生於決定塊洲2,則控制傳遞至功 | 旎塊804以遠端執行查詢,並且,依次,傳遞控制至決定塊8〇5。塊8〇5決 定遠端執行之查詢是否不成功。若是,則控制傳遞至回覆塊8〇6,以回覆已 快取結果”rc”。若否,則控制傳遞至決定塊8〇7,以決定結果是否為局部。 若是,則控制傳遞至功能塊808以獨占地鎖定快取、插入結果至結果組、 傳播源自伺服器之額外資料以及打開快取。功能塊8〇8傳遞控制至回覆塊 8〇9以回覆結果組”rs,,。若塊8〇7之結果係空值或否,則控制直接傳遞至回 覆塊809。 | 運作中,結果插入開始於比較查詢的時間戳記,與接收自原始伺服器 之最後傳播訊息之時間戳記,cache一ts於塊8〇7。查詢以及快取時間戳記 係指其長名,相對應地,qUery—ts(“tq,,)以及cache—ts(“tc,,),於圖式中 、及,、他地方指其長名及短名。若大於cache-ts,則查詢觀察到 比其快取更新的狀態。在此一般狀況下,未擊中之結果先被插入,並且任 一等待中之傳播訊息自原始伺服器被拉下,以快速前進整個快取至下一時 20 1262406 間於塊808。隶後’查詢被加入索引。然而,若cache_ts大於query__ts, 則即時插入未擊中之結果,可回復已快取之資料至先前值,顛倒被傳播訊 息所應用之改變,以及不通過其單調要求。由於此競爭狀態係稀有的,結 果之插入可能在此情況會被略過。這通常只會延遲快取查詢,直到隨後之 未命中之一成功地插入結果,並不嚴重地危及快取效率性。於塊8〇8中 propagate—from一serverO之副作用係 cache-ts 可能被增加。 參考圖9,插入結果至快取之演算法通常係以參考數9〇〇表示。循環塊 901執行每一查詢結果中之元組一循環。循環塊9〇1包含決定塊9〇2,以決 定元組是否於快取中。若元組是於快取中,則控制傳遞至功能塊9〇3以更 新兀組。若元組不在快取中,則控制傳遞至功能塊9〇4,以插入元組。因此, 運作時,結果組之插入至快取運作&下··當插入絲組至快取時,存在的 列係以於塊903之新值重複寫入,而不存在的列係被插入至塊_的表中。 參考圖10,執行更新異動之演算法,通常係以參考數1〇〇〇表示。功能 塊1001 A結果”rc”執行遠端查詢,並傳遞控制至決定塊觀。若查詢成功, 則塊1002傳遞控制至回覆塊1003,以回覆結果”rc,,。#查詢不成功,則 塊1002傳遞控制至答覆塊麵,以傳播伺服器之資料。塊簡傳遞控制 至回覆塊1005,以回覆結果,,rc,,。 即時更新可見性因此被保證。邊際應用程式所呈遞之更新異動至快 取’係被路由至原始資料庫麵。再者,麟脑完麟,更新之影響會 被快速地,於回覆至應用程式前,自起源麵拉下取得。 快取空間㈣係被快取賴⑽e re細ment)調節。為了限制空間 1262406 費用,以及最佳化通常有限的邊際資源之使用,邊際資料快取依賴安全地 自快取,逐出不使用之資料之背景垃圾收集(garbage—c〇llecti〇n)方法, 同時保留資料一致性。具體地,快取代替之目的,係最大化有限利用空間 之陕取優勢。與傳統槽案與記憶體頁(memory pages)之代替相反的,係基 本列可被共享於複數個查詢。 §本地資料庫之空間使用到達一尚水印值(“high watermark,,)(“HWM,,) 快取代替被啟動。代替接著開始直到空間足夠地被釋放,並到達一低水印 值(“LWM”)。當沒有空間插入更多列於本地表或絲新表時,代替不經一查 勺未擊中之要求被啟動。代替係背景程序,並且可彳細期與查詢服務以及 更新運作同時進行。 參考圖11,快取清除演算法通常係以參考數丨100表示。演算法11〇〇 包含功能塊1101,以擴張表來增加新攔”accessedFlag”。塊11〇1傳遞控 制至功能塊1102,以重設於本地表之所有列之” accessedFlag,,為否。塊· 專遞控制至功此塊11〇3 ’以決定會留在快取中之查詢組”s”。功能塊nog, 依序傳遞控制至功能塊1104以重新執行”s,,組中之所有查詢,以及定任一 選取之列之”accessedFlag”為是。塊接著傳遞控制至功能塊11〇5以刪 除’’accessedFlag”為否之所有列。 决取β除之/寅算’I: 1100稱為群組代替(grQup replaGe_t)。此演算 法係簡易實施,並且不增加額外費用至擊中、未擊中或更新傳播。根據代 日政策’组犧牲者’’查詢被標記於塊11〇3自快取被刪除。為確保無部份 重疊列,係只屬於,,犧牲者,,查詢被適當的標記,實施以下步驟。首先, 22 1262406 accessed Flag,以本區表產生時定義之控棚實施,與所有已快取列相關 以及被定為研塊1102。接著,麵牲者細㈣景塊蘭執行。此背景 執行可存在於-延長時段,而獨響前景查狀性能。每當執行查詢,於 控制欄之對應項目,於每-選取财被定為是。在此執行週期末端,有控 糊之任何列(accessed flag)仍係否的,可被安全地刪除於塊歷。為了 預防垃圾收細細始執行之後,餘取未擊巾或—致性管理器插入列之 冊!I除或更新,被更新或被插人任—列之控侧,被定至本地表。 本揭露之實胁卜方面達成兩方面之最有效面:錢答覆快取之優 勢’更具體地,經營之容及適紅作魏資源可糊性之改變之能力; 以及基準表複製之優勢,更具體地,非重複資料儲存之㈣鱗,以及支 持有效更新基準之一致性協定之能力。 因此本揭露書之一目的,係使用一本地機器以滿足針對至少一個遠端 伺服器之資料庫查詢,經由利用先前查詢之動態快取結果之快取政策。本 揭露之實施例之另一目的係本地資料庫與本地機器有關,並使用以儲存複 數個於共享表中之查詢結果。本揭露之實施例之再一目的,係使用本地儲 存之查詢結果滿足新查詢,經由運作查詢述詞之容器檢查器。容器檢查器 確保新查詢要求之資料,如查詢述詞所定義,係邏輯地包含於快取於複數 個已快取查詢結果之資料組中,係以先前查詢之述詞之聯集描述。 本揭露之實施例之再一目的,係每當有可能,則儲存於邊際快取之資 料,被整理為被定義於原始資料庫之表之,,部分複製,,。原始伺服器接收之查 °旬結果’被插入本地資料庫中。於相同基準表所做之查詢結果,被插入相 23 1262406 同的本區已陳版本之鲜表。本揭露之實施例之另—目的,係複雜查詢 結果,例如包含次查詢、聚集或使用者定義功能之查詢,其中結果非簡胃 ‘ 的基準表之顺組以及攔,係如複數表般本地齡…健果一個。 本揭露之實施例之另-目的,係翻並且不需對應肺式做改變。由 於&取邏輯存在於貢料庫外,適用於任何後端或本地資料庫,並且不需對 貝料庫伺服ϋ做改變。本揭露之實施例之另—目的,係本地已快取資料之 致性,係經由傳播產生於起源之基準表至邊際快取,以及經由利用察覺 致性之演异法處理進入查詢來保持。本揭露之實施例之再一目的,係快 鲁 取可經由自本地資料庫逐出較沒有用之查詢絲,雜調使用於本地之空 間’而不妥協一致性或正確性。 . 本發明的這些以及其他特徵以及優勢根據這裡所教授係熟知此記憶者 报各易察知的。本發明之教授可於多種類型之硬體、軟體、韌體、特殊目 的處理器或任何結合方法中實施。 例如,本發明之教授可以硬體及軟體之結合實施。再者,軟體較佳地 實施於有形地嵌入程式儲存器中。軟體可被上載或執行於包含任何適當的 鲁 架構的機器中。較佳地,機器係實施於,具有例如一或多個中央處理器 (CPU)、隨機存取記憶體(ram)以及輸入輸出(I/O)介面的硬體之電腦平台。 此電腦平台亦可包含運作系統以及微指令碼。在此所描述之許多方法以及 功能’可係微指令碼之一部份或軟體之一部份或任何其結合,係可被硬體 執行。再者,許多其他週邊單元可被連結至電腦平台,例如額外資料健存
TJO 早凡。 24 1262406 更可察知的係由於’圖式所表示之有些構成減元件以及方法,係 較佳地實祕健,祕元件或處理魏塊之㈤之實際連結,可能依據本 揭路所編之程式有所關。根據在此之教授,熟知此技藝者之—可思考本 揭露及其相似之實施或組態。 雖然此描紐之實施例在此細式—同描述,本揭露並不設限於此精 準實苑例,並且許多改變以及修改可被熟知此技藝者之一影響,而不脫離 本揭路之㈣捕神。所錢似改變以及修改,做意被包含於本揭露之 範圍如附加之專利範圍中。 五、【圖示簡單說明】 本揭路依照以下範例圖式教授透明邊際網路資料,其中: 圖1係兩邊際伺服器連結至原始伺服器之概要圖。 圖2係圖1之邊際伺服器之資料快取之方塊圖。 圖3係位於圖2之邊際伺服器資料庫快取之查詢之不同等級之樹圖。 圖4係圖1之邊際伺服器之總查詢處理之流程圖。 圖5係圖2之資料快取所利用之常見概要共享儲存技術之概要圖。 圖6係兩查詢於圖1之原始伺服器之相同表之資料表範例。 圖7係一致性保持協定之概圖。 圖8係考慮一致性之查詢處理演算法之流程圖。 圖9係插入結果至快取之演算法之流程圖。 圖10係執行更新異動之演算法之流程圖。 圖11係調節快取所佔用之空間所使用之背景快取清除演算法之流程 圖示元件符號說明 1262406 100示範網路實施例 101資料庫 102應用伺服器 103網路伺服器 104邊際資料快取 105伺服器 106網路伺服器 107網路連結 108原始伺服器 109、110邊際伺服器 200邊際資料快取 201 Java伺服器程式 202主要部分202 203 JDBC 介面 204查詢評估器 205查詢剖析器 206快取索引 207容器檢查器 208本地儲存庫 209資源管理器 210 —致性管理器 300查詢樹 301 —般快取 302容器可檢查的查詢 303非容器可檢查的查詢303 304簡易查詢(全結果) 305最前η個查詢(部分結果) 1262406 306聚集而不以群組 307複雜子句 414快取儲存處 500本地儲存處 501本地快取儲存處 502單一表 503共享表 504 —508 查詢 600快取表結構 601、602結果資料結構 603本地表 700 —致性協定 701邊際伺服器 702後端伺服器 703 DBProxyO 單元 704、707快取儲存處 705改變APPLY單元705 706 DBMS 單元 708改變CAPTURE單元

Claims (1)

1262406 r—-…-..·'·-1 ! ,Γ Ί 4 修ί 氣::、; 替換頁 2006/6/16 1-------------——一一〜—….—…....................j 案號:92135005 拾、申請專利範圍·· 1· 一種根據一本地應用程式所運作之查詢作資料動態快取的系統,包含: 一具有一完整資料庫之遠端伺服器; 一本地資料庫(local database),係位於一邊際伺服器,包含該完整資料 庫之一子集,該邊際伺服器以訊號與該遠端伺服器連繫; 於該邊際伺服器中之該本地資料庫内之複數個共享表(sharedtable),用 以快取自該完整資料庫之結果、接收本地產生之資料,以及在確保該本地 資料庫與該遠端資料庫間之該資料之一致性的同時,根據可用的儲存需求 調整該快取之該内容。 2· —種根據一本地應用程式所運作之查詢做資料動態快取的系統,且包含 一本地伺服器用以滿足針對至少一個遠端伺服器之一資料庫查詢,該系統 更包含: 一手段’用以動態地快取該遠端伺服器之先前資料庫查詢之結果; 一手段,用以聯繫一本地資料庫與該本地伺服器; 一手段,用以儲存複數個該快取結果於該本地資料庫之共享表;以及 一手段,使用該複數個該快取結果以滿足該本地伺服器之一新資料庫 查詢。 3·種機為可碩取之程式儲存設備,有形地包含可被該機器執行之指令 之-程式,以根據-本地應輕式所運作之查詢,執行資料動態快取且供 本地伺服杰用以滿足針對至少一個遠端伺服器之一資料庫查詢的方法步 28 4IBM/03136TW : YOR9-2002-0341(JHW) 1262406 替換頁2006/6/16 案號:92135005 驟,該方法步驟包含: 動態地快取該遠端伺服器之先前資料庫查詢之結果; 聯繫一本地資料庫與該本地伺服器; 儲存複數個該快取結果於該本地資料庫之共享表;以及 使用該複數個該快取結果以滿足該本地伺服器之―新資料庫查詢。 4· 一種根據一本地應用程式所運作之查詢做資料動態快取之方法,其供一 本地伺服器用以滿足針對至少一個遠端伺服器之一資料庫查詢,該方法包 含: 動態地快取該遠端伺服器之先前資料庫查詢之結果; , 聯繫一本地資料庫與該本地伺服器; 健存複數個該快取結果於該本地資料庫之共享表;以及 使用該複數個該快取結果以滿足該本地伺服器之一新資料庫查詢。 5·如申請專利範圍第4項所述之方法,更包含: 自該複數個該快取結果以及任何其他資料插入於該本地資料庫,而形成 已快取之資料;以及 確保該已快取之資料之一致性。 6·如申請專利範圍第4項所述之方法,更包含,根據至少一個調整準則, 調整该共旱表之該内容。 7.如申請專利範圍第6項所述之方法,其中該至少一個調整準則包含取自 29 4IBM/03136TW ; YOR9-2002-0341(JHW) 1262406 替換頁2006/6/16 案號:92135005 一準則群組之一準則,係包含·· 該本地伺服器之可用空間; 該查詢之儲存需求; 該查詢之執行成本; 遠本地與該遠端伺服器之該網路之性能; 該本地與該遠端伺服器之負載量; 该已快取之查詢之存取率,·以及 以上之任何一組合。 8. 如申請專利範圍第4項所述之方法,其中該使用步驟包含加速對該至少 一個遠端伺服器的查詢。 9. 如申請專利範圍第4項所述之方法,其中該儲存步驟包含: 將簡易的及最前η個查詢之結果插入於共享基準表(如福咖_中 之一單一資料庫表; 儲存結合查詢(j〇inqueries)之該結果於共享結合表; 產生-共享表儲存庫,該共享表儲存庫包含财該共享基準表以及共 享結合表; ’、 儲存複雜查詢(complex qUeries)之該結果於個別表,每一查詢結果一 表;以及 自。亥複數個该個別表產生一完全匹配(exact_match)儲存庫。 ι〇·如申請專利範圍第9項所述之方法,其中該插人步驟包含: 30 4IBM/03136TW ; Y〇R9-2002^0341(JHW) 1262406 替換頁2006/6/16 案號:92135005 每當一基準表第一次接收一簡易查詢,於該快取產生一單一本地表 (local table),以相應於該原始伺服器之一基準表; 插入該簡易查詢之該結果於該本地表;以及 插入所有隨後之簡易查詢之該結果於該本地表之該基準表。 11.如申請專利範圍第9項所述之方法,其中該儲存步驟包含: 於該快取產生一本地結合表,以相應每一結合條件以及一結合查詢之 表清單(table list);以及 插入所有隨後之結合查詢之該結果於該相同表清單,以及於該本地結 合表擁有該相同結合情況。 12·如申請專利範圍第4項所述之方法,其中該使用步驟包含以下至少一步 驟: 若該查詢係複雜,則於該完全匹配儲存庫搜尋該新查詢之該答覆;以 及 若該新查詢係不複雜,則自該共享表儲存庫之該資料子選取 (sub-selecting)該新查詢之該答覆。 13·如申請專利範圍第12項所述之方法,其中該搜尋步驟包含: 若該新查詢之該SQL串係於該完全匹配儲存庫中找到,則回覆相應一 SQL串之該快取之該查詢結果至該應用程式; 若該新查詢之該SQL串未於該完全匹配儲存庫中找到,則傳送該新查 詢至該原始伺服器; 31 4IBM/03136TW ; YOR9-2002-0341(JHW) 1262406 替換頁2006/6/16 ^ 案號:92135005 若該新查詢之該SQL串未於該完全匹配儲存庫中找到,則插入該已接 收之查詢結果於該完全匹配儲存庫·,以及 若該新查詢之該SQL串未於該完全匹配儲存庫中找到,則聯繫於快取 中之該查詢結果以及該新查詢之SQL串。 14·如申請專利範圍第12項所述之方法,其中該子選取步驟包含: 利用-容ϋ檢查ϋ,試圖證明該新查詢結果組之該結果,係包含於已 快取之查詢結果之該聯集中; 若該試圖證明上述之步驟係成功地完成,則職本地表名替換於該新 查詢所述之該表; 若該試圖證明上述之步縣成功地完成,則於該共享表贿庫評估該 新查詢;以及 若該本區快取係-最前η健詢,則計算接收自該核快取之列數, 以及若其舰不超職應贿摘要求之龍,_重新寫騎查詢以及 產生-已重新寫之查詢處理,傳送該重新寫之查詢至起始點,以及將接收 自該原翻㈣之該縣存㈣共享表齡庫,_觸寫之查詢之該述 詞(predicate)加入至該共享表儲存庫之該索引,於該共享表儲存庫評估該新 查詢,以及將該評估步驟之該結果答覆至該應用程式。 15.如申請侧翻第Η)獅述之方法’其巾賴圖步驟包含至少一步驟: 尋找-匹配之已快取之查職以下條件,於該新查詢之選取清單之 欄清單係包含於觀配查狀欄清單巾,騎錢之述觸輯性地暗指該 4IBM/03I36TW ; Y〇R9-2002-0341(JHW) 1262406 替換頁2006/6/16 案號:92135005 该攔係包含於該 匹配查詢之述詞,以及該新查詢之許多子句所提及之所有 匹配查詢之該選取清單中;以及 尋找一匹配之已快取查詢組滿足以下條件,於該新查詢之選取清單之 欄清單,係包含於該匹配查詢之每-攔清單,該新查詢之述詞邏輯性地暗 指所有該匹配查詢述詞之分離(disjunction)所形成之該述詞,當所有述气鲈 由該邏輯OR操作器連結,以及於該新查詢之許多子句所述之所有該搁,係 包含於每一該匹配查詢之該選取清單中。 16.如申請專利範圍第14項所述之方法,其中該重新寫人步驟包含: 增加該存取表之該主要關鍵至該查詢之選取清單; 若該資源管理ϋ估計該產生之結果組為不太域值得快取,則降低該 聚集(aggregation)操作器自該選取清單;以及 擴增該查詢所要求之列數(N)以擷取更多列。 17·如申請專利範圍第5項所述之方法,其中該確保步驟包含··保證如該應 用程式所指一致性要求群組中之至少其一,包含差量一致性(ddta consistency)、即時更新可見性(i_ediateupdatevisibility)u及單調 (monotonic)狀態變遷。 18.如申請專利範圍第4項所述之方法,更包含確保先前查詢之該結果之差 量一致性,包含以下步驟: 食署该貧料快取至傳播(pr〇pagated)於該起源之再新訊息(refresh message) ’並包含施加於該後端表之更新、刪除以及插入; 33 4IBM/03136TW ; YOR9-2002-0341(JHW) 1262406 每當接收_再新訊息,實施該更新、 庫之本地快取表; 替換頁2006/6/16 案號:92135005 刪除以及插入至該共享表儲存 使於再新Λ息論為已改變㈣琴①之购共享結合表或於該完全匹 配儲存處之表為無效; 、再新況心日守間戳記(timestamP)與一再新訊息,該時間戳記等於杯 何異動之最鱗間败,雜何鶴之效應係包含於該訊息巾;、、 取”繫已快取既定時間戳記(cached set timest啣換先前查詢之該結 果。亥先則查為之該結果,係與施加於該快取之該最後再新訊息之該時間 戮記相同; 聯繫-新查詢時間戮記與一新查詢; 將《亥新查询時間戳記與該已快取既定時間戳記比較; 右補查詢時峨記超過該已快取既定時職記,麻人_答覆給該 新查詢;以及 右该新查询時間戮記超過該已快取既定時間霍戈記,則自該資料庫祠服 器擷取等候之再新訊息。 I9.如申請專利範圍第4項所述之方法,更包含確保即時更新可見性,包含 以下步驟: 路由快取接收於該邊際資料之更新異動,至該原始伺服器; 該原始伺服ϋ接㈣魏完錢知之後,減答覆該完餘態給該應 用程式前,提取更新訊息於該原始伺服器;以及 §上述之该路由以及提取步驟進行中,確保該應用程式無存取至已快 4IBM/03136TW ; YOR9-2002-034l(JHW) !262406 替換頁2006/6/16 案號:92135005 取資料。 20.如申請專利範圍第6項所述之方法,該調整之步驟包含依_儲存空間管 理策略(stomge space management p〇licy)開啟(initiating)共享表清除咖 table cleaning)。 21·如申請專利範圍g 13項所述之方法,其中該共享表清除包含: 自該共享表組成一控制攔於每一表; 定該控制攔之項目為空值(false); 辨別要被保存於該共享表之有益查詢; 將相對針對有意查詢所屬的答覆的列之控制攔中的所有項目,進行標 示;以及 刪除該控制列項目,仍為空值之任一於該共享表中之列。 22. -種根據-本地應用程式所運作之查詢做資料動態快取之方法,以破保 娜於-龍庫値器之查詢結果組之差量—致性,該方法包含以下步驟: 簽署該資料快取至傳播於該起源之再新訊息,並包含施加於該後端表 之更新、刪除以及插入; 每當接收到該再新訊息,實施該更新、刪除以及插人至該共享表儲存 庫之本地快取表; 聯繫-時間戳記與-再新訊息,該時間戳記等於任何異動之最大時間 戳記,該任何異動之效應係包含於該訊息中; 聯繫-既定時_記與絲麵之該絲,該先前查詢线結果,係 35 4IBM/〇3136TW;Y〇R9.2〇〇2.〇341(JHW) 1262406 替換頁2006/6/16 案號:92135005 與施加於該快取之該最後再新訊息之該時間戳記相同; 聯繫一新查詢時間戳記與一新查詢; 將該新查詢時間戳記與該既定時間戳記比較; 若該新查詢時間戳記超過該既定時間戳記,則插入一答覆給該新查 詢;以及 若該新查詢時間戳記超過該既定時間戳記,則自該資料庫伺服器擷取 等候再新訊息。 2 3 · —種根據一本地應用程式所運作之查詢做資料動態快取之系統,且包含 一本地伺服器,以確保擷取於一資料庫伺服器之一組查詢結果之差量一致 性,該系統包含·· 一手段,用以動態地快取該遠端伺服器之先前資料庫查詢之結果; 一手段,用以聯繫一本地資料庫與該本地伺服器; 一手段,用以儲存複數個該快取結果於該本地資料庫之共享表; 一手段,使用該複數個該快取結果以滿足該本地伺服器之一新資料庫 查詢; 一手段,用以簽署該資料快取至傳播於該起源之再新訊息,並包含施 加於该後端表之更新、刪除以及插入; 一手段,每當接收到該再新訊息,用以實施該更新、刪除以及插入至 本地快取表; 一手段,用以聯繫一時間戳記與一再新訊息,該時間戳記等於任何異 動之最大時間戳記,該任何異動之效應係包含於該訊息中; 36 4IBM/03136TW ; YOR9-2002-0341(JHW) 1262406 替換頁2006/6/16 案號:92135005 一手段,肋聯繫-既定時間戳記與先前查詢之該結果,該先前查詢 之_果,係無加於職取之該最後再新訊息之鱗峨記相同; 一手段,用以聯繫一新查詢時間戳記與一新查詢; 手段,用以將該新查詢時間戳記與該既定時間戳記比較; 手丰又,若该新查詢時間戳記超過該既定時間戳記,則用以插入一答 覆給該新查詢;以及 一手段,若該新查詢時間戳記超過該既定時間戳記,則用以自該資料 庫伺服器擷取等候再新訊息。 24· —種一機器可讀取之程式儲存設備,有形地包含藉該機器執行之一程式 才曰令,以運作用以動態快取根據一本地應用程式所運作之查詢做資料,且 用以確保擷取於一資料庫伺服器之一組查詢結果之差量一致性的方法步 驟,該方法步驟包含: 動態地快取該遠端伺服器之先前資料庫查詢之結果; 聯繫一本地資料庫與該本地伺服器; 儲存複數個該快取結果於該本地資料庫之共享表; 使用該複數個該快取結果以滿足該本地伺服器之一新資料庫查詢; 簽署該資料快取至傳播於該起源之再新訊息,並包含施加於該後端表 之更新、刪除以及插入; 每當接收到該再新訊息,實施該更新、刪除以及插入至該共享表儲存 庫之本地快取表; 聯繫一時間戳記與一再新訊息,該時間戳記等於任何異動之最大時間 37 4IBM/03136TW ; YOR9-2002-0341(JHW) l2624〇6 替換頁2006/6/16 戰記,兮/工h田乂 案號:92135005 ^任何兴動之效應係包含於該訊息中; 〗聯繫-既定時間戳記與絲查詢之該結果,該先前查詢之該結果,係 人知加於_取之該最後再新訊息之該時峨記相同; 聯繫一新查詢時間戳記與一新查詢; 將邊新查詢時間戳記與該既定時間戳記比較; 亥新查5旬時間戳記超過該既定時間戳記,則插入一答覆給該新查 詢;以及 若該新查詢時間戳記超過該既定時間戳記,則自該資料庫伺服器擷取 荨候再新訊息。 38 4IBM/03136TW ; YOR9-2002-0341(JHW)
TW092135005A 2002-12-23 2003-12-11 System, method and program storage device for dynamic caching of data based on queries performed by a local application TWI262406B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/328,229 US6950823B2 (en) 2002-12-23 2002-12-23 Transparent edge-of-network data cache

Publications (2)

Publication Number Publication Date
TW200426625A TW200426625A (en) 2004-12-01
TWI262406B true TWI262406B (en) 2006-09-21

Family

ID=32680768

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092135005A TWI262406B (en) 2002-12-23 2003-12-11 System, method and program storage device for dynamic caching of data based on queries performed by a local application

Country Status (12)

Country Link
US (1) US6950823B2 (zh)
EP (1) EP1581886B1 (zh)
JP (1) JP4416663B2 (zh)
KR (1) KR100745883B1 (zh)
CN (1) CN1708757B (zh)
AT (1) ATE472774T1 (zh)
AU (1) AU2003279289A1 (zh)
CA (1) CA2507014C (zh)
DE (1) DE60333230D1 (zh)
IL (1) IL169267A0 (zh)
TW (1) TWI262406B (zh)
WO (1) WO2004061716A1 (zh)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003060707A1 (en) * 2002-01-11 2003-07-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (cdn)
US7499910B2 (en) * 2002-06-27 2009-03-03 Siebel Systems, Inc. Detecting and processing cache hits for queries with aggregates
US7277718B2 (en) * 2002-07-22 2007-10-02 Cingular Wireless Ii, Llc Methods and apparatus for formatting information for a communication
JP4007594B2 (ja) * 2002-09-26 2007-11-14 株式会社東芝 動画像符号化装置及び方法、動画像符号化方式変換装置及び方法
US7089235B2 (en) * 2003-04-17 2006-08-08 International Business Machines Corporation Method for restricting queryable data in an abstract database
US20040236726A1 (en) * 2003-05-19 2004-11-25 Teracruz, Inc. System and method for query result caching
US7624126B2 (en) * 2003-06-25 2009-11-24 Microsoft Corporation Registering for and retrieving database table change information that can be used to invalidate cache entries
US7467131B1 (en) * 2003-09-30 2008-12-16 Google Inc. Method and system for query data caching and optimization in a search engine system
US9176719B2 (en) * 2004-02-26 2015-11-03 International Business Machines Corporation Resolving prerequisites for a client device in an open service gateway initiative (OSGI) framework
US7478396B2 (en) * 2004-03-22 2009-01-13 International Business Machines Corporation Tunable engine, method and program product for resolving prerequisites for client devices in an open service gateway initiative (OSGi) framework
US7337164B2 (en) * 2004-03-31 2008-02-26 Sap Ag Fast search with very large result set
US7840557B1 (en) * 2004-05-12 2010-11-23 Google Inc. Search engine cache control
US7457796B2 (en) * 2004-07-08 2008-11-25 International Business Machines Corporation Method using virtual replicated tables in a cluster database management system
US7395258B2 (en) * 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
US20060095403A1 (en) * 2004-11-03 2006-05-04 International Business Machines Corporation Method, system and program product for filtering model objects
US20060294088A1 (en) * 2005-06-27 2006-12-28 International Business Machines Corporation Method, system, and computer program product for caching dynamically generated queries
US8468152B2 (en) * 2005-08-04 2013-06-18 International Business Machines Corporation Autonomic refresh of a materialized query table in a computer database
GB0517585D0 (en) * 2005-08-30 2005-10-05 Ramakrishna Madhusudana Intuitive search which delivers fast results on the mobile phone
US20070143344A1 (en) * 2005-12-15 2007-06-21 International Business Machines Corporation Cache maintenance in a distributed environment with functional mismatches between the cache and cache maintenance
CN101005649A (zh) * 2006-01-19 2007-07-25 华为技术有限公司 一种多方通信业务的连接建立方法及系统
US7809882B1 (en) 2006-01-24 2010-10-05 Verizon Services Corp. Session independent backend data cache system
US7765275B2 (en) * 2006-01-27 2010-07-27 International Business Machines Corporation Caching of private data for a configurable time period
US20070185836A1 (en) * 2006-02-09 2007-08-09 Handy-Bosma John H Method for caching faceted search results
US7805425B2 (en) 2006-04-28 2010-09-28 Microsoft Corporation Efficient database lookup operations
US8384700B2 (en) 2007-01-26 2013-02-26 Microsoft Corporation Linked shell
JP4920303B2 (ja) * 2006-05-17 2012-04-18 株式会社野村総合研究所 データ処理システム
US20080005721A1 (en) * 2006-06-29 2008-01-03 Augusta Systems, Inc. Method and System for Rapidly Developing Sensor-Enabled Software Applications
US8015547B2 (en) * 2006-06-29 2011-09-06 Augusta Systems, Inc. Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US7698505B2 (en) * 2006-07-14 2010-04-13 International Business Machines Corporation Method, system and computer program product for data caching in a distributed coherent cache system
US7660787B2 (en) * 2006-07-19 2010-02-09 International Business Machines Corporation Customized, personalized, integrated client-side search indexing of the web
US7831620B2 (en) * 2006-08-31 2010-11-09 International Business Machines Corporation Managing execution of a query against a partitioned database
US7962442B2 (en) * 2006-08-31 2011-06-14 International Business Machines Corporation Managing execution of a query against selected data partitions of a partitioned database
US20080065590A1 (en) * 2006-09-07 2008-03-13 Microsoft Corporation Lightweight query processing over in-memory data structures
US7451225B1 (en) * 2006-09-12 2008-11-11 Emc Corporation Configuring a cache prefetch policy in a computer system employing object addressable storage
US10296629B2 (en) * 2006-10-20 2019-05-21 Oracle International Corporation Server supporting a consistent client-side cache
US9697253B2 (en) * 2006-10-20 2017-07-04 Oracle International Corporation Consistent client-side cache
US7814234B2 (en) * 2006-10-30 2010-10-12 Microsoft Corporation Offline execution of web based applications
US8452756B2 (en) 2006-11-09 2013-05-28 International Business Machines Corporation Database execution detail repository
US7814095B2 (en) * 2006-12-27 2010-10-12 Sybase, Inc. Optimizing the navigation of one-to-one and one-to-many relationships using query batching in named transactions
US7925900B2 (en) 2007-01-26 2011-04-12 Microsoft Corporation I/O co-processor coupled hybrid computing device
US7774354B2 (en) * 2007-08-02 2010-08-10 International Business Machines Corporation Method and system for response time optimization for task list retrieval from databases
US7752219B2 (en) * 2007-08-21 2010-07-06 International Business Machines Corporation Apparatus, system, and method for customized event processing using a JDBC resource adapter
US20090164521A1 (en) * 2007-12-20 2009-06-25 George Lo Method and system for integrating multiple authoring applications in a collaborative environment
US7912812B2 (en) * 2008-01-07 2011-03-22 International Business Machines Corporation Smart data caching using data mining
JP5235483B2 (ja) * 2008-04-30 2013-07-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースと仮想テーブルの整合性を維持する方法および装置。
US20100036805A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation System Maintainable and Reusable I/O Value Caches
US20100036804A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation Maintained and Reusable I/O Value Caches
EP2342862A2 (en) * 2008-10-03 2011-07-13 Limelight Networks, Inc. Content delivery network encryption
US9183260B2 (en) * 2008-10-09 2015-11-10 International Business Machines Corporation Node-level sub-queries in distributed databases
US8301583B2 (en) 2008-10-09 2012-10-30 International Business Machines Corporation Automated data conversion and route tracking in distributed databases
US8458208B2 (en) * 2008-10-09 2013-06-04 International Business Machines Corporation Automated data source assurance in distributed databases
US8458166B2 (en) * 2008-10-09 2013-06-04 International Business Machines Corporation Dynamic context definitions in distributed databases
US8145652B2 (en) * 2008-10-09 2012-03-27 International Business Machines Corporation Automated propagation of non-conflicting queries in distributed databases
US8285710B2 (en) 2008-10-09 2012-10-09 International Business Machines Corporation Automated query path reporting in distributed databases
GB2465773A (en) * 2008-11-27 2010-06-02 Symbian Software Ltd Data Storage and Access
JP5181140B2 (ja) 2009-02-23 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースを検索するためのコンピュータ・システム、方法及びコンピュータ・プログラム
US8161244B2 (en) * 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US9111006B2 (en) * 2010-03-16 2015-08-18 Salesforce.Com, Inc. System, method and computer program product for communicating data between a database and a cache
US8898181B2 (en) * 2010-06-22 2014-11-25 Microsoft Corporation Subscription for integrating external data from external system
US9792307B2 (en) * 2010-07-27 2017-10-17 Oracle International Corporation Enterprise-based searching of new and updated data
US8612413B2 (en) * 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US20120130963A1 (en) * 2010-11-24 2012-05-24 Teradata Us, Inc. User defined function database processing
US8983902B2 (en) * 2010-12-10 2015-03-17 Sap Se Transparent caching of configuration data
US8412721B2 (en) * 2011-07-29 2013-04-02 International Business Machines Corporation Efficient data extraction by a remote application
US8560496B2 (en) * 2011-11-29 2013-10-15 Microsoft Corporation Database query across processes with change notification
US8843758B2 (en) * 2011-11-30 2014-09-23 Microsoft Corporation Migrating authenticated content towards content consumer
US10467212B2 (en) 2012-04-27 2019-11-05 Empire Technology Development Llc Multiple variable coverage memory for database indexing
US9026553B2 (en) * 2012-11-29 2015-05-05 Unisys Corporation Data expanse viewer for database systems
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
WO2014136172A1 (ja) 2013-03-04 2014-09-12 株式会社東芝 データベース装置、プログラムおよびデータ処理方法
CN104111962B (zh) * 2013-04-22 2018-09-18 Sap欧洲公司 具有批量操作的增强型事务高速缓存
CN104216901B (zh) * 2013-05-31 2017-12-05 北京新媒传信科技有限公司 信息搜索的方法和系统
KR101515304B1 (ko) * 2013-11-08 2015-07-02 한국산업기술대학교산학협력단 하둡 기반의 리듀스-사이드 조인 처리 시스템의 리듀스-사이드 조인 질의 처리 방법
CN103559307A (zh) * 2013-11-18 2014-02-05 中国农业银行股份有限公司 一种查询的缓存方法及装置
US10311054B2 (en) * 2014-01-08 2019-06-04 Red Hat, Inc. Query data splitting
US10114874B2 (en) * 2014-02-24 2018-10-30 Red Hat, Inc. Source query caching as fault prevention for federated queries
US10498663B2 (en) * 2014-03-12 2019-12-03 Amazon Technologies, Inc. Profile-based cache management
GB2524072A (en) 2014-03-14 2015-09-16 Ibm Demand-driven dynamic aggregate
CN104268286A (zh) * 2014-10-21 2015-01-07 北京国双科技有限公司 一种查询热数据的方法
US10572442B2 (en) 2014-11-26 2020-02-25 Microsoft Technology Licensing, Llc Systems and methods for providing distributed tree traversal using hardware-based processing
CN109347925B (zh) * 2014-12-31 2021-07-09 华为技术有限公司 缓存方法、缓存边缘服务器、缓存核心服务器和缓存系统
CN106708819A (zh) * 2015-07-17 2017-05-24 阿里巴巴集团控股有限公司 一种数据缓存的预热方法及其装置
US20170034248A1 (en) * 2015-07-30 2017-02-02 Bank Of America Corporation File Movement Service Utility
US11895212B2 (en) * 2015-09-11 2024-02-06 Amazon Technologies, Inc. Read-only data store replication to edge locations
US10848582B2 (en) 2015-09-11 2020-11-24 Amazon Technologies, Inc. Customizable event-triggered computation at edge locations
US20170195449A1 (en) * 2015-12-30 2017-07-06 Business Objects Software, Ltd. Smart proxy for datasources
CN107193813B (zh) 2016-03-14 2021-05-14 阿里巴巴集团控股有限公司 数据表连接方式处理方法及装置
CN107789829B (zh) * 2016-09-06 2020-12-08 盛趣信息技术(上海)有限公司 一种游戏物品数据传输的方法
CN106407374A (zh) * 2016-09-09 2017-02-15 浪潮软件股份有限公司 一种适用于移动开发的高性能缓存方法
US10380137B2 (en) * 2016-10-11 2019-08-13 International Business Machines Corporation Technology for extensible in-memory computing
CN107665228B (zh) * 2017-05-10 2019-12-20 平安科技(深圳)有限公司 一种关联信息查询方法、终端及设备
CN107466482B (zh) * 2017-06-07 2021-07-06 香港应用科技研究院有限公司 在蜂窝通信系统中联合确定计算卸载和内容预取的方法和系统
US10721719B2 (en) * 2017-06-20 2020-07-21 Citrix Systems, Inc. Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node
JP6812321B2 (ja) * 2017-08-25 2021-01-13 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム
US10740318B2 (en) * 2017-10-26 2020-08-11 Sap Se Key pattern management in multi-tenancy database systems
US11567934B2 (en) 2018-04-20 2023-01-31 Oracle International Corporation Consistent client-side caching for fine grained invalidations
CN108989062B (zh) * 2018-07-25 2020-05-01 北京达佳互联信息技术有限公司 更新群成员数据的方法、装置、终端、系统及存储介质
US11487737B2 (en) * 2019-03-26 2022-11-01 Sap Se Take over table opening for operators
US11163756B2 (en) * 2019-04-16 2021-11-02 Snowflake Inc. Querying over external tables in database systems
US11080257B2 (en) * 2019-05-13 2021-08-03 Snowflake Inc. Journaled tables in database systems
US11455305B1 (en) * 2019-06-28 2022-09-27 Amazon Technologies, Inc. Selecting alternate portions of a query plan for processing partial results generated separate from a query engine
CN110557432B (zh) * 2019-07-26 2022-04-26 苏州浪潮智能科技有限公司 一种缓存池均衡优化方法、系统、终端及存储介质
US20210173888A1 (en) * 2019-12-08 2021-06-10 Akamai Technologies Inc. Proxy server caching of database content
CN112632129B (zh) * 2020-12-31 2023-11-21 联想未来通信科技(重庆)有限公司 一种码流数据管理方法、装置及存储介质
US11704327B2 (en) 2021-03-19 2023-07-18 International Business Machines Corporation Querying distributed databases
US11727022B2 (en) 2021-03-19 2023-08-15 International Business Machines Corporation Generating a global delta in distributed databases
CN112883119B (zh) * 2021-04-30 2022-05-17 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机设备及计算机可读存储介质
US11792147B2 (en) 2021-11-29 2023-10-17 Aidan Lok Communications networks
CN116910100B (zh) * 2023-09-08 2023-11-28 湖南立人科技有限公司 用于低代码平台的缓存数据处理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2650180B2 (ja) * 1993-03-19 1997-09-03 サンケン電気株式会社 2方向性2端子サイリスタ
US5897632A (en) * 1996-08-27 1999-04-27 At&T Corp Method and system for using materialized views to evaluate queries involving aggregation
US6275819B1 (en) * 1999-03-16 2001-08-14 Novell, Inc. Method and apparatus for characterizing and retrieving query results
US6393415B1 (en) * 1999-03-31 2002-05-21 Verizon Laboratories Inc. Adaptive partitioning techniques in performing query requests and request routing
US6601062B1 (en) * 2000-06-27 2003-07-29 Ncr Corporation Active caching for multi-dimensional data sets in relational database management system
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
WO2002069172A1 (en) * 2001-02-22 2002-09-06 Didera, Inc. Systems and methods for managing distributed database resources
US7035846B2 (en) * 2002-09-23 2006-04-25 International Business Machines Corporation Methods, computer programs and apparatus for caching directory queries

Also Published As

Publication number Publication date
CN1708757B (zh) 2010-04-28
EP1581886B1 (en) 2010-06-30
ATE472774T1 (de) 2010-07-15
WO2004061716A1 (en) 2004-07-22
JP4416663B2 (ja) 2010-02-17
CN1708757A (zh) 2005-12-14
KR20050085133A (ko) 2005-08-29
AU2003279289A1 (en) 2004-07-29
US6950823B2 (en) 2005-09-27
EP1581886A1 (en) 2005-10-05
TW200426625A (en) 2004-12-01
DE60333230D1 (en) 2010-08-12
CA2507014C (en) 2010-12-21
CA2507014A1 (en) 2004-07-22
KR100745883B1 (ko) 2007-08-02
IL169267A0 (en) 2007-07-04
US20040133538A1 (en) 2004-07-08
JP2006511876A (ja) 2006-04-06
EP1581886A4 (en) 2007-07-18

Similar Documents

Publication Publication Date Title
TWI262406B (en) System, method and program storage device for dynamic caching of data based on queries performed by a local application
US10353895B2 (en) Atomic visibility switch for transactional cache invalidation
US10877956B2 (en) Transactional cache invalidation for inter-node caching
JP4593793B2 (ja) 問合せ可能なダイナミック・キャッシュを有するウェブサーバ
US6487641B1 (en) Dynamic caches with miss tables
Ports et al. Transactional consistency and automatic management in an application data cache
US9251163B2 (en) File sharing system and file sharing method
US9697253B2 (en) Consistent client-side cache
US7117222B2 (en) Pre-formatted column-level caching to improve client performance
US8224807B2 (en) Enhanced utilization of query optimization
US20080098041A1 (en) Server supporting a consistent client-side cache
US20080306920A1 (en) Byte-code representations of actual data to reduce network traffic in database transactions
JP2006511876A5 (zh)
US20040220940A1 (en) System and method for decoupling object identification for the purpose of object switching in database systems
US11176111B2 (en) Distributed database management system with dynamically split B-tree indexes
WO2020192663A1 (zh) 一种数据管理方法及相关设备
Arnold et al. HRDBMS: Combining the best of modern and traditional relational databases
CN113127717A (zh) 一种密钥检索方法和系统
Tang et al. Write-optimized indexing for log-structured key-value stores
Ghandeharizadeh et al. SQL Query To Trigger Translation: A Novel Consistency Technique for Cache Augmented SQL Systems
RK et al. Transactional Consistency and Automatic Management in an Application Data Cache

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees