Efficient database search and reporting, such as for enterprise customers having large and/or numerous files
Abstract
This application discloses a server for handling data reporting requests in a system that also comprises storage managers, primary storage devices, and secondary storage devices connected over one or more networks. The server receives, from each storage manager, a copy of data associated with the storage manager, and stores the received copies in one or more local databases. The server builds offline one or more indices for part or all of the received copies to improve query processing against the one or more local databases. Next, the server receives a request over a network from one of the storage managers or a standalone console, which received the request from a user for a report of data associated with the storage managers. The server produces a data report in response to the request, using the one or more indices and without impacting performance of the storage managers.
Claims
exact text as granted — not AI-modified1 . A system comprising:
one or more processors; and one or more non-transitory, computer-readable memory storing computer-executable instructions that, when executed by the one or more processors, configure the system to perform a plurality of operations comprising: receiving, from each one of one or more storage managers, a first copy of a respective management database associated with its corresponding storage manager; storing each first copy of the respective management database, as a corresponding offline database, resulting in one or more local databases; prior to a reporting request, building one or more indices for selected one or more tables of the one or more local databases, wherein the one or more tables are selected according to one or more criteria, wherein: at least one table of the selected one or more tables satisfies the one or more criteria, and a first criterion of the one or more criteria is based on a specific timeframe of usage for the at least one table; receiving the reporting request for a report of metadata associated with the one or more storage managers, wherein the reporting request includes an indication of whether a search corresponding to the reporting request is to be performed against a particular subset of the one or more local databases; producing a report based on processing the reporting request using the one or more indices, wherein the one or more local databases are searched based on the indication included within the reporting request; updating the one or more indices, based on the one or more criteria, wherein the updating comprises removing at least one index from the one or more indices based on another at least one table corresponding to the removed at least one index failing to satisfy all the one or more criteria; and transmitting the report responsive to the reporting request.
2 . The system of claim 1 , wherein the plurality of operations further comprises:
selecting the one or more tables from the one or more local databases for indexing, based on the at least one table of the selected one or more tables satisfying the one or more criteria, which are selected from a group of criteria comprising: the at least one table being a largest table in the one or more local databases; and the at least one table being most frequently used among the one or more local databases.
3 . The system of claim 1 , wherein the plurality of operations further comprises:
maintaining the one or more indices based on analyzing queries submitted against the respective management database associated with its corresponding storage manager of the one or more storage managers.
4 . The system of claim 1 , wherein the updating of the one or more indices occurs according to at least one of:
a regular schedule; a local database update; and based on a certain amount of data having been changed in the selected one or more tables of the one or more local databases.
5 . The system of claim 1 , wherein the plurality of operations further comprises:
removing the one or more indices based on analyzing queries submitted against the respective management database associated with its corresponding storage manager of the one or more storage managers.
6 . The system of claim 1 , wherein the plurality of operations further comprises:
storing a second copy of data at a temporary location different from the one or more local databases; and selectively incorporating the second copy of data stored at the temporary location into the one or more local databases by overwriting data stored in the one or more local databases with the second copy of data.
7 . The system of claim 1 , wherein the plurality of operations further comprises:
storing a second copy of data at a temporary location different from the one or more local databases; and selectively incorporating the second copy of data stored at the temporary location into the one or more local databases by updating data stored in the one or more local databases based on the second copy of data.
8 .- 20 . (canceled)
21 . The system of claim 1 , wherein the reporting request is received from one of the one or more storage managers.
22 . The system of claim 21 , wherein the plurality of operations further comprises: converting the reporting request into one or more queries into the one or more local databases, using the one or more indices, based on the indication included within the reporting request.
23 . The system of claim 1 , wherein the report is transmitted to one of the one or more storage managers from which the reporting request was received.
24 . A method comprising:
receiving, at a report server, from each one of one or more storage managers, a first copy of a respective management database associated with its corresponding storage manager; storing each first copy of the respective management database, as a corresponding local database, resulting in one or more local databases; prior to a reporting request, building one or more indices for selected tables of the one or more local databases, wherein the selected tables are selected based on: at least one table of the selected tables satisfies one or more selection criteria, and a first criterion of the one or more selection criteria is based on a specific timeframe of usage of the at least one table; receiving the reporting request for metadata associated with the one or more storage managers, wherein the reporting request indicates whether a search corresponding to the reporting request is to be performed against a particular subset of the one or more local databases; processing the reporting request using the one or more indices and based on searching the particular subset of the one or more local databases as indicated in the reporting request; updating the one or more indices, wherein the updating comprises removing from the one or more indices a first index corresponding to a first table that fails to satisfy all of the one or more selection criteria; and transmitting a report responsive to the reporting request; wherein the report server and each one of the one or more storage managers comprises one or more hardware processors.
25 . The method of claim 24 further comprising:
selecting tables from the one or more local databases for indexing, based on the one or more selection criteria, which are selected from a group of criteria comprising:
the at least one table being a largest table in the one or more local databases; and
the at least one table being most frequently used among the one or more local databases.
26 . The method of claim 24 further comprising:
analyzing queries submitted against the respective management database associated with its corresponding storage manager of the one or more storage managers to determine the selected tables.
27 . The method of claim 24 , wherein the updating of the one or more indices occurs according to at least one of:
a regular schedule; a local database update; and based on a certain amount of data having been changed in the selected one or more tables of the one or more local databases.
28 . The method of claim 24 further comprising:
analyzing queries submitted against the respective management database associated with its corresponding storage manager of the one or more storage managers; and
removing at least one of the one or more indices based on the analyzing.
29 . The method of claim 24 further comprising:
storing a second copy of data at a temporary location different from the one or more local databases; and
selectively incorporating the second copy of data stored at the temporary location into the one or more local databases by overwriting data stored in the one or more local databases with the second copy of data.
30 . The method of claim 24 further comprising:
storing a second copy of data at a temporary location different from the one or more local databases; and
selectively incorporating the second copy of data stored at the temporary location into the one or more local databases by updating data stored in the one or more local databases based on the second copy of data.
31 . The method of claim 24 , wherein the reporting request is received from one of the one or more storage managers.
32 . The method of claim 31 further comprising: converting the reporting request into one or more queries into the one or more local databases, using the one or more indices, based on the reporting request.
33 . The method of claim 24 , wherein the report is transmitted to one of the one or more storage managers from which the reporting request was received.Join the waitlist — get patent alerts
Track US2022164329A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.