IP Library Granted Patent US 8,719,243
Granted Patent B2
US 8,719,243 · App. 13/095,788 · Granted May 6, 2014

Methods and systems for filtering data for interactive display of database data

Inventors: Thomas J. Tobin (San Francisco, CA); Ceren Sakizli (San Francisco, CA); Anshu Agarwal (San Francisco, CA)
Assignee: salesforce.com, inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,719,243
App. No.
13/095,788
Granted
May 6, 2014
Kind
B2
Abstract

Interactive database viewing is provided. A server associated with a database accesses a stored result set from a database query. The server presents a portion of the result set in a list view to a client device remote from the server and the cache memory, where the portion presented is based on filter selection based on fields of the data. In response to changes to the filter selection, the server can dynamically alter the list view without having to again access the database. If a change to the filter selection requests data outside the cached result set, the server accesses the database and updates the cached result set. Inline editing of the data in the list view can be applied back to the database by the server.

Claims (60)

1. A system comprising:

a database including hardware and software components to implement a database;

a cache memory device local to the database, and remote from a client device;

a server implemented on hardware components local to the database to store a query result set on the cache memory device as a cached result set obtained in response to a user query, the server to

access the cached result set, the result set including multiple rows of data each having columns representing fields of the data;

present a portion of the result set including selected rows of the multiple rows in a list view to the client device remote from the server and the cache memory, the portion based on filter selection that generates a filtered result set of rows of data based on fields of the data;

receive a change to the filter selection from the client device; and

dynamically alter the list view based on the changed filter selection, wherein in response to the changed filter selection requesting a row of data not cached in the memory, generating a new query on the database for a new result set including the requested row of data, cache the new result set, and generate an updated filtered result set of rows of data based on fields of the data from the new result set, and otherwise, generate an updated filtered result set of rows of data based on fields of the data from the cached result set without generate a new query on the database.

2. The system of claim 1 , wherein the server applies a limit to the number of rows stored in cache memory device.

3. The system of claim 1 , further comprising the server to

access a metadata description from the database to define a mapping between the columns of the rows of data and the fields of the data in the database.

4. The system of claim 1 , further comprising the server to

present an interactive graphic representation of the result set to the client device, wherein receive the change to the filter selection comprises receive a request from the client device via the interactive graphic representation.

5. The system of claim 1 , further comprising the server to

present a filter list having filters corresponding to fields of the data, wherein receive the change to the filter selection comprises receive the change from the client device via the filter list.

6. The system of claim 1 , further comprising the server to

receive an inline edit made in the list view; and

apply the edit to the database.

7. The system of claim 1 , wherein the database comprises a multitenant database that stores data for multiple client organizations each identified by a tenant identifier (ID) and one or more users are associated with the tenant ID, wherein the one or more users of each client organization accesses data identified by the tenant ID associated with the respective client organization, and wherein the multitenant database is hosted by an entity separate from the client organization.

8. The system of claim 7 , further comprising the server to

store the cached result set in a shared memcache of the multitenant database; and

apply a timeout to the cached result set to prevent the cached result set from consuming an excessive amount of resources of the multitenant database.

9. A method comprising:

accessing with a server a cached result set of a query on a database, the result set including multiple rows of data each having columns representing fields of the data, the result set being cached in a memory local to the server;

presenting a portion of the result set including selected rows of the multiple rows in a list view to a client device remote from the server and the memory, the portion based on filter selection that generates a filtered result set of rows of data based on fields of the data;

receiving at the server a change to the filter selection from the client device; and

dynamically altering the list view based on the changed filter selection, wherein

in response to the changed filter selection requesting a row of data not cached in the memory, generating a new query on the database for a new result set including the requested row of data, caching the new result set, and generating an updated filtered result set of rows of data based on fields of the data from the new result set, and otherwise,

generating an updated filtered result set of rows of data based on fields of the data from the cached result set without generating a new query on the database.

10. The method of claim 9 , further comprising:

accessing a metadata description from the database to define a mapping between the columns of the rows of data and the fields of the data in the database.

11. The method of claim 9 , further comprising:

presenting an interactive graphic representation of the result set, wherein receiving the change to the filter selection comprises receiving a request via the interactive graphic representation.

12. The method of claim 9 , further comprising:

presenting a filter list having filters corresponding to fields of the data, wherein receiving the change to the filter selection comprises receiving the change via the filter list.

13. The method of claim 9 , further comprising:

receiving an inline edit made in the list view; and

applying the edit to the database.

14. The method of claim 9 , wherein the database comprises a multitenant database that stores data for multiple client organizations each identified by a tenant identifier (ID) and one or more users are associated with the tenant ID, wherein the one or more users of each client organization accesses data identified by the tenant ID associated with the respective client organization, and wherein the multitenant database is hosted by an entity separate from the client organization; and further comprising:

storing the cached result set in a shared memcache of the multitenant database; and

applying a timeout to the cached result set to prevent the cached result set from consuming an excessive amount of resources of the multitenant database.

15. An article of manufacture comprising a non-transitory computer readable storage medium having content stored thereon, which when executed, cause a machine to perform operations including:

accessing with a server a cached result set of a query on a database, the result set including multiple rows of data each having columns representing fields of the data, the result set being cached in a memory local to the server;

presenting a portion of the result set including selected rows of the multiple rows in a list view to a client device remote from the server and the memory, the portion based on filter selection that generates a filtered result set of rows of data based on fields of the data;

receiving at the server a change to the filter selection from the client device; and

dynamically altering the list view based on the changed filter selection, wherein

in response to the changed filter selection requesting a row of data not cached in the memory, generating a new query on the database for a new result set including the requested row of data, caching the new result set, and generating an updated filtered result set of rows of data based on fields of the data from the new result set, and otherwise,

generating an updated filtered result set of rows of data based on fields of the data from the cached result set without generating a new query on the database.

16. The article of manufacture of claim 15 , further comprising content to provide instructions for

accessing a metadata description from the database to define a mapping between the columns of the rows of data and the fields of the data in the database.

17. The article of manufacture of claim 15 , further comprising content to provide instructions for

presenting an interactive graphic representation of the result set, wherein receiving the change to the filter selection comprises receiving a request via the interactive graphic representation.

18. The article of manufacture of claim 15 , further comprising content to provide instructions for

presenting a filter list having filters corresponding to fields of the data, wherein receiving the change to the filter selection comprises receiving the change via the filter list.

19. The article of manufacture of claim 15 , further comprising content to provide instructions for

receiving an inline edit made in the list view; and

applying the edit to the database.

20. The article of manufacture of claim 15 , wherein the database comprises a multitenant database that stores data for multiple client organizations each identified by a tenant identifier (ID) and one or more users are associated with the tenant ID, wherein the one or more users of each client organization accesses data identified by the tenant ID associated with the respective client organization, and wherein the multitenant database is hosted by an entity separate from the client organization; and further comprising content to provide instructions for

storing the cached result set in a shared memcache of the multitenant database; and

applying a timeout to the cached result set to prevent the cached result set from consuming an excessive amount of resources of the multitenant database.

Assignments (3)
CHANGE OF NAME Recorded Oct 24, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069274/0258 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DOCKET NUMBER PREVIOUSLY RECORDED ON REEL 026474 FRAME 0141. ASSIGNOR(S) HEREBY CONFIRMS THE 8956P020 TO 8956P016. Recorded Jul 5, 2011
From: TOBIN, THOMAS J.; SAKIZLI, CEREN; AGARWAL, ANSHU
To: SALESFORCE.COM, INC.
Reel/Frame 026545/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2011
From: TOBIN, THOMAS J.; SAKIZLI, CEREN; AGARWAL, ANSHU
To: SALESFORCE.COM, INC.
Reel/Frame 026474/0141 →
Continuity (2)
Provisional Application 61328513 · Apr 27, 2010
Related Publication 20110264650A1 · Oct 27, 2011