Server architecture and methods for persistently storing and serving event data
First Claim
1. A method of processing a search query from a user, said method comprising:
- executing the search query to generate a query result, wherein the query result comprises URLs of web pages that are responsive to the search query;
for at least one of the URLs, applying a set of hash functions to the URL, and using a result of said set of hash functions to assess whether the URL is included in an event history of the user; and
when the URL is included in the event history of the user, providing, in a search results page for said search query, an annotation indicating to the user that the URL was previously accessed;
wherein the method comprises comparing a result of said set of hash functions to a user-specific Bloom filter associated with said user;
said method performed by execution of program instructions by a server system that comprises computer hardware.
0 Assignments
0 Petitions
Accused Products
Abstract
A web site system includes an event history server system that persistently stores event data reflective of events that occur during browsing sessions of web site users, and makes such data available to other applications and services in real time. The server system may, for example, be used to record information about every mouse click of every recognized user, and may also be used to record other types of events such as impressions and mouse-over events. The event data of a particular user may be retrieved from the server system based on event type, event time of occurrence, and various other criteria. In one embodiment, the server system includes a cache layer that caches event data by session ID, and includes a persistent storage layer the persistently stores the event data by user ID. Also disclosed are various application features that may be implemented using the stored event data.
46 Citations
20 Claims
-
1. A method of processing a search query from a user, said method comprising:
-
executing the search query to generate a query result, wherein the query result comprises URLs of web pages that are responsive to the search query; for at least one of the URLs, applying a set of hash functions to the URL, and using a result of said set of hash functions to assess whether the URL is included in an event history of the user; and when the URL is included in the event history of the user, providing, in a search results page for said search query, an annotation indicating to the user that the URL was previously accessed; wherein the method comprises comparing a result of said set of hash functions to a user-specific Bloom filter associated with said user; said method performed by execution of program instructions by a server system that comprises computer hardware. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of processing a search query from a user, the method implemented on a server system that is remote from the user, the method comprising:
-
executing the search query to generate a query result, wherein the query result comprises URLs of web pages that are responsive to the search query; for at least one of the URLs, querying a server to determine whether event data stored for said user indicates that the user previously accessed the URL; and if the event data indicates that the user previously accessed the URL, including within a search results page an annotation indicating to the user that the URL was previously accessed; wherein the server responds to the querying at least in part by using a Bloom filter stored for the user to evaluate whether the user previously accessed the URL. - View Dependent Claims (8, 9)
-
-
10. A system that provides functionality for conducting Internet searches, the system comprising:
-
a search application that is responsive to search queries from users by generating and returning search results pages listing search result URLs of external web pages that are responsive to such search queries; and a server that records user-specific data indicative of the search result URLs selected by users during browsing of the search result pages; wherein the search application accesses the server to determine whether specific search result URLs have previously been accessed by a user who is conducting a search, and incorporates into the search results pages indications of which search result URLs were previously accessed, whereby users are notified of search result URLs they have previously accessed; wherein the server is configured to generate user-specific Bloom filters that reflect search result URLs selected by users, and to use said user-specific Bloom filters to evaluate whether specific users have previously accessed specific URLs. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A system that provides functionality for conducting Internet searches, the system comprising:
-
a search application that is responsive to search queries from users by generating and returning search results pages listing search result URLs of external web pages that are responsive to such search queries; and a server that records user-specific data indicative of the search result URLs selected by users during browsing of the search result pages; wherein the search application accesses the server to determine whether specific search result URLs have previously been accessed by a user who is conducting a search, and incorporates into the search results pages indications of which search result URLs were previously accessed, whereby users are notified of search result URLs they have previously accessed; wherein the server comprises a plurality of storage layer server machines that persistently store, and provide real-time access to, event data descriptive of search events that occur during web browsing sessions of users, and comprises a plurality of cache layer server machines that serve as intermediaries between the storage layer server machines and the search application, wherein each cache layer server machine stores cached event data within a respective cache and uses the cached event data to respond to queries from the search application, and wherein the cache layer server machines are partitioned by browse session identifier such that each cache layer server machine caches event data of a different respective set of users. - View Dependent Claims (18, 19)
-
-
20. A system that provides functionality for conducting Internet searches, the system comprising:
-
a search application that is responsive to search queries from users by generating and returning search results pages listing search result URLs of external web pages that are responsive to such search queries; and a server that records user-specific data indicative of the search result URLs selected by users during browsing of the search result pages; wherein the search application accesses the server to determine whether specific search result URLs have previously been accessed by a user who is conducting a search, and incorporates into the search results pages indications of which search result URLs were previously accessed, whereby users are notified of search result URLs they have previously accessed; wherein the server comprises a plurality of storage layer servers that persistently store, and provide real-time access to, event data descriptive of search events that occur during web browsing sessions of users; and
a plurality of cache layer servers that serve as intermediaries between the storage layer servers and the search application, wherein each cache layer server stores cached event data within a respective cache and uses the cached event data to respond to queries from the search application;wherein the server generates user-specific Bloom filters based on event histories of corresponding users, and uses said Bloom filters to assess whether particular URLs have been accessed by particular users.
-
Specification