×

Serving cached query results based on a query portion

  • US 7,797,298 B2
  • Filed: 02/28/2006
  • Issued: 09/14/2010
  • Est. Priority Date: 02/28/2006
  • Status: Active Grant
First Claim
Patent Images

1. A method of providing query results, the method comprising:

  • obtaining at a distributor server and from a user a beginning portion of a query comprising a number of characters at a beginning of the query;

    determining at the distributor server whether the obtained portion of the query matches a predetermined ignore entry corresponding to a portion of the query that is to be ignored, the determining being performed prior to obtaining a succeeding portion of the query from the user;

    if the obtained portion of the query matches the predetermined ignore entry corresponding to the portion of the query that is to be ignored, obtaining at the distributor server the succeeding portion of the query from the user, the succeeding portion of the query comprising a succeeding number of characters of the query immediately after the beginning of the query, and assigning at the distributor server the portion of the query comprising the beginning portion of the query followed by the succeeding portion of the query to a front-end server;

    if the obtained portion of the query does not match the predetermined ignore entry corresponding to the portion of the query that is to be ignored, assigning at the distributor server the beginning portion of the query to a front-end server;

    obtaining at the assigned front-end server and from a data structure a plurality of other queries beginning with the assigned portion of the query, the data structure including a cache of previously submitted queries, at least some of the previously submitted queries in the cache having a corresponding set of results in a results structure;

    for each of the plurality of obtained queries beginning with the assigned portion of the query;

    obtaining at the front-end server the corresponding set of results from the results structure if present therein;

    obtaining at the front-end server the corresponding set of results from another source if the corresponding set of results is not present in the results structure;

    for all of the plurality of obtained queries beginning with the assigned portion of the query, combining at the front-end server the obtained corresponding sets of results into a combined set of results; and

    returning the combined set of results from the front-end server to the user,wherein the assigned portion of the query is assigned by the distributor server to one of a plurality of front-end servers, the assigning of the assigned portion of the query to one of the plurality of front-end servers comprising;

    applying the assigned portion of the query to a hash function to obtain a hash result; and

    applying the hash result to a mapping function to obtain a mapping result comprising one of the plurality of front-end servers, the hash function and the mapping function operating to ensure that a particular assigned portion of a query is assigned to a articular one of the plurality of front-end servers.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×