US2003200209A1PendingUtilityA1

System and method for routing database requests to a database and a cache

Priority: Nov 15, 2000Filed: Jun 11, 2003Published: Oct 23, 2003
Est. expiryNov 15, 2020(expired)· nominal 20-yr term from priority
Y10S707/99952G06F 16/24539G06F 16/24524Y10S707/99933Y10S707/99938
20
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system and method for routing database requests from application logic to a cache and a database, including receiving a database request from the application logic, determining whether the database request is informational or transactional, routing the database request to the cache if the database request is informational, and routing the database request to the database if the database request is transactional. A first example embodiment includes a database which is accessed using a first driver, a cache, and a second driver which determines whether database requests received from application logic are informational or transactional, where informational database requests are routed to the cache and transactional database requests are routed to the database using the first driver.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
         1 . A method for processing database requests from application logic, comprising: 
 (a) receiving a database request;    (b) determining whether said database request is informational or transactional;    (c) routing said database request to a cache if said database request is informational; and    (d) routing said database request to a database if said database request is transactional.    
     
     
         2 . The method of  claim 1 , wherein said database request includes a transaction isolation level, said method further comprising determining whether said transaction isolation level is greater than a first threshold, and if so, routing said database request to said database.  
     
     
         3 . The method of  claim 1 , wherein said database request includes a concurrency setting, said method further comprising determining whether said concurrency setting is less than a second threshold, and if so, routing said database request to said database.  
     
     
         4 . The method of  claim 1 , wherein said database request is routed to said cache using a second driver, said database request is routed to said database using a first driver, and said first driver is a slave to said second driver.  
     
     
         5 . The method of  claim 1 , wherein said determining whether said database request is informational or transactional comprises determining whether said database request is read only, and if so, identifying said database request as informational, and if not, identifying said database request as transactional.  
     
     
         6 . The method of  claim 1 , wherein said database request includes a reference to target data, and wherein said method further comprises determining whether said target data is stored within said cache, and if not, routing said database request to said database.  
     
     
         7 . The method of  claim 1 , wherein said method further comprises determining whether said database request is suitable for processing by said cache, and if not, routing said database request to said database.  
     
     
         8 . The method of  claim 1 , wherein said database request includes a reference to target data, and wherein said routing said database request to said cache comprises determining whether said cache is remote from the application logic, and if so, sending said database request to said cache and determining whether said target data is stored within said cache, and if not, routing said database request to said database.  
     
     
         9 . The method of  claim 1 , wherein said database stores a memory portion and said cache stores a subset of said memory portion, wherein said method further comprises determining whether said database request changes said subset stored in said database, and if so, updating said subset stored in said cache.  
     
     
         10 . The method of  claim 9 , wherein said database request comprises an SQL request, and wherein said subset is changed if said SQL request is an INSERT, UPDATE, or DELETE command.  
     
     
         11 . The method of  claim 1 , wherein said database stores a memory portion and said cache stores a subset of said memory portion, wherein said method further comprises polling said database to determine whether said subset stored in said database has changed, and if so, updating said subset stored in said cache.  
     
     
         12 . The method of  claim 1 , further comprising: 
 (e) detecting changes to said database; and    (f) replicating said changes in said cache.    
     
     
         13 . A system for processing a database request from application logic, wherein target data associated with the database request is stored in a database, and wherein the database is accessed using a first driver, said system comprising: 
 a cache; and    a second driver to determine whether the database request is informational or transactional,    wherein informational database requests are routed to said cache using said second driver and transactional database requests are routed to the first driver.    
     
     
         14 . The system of  claim 13 , wherein said cache comprises a main memory database.  
     
     
         15 . The system of  claim 14 , wherein said cache further comprises a secondary disk cache coupled to said main memory database.  
     
     
         16 . The system of  claim 13 , wherein said cache stores relational data.  
     
     
         17 . The system of  claim 13 , wherein the application logic loads said second driver, and said second driver provides an application programming interface (API) for the application logic.  
     
     
         18 . The system of  claim 17 , wherein the database requests comprise Structured Query Language (SQL) requests.  
     
     
         19 . The system of  claim 18 , wherein said second driver supports the Open Database Connectivity (ODBC) standard.  
     
     
         20 . The system of  claim 18 , wherein said second driver supports the Java Database Connectivity (JDBC) standard.  
     
     
         21 . The system of  claim 13 , wherein said cache communicates with said second driver according to Hypertext Transfer Protocol (HTTP).  
     
     
         22 . The system of  claim 13 , wherein said cache supports XML Query Language (XQL).  
     
     
         23 . The system of  claim 13 , wherein said second driver calls the first driver to establish a connection with the database.  
     
     
         24 . The system of  claim 13 , further comprising: 
 means for detecting changes to said database; and    means for replicating said changes in said cache.    
     
     
         25 . Computer executable software code, comprising: 
 code to receive a database request from application logic;    code to determine whether said database request is informational or transactional;    code to route said database request to a cache if said database request is informational; and    code to route said database request to a database if said database request is transactional.    
     
     
         26 . The software code of  claim 25 , wherein said database request includes a transaction isolation level, said software code further comprising code to determine whether said transaction isolation level is greater than a first threshold, and if so, to route said database request to said database.  
     
     
         27 . The software code of  claim 25 , wherein said database request includes a concurrency setting, said software code further comprising code to determine whether said concurrency setting is less than a second threshold, and if so, to route said database request to said database.  
     
     
         28 . The software code of  claim 25 , wherein code to determine whether said database request is informational or transactional comprises code to determine whether said database request is read only, and if so, to identify said database request as informational, and if not, to identify said database request as transactional.  
     
     
         29 . The software code of  claim 25 , wherein said database request includes a reference to target data, and wherein said software code further comprises code to determine whether said target data is stored within said cache, and if not, to route said database request to said database.  
     
     
         30 . The software code of  claim 25 , wherein said software code further comprises code to determine whether said database request is suitable for processing by said cache, and if not, to route said database request to said database.  
     
     
         31 . The software code of  claim 25 , wherein said database request includes a reference to target data, and wherein said code to route said database request to said cache comprises code to determine whether said cache is remote from the application logic, and if so, to send said database request to said cache and to determine whether said target data is stored within said cache, and if not, to route said database request to said database.  
     
     
         32 . The software code of  claim 25 , wherein said database stores a memory portion and said cache stores a subset of said memory portion, wherein said software code further comprises code to determine whether said database request changes said subset stored in said database, and if so, to update said subset stored in said cache.  
     
     
         33 . The software code of  claim 32 , wherein said database request comprises an SQL request, and wherein said subset is changed if said SQL request is an INSERT, UPDATE, or DELETE command.  
     
     
         34 . The software code of  claim 25 , wherein said database stores a memory portion and said cache stores a subset of said memory portion, wherein said software code further comprises code to poll said database to determine whether said subset stored in said database has changed, and if so, to update said subset stored in said cache.  
     
     
         35 . The software code of  claim 25 , further comprising: 
 code to detect changes to said database; and    code to replicate said changes in said cache.    
     
     
         36 . The software code of  claim 35 , wherein said code to replicate said changes in said cache comprises code to notify said cache of said changes.

Join the waitlist — get patent alerts

Track US2003200209A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.