The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
This communication is responsive to the claim amendment filed on 07/31/2025.
Claims 1, 11, and 19 are independent claims, and are amended. Claims 1-20 are pending in this application and are presented for examining on merits.
This action has been made FINAL.
Continuity
The present application is claim provisional application 63/385,519 filed on 11/30/2022.
Claim Objections
Claim 9 is objected to because of the following informalities:
Regarding claim 9, the claim recites “wherein the capacity group comprises a set of users from the account in which the quota is configured and enforced for transactions from the set of users”, which is seemly duplicated to the amended limitation in claim 1. Appropriate clarification/correction is required.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 11, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Dageville et al., US Pub. No. 2021/0064503 A1 (hereinafter as “Dageville”) in view of Wuest et al., US Pub. No. 2020/0336489 (hereinafter as “Wuest”), and further in view of Casillas et al., US Pub. No., 2020/0334088 A1 (hereinafter as “Casillas”).
Regarding claim 1, Dageville teaches: a system comprising:
at least one hardware processor (Fig. 15, element 1502 – Processor(s)); and
a memory storing instructions that cause the at least one hardware processor to perform operations (Fig. 15, elements 1504 – Memory Device(s)) comprising:
receiving a transaction, the transaction associated with an account (Fig. 12, element 1202, receiving a query directed to database data from a client Account; and par. [0007] discloses a list of all sale transactions in database; and pars. [0043] and [0045] “a query request received from a client, a request to generate a materialized view, a request to calculate an aggregation, and so forth.”, and par. [0097] “an individual client account associated with a set of data may send all data retrieval and data storage requests through a single virtual warehouse and/or to a certain subset of the databases 506a-506n.” teaches the retrieval transaction inherited the reading set of data stored in warehouse);
generating a tag for the transaction (pars. [0043], wherein the tasks for execution, [0044-45] e.g., “internal” tasks and “external” tasks for a client account is interpreted as tag, and [0077] “authentication of keys used during authentication and authorization tasks”);
generating a request to determine a read version of the transaction, the request including the tag (pars. [0029] “Databases may include one or more tables that include or reference data that can be read, modified, or deleted using queries.”, [0049] teaches “read” in the query transaction; and pars. [0097] as explained above to “retrieval set of data” implies the reading version, and [0114] “The unique identification number enables the requesting user and/or client account to access and read the query and the query results”); and
sending, to a proxy interface provided by a distributed database, the request to determine the read version of the transaction (Fig. 5 is shown the distributed database, par. [0079] “sends received jobs to the appropriate services or systems for compilation, optimization, and dispatch to the execution platform 116”, par. [0097] teaches the distributed database, e.g., “each virtual warehouse 504a-504n can communicate with all databases 506a-506n. In some embodiments, each virtual warehouse 504a-504n is configured to communicate with a subset of all databases 506a-506n. In such an arrangement, an individual client account associated with a set of data may send all data retrieval and data storage requests through a single virtual warehouse and/or to a certain subset of the databases 506a-506n.”, par. [0114] teaches the read query version, par. [0128] teaches the “Interface(s) 1506”)
Dageville teaches assigned execution cache resources if the tasks performed by the execution node require a larger cache capacity (see par. [0090]). However, Dageville does not explicitly teach: “the tag comprising a capacity group corresponding to the account”, and “the capacity group comprising a set of users from the account for which a quota is configured and enforced for database transactions from the set of users to manage utilization of resources from a data cluster.”
In the same field of endeavor (i.e., data processing), Wuest teaches: “the tag comprising a capacity group corresponding to the account” (see Fig. 2 via “label”=tag entity/user/group in elements 202, 204, 206, and 208; and further in pars. [0029] “cloud computing is a model of service delivery for enabling on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service…”, [0039] “he cloud accounts, resources, etc. that the subscriber has provisioned in or is other using in each such cloud compute deployment…”, [0049], e.g., label=tag, and “isMemberof” connection with group is implied the capacity group, and see in par. [0080] “the number of hops of identity trust relationships can be obscured in complex cloud and service environments”, and [0064] “The framework allows a cloud risk control system to continually evolve as new capabilities are introduced by cloud providers”).
Accordingly, it would have been obvious to one of ordinary skill in the data processing art before the effective filing date of the claimed invention to combine the teachings of the cited references because the teachings of Wuest would have provided Dageville with the above indicated limitation for allowing a skill artisan in motivation to perform the capacity group of entities (Wuest: par. [0049] and Fig. 15).
Dageville and Wuest do not explicitly teach the amended limitation: “the capacity group comprising a set of users from the account for which a quota is configured and enforced for database transactions from the set of users to manage utilization of resources from a data cluster.”
In the same field of endeavor (i.e., data processing), Casillas teaches: “the capacity group comprising a set of users from the account for which a quota is configured and enforced for database transactions from the set of users to manage utilization of resources from a data cluster” (pars. [0008-9], and [0032] “First, by dynamically adjusting the limits of reservation zones based on usage forecasts and tenant priorities, the system may improve utilization of a shared computing resource that is limited in nature. For example, the risk of stockouts may be eliminated or reduced as compared to other approaches for capacity allocation. A stockout occurs when there is no additional capacity of a shared resource that can be allocated to tenants because the entire capacity of the resource is already consumed. Stockouts can occur as a result of overbooking, such as when the total capacity allocated to all tenants exceeds the physical capacity of the resource. Cloud platform providers sometimes overbook capacity on the assumption that not all tenants will simultaneously use their full capacity quota but, at peak times, this assumption may not hold and a stockout may result…., however, the risk of stockouts may be reduced or eliminated by dynamic adjustments of the amounts of reservable capacity of a computing resource for groups of tenants. If current or forecasted usage is high, for example, the system may reduce the reservable capacity made available to the groups of tenants. Alternatively, if current or forecasted usage of the shared resource is relatively low, the system may dynamically increase the reservable capacity made available to groups of tenants. In these instances (increasing reservable capacity when global usage is relatively low), improved utilization of the shared resource may result as tenants are able to reserve and consume greater amounts of capacity than they may have otherwise been permitted with a static usage quota (e.g., when quotas are restrictive despite the fact that a resource may currently be underutilized and unused capacity may currently exist). Thus higher capacity utilization can result because tenants are not prevented from reserving capacity when there is plenty of capacity available. Additionally, in some implementations, the risk of capacity being unavailable for higher-priority tenants may be reduced due to the system expanding reservation zones for higher priority tenants to include capacity that is not made available to lower priority tenants”, wherein the groups of tenants is interpreted as a set of users; and further in pars. [0042 and 58]).
Accordingly, it would have been obvious to one of ordinary skill in the data processing art before the effective filing date of the claimed invention to combine the teachings of the cited references because the teachings of Casillas would have provided Dageville and Wuest with the above indicated limitation for allowing a skill artisan in motivation to perform the capacity group of entities/tenants corresponding to the account in the reservation zone(s) to manage utilization of resources (Casillas: Figs. 1-3; and pars. [0008-9], [0032, 42, and 58]).
Claims 11 and 19 are also rejected in the same analysis of above claim 1; and therefore, the claims are rejected on that basis.
Claims 2-10, 12-18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Dageville, Wuest, and Casillas, and further in view of Yu et al., US Pub. No. 2017/0272475 A1 (hereinafter as “Yu”).
Regarding claim 2, the claim is rejected by the same reasons set forth above to claim 1. Furthermore, Dageville and Wuest, in combination, teach: wherein the operations further comprise:
receiving, by the proxy interface, the request to determine the read version of the transaction (Dageville: pars. [0029] “Databases may include one or more tables that include or reference data that can be read, modified, or deleted using queries.”, [0049] teaches “read” to retry the query transaction; and par. [0114] “The unique identification number enables the requesting user and/or client account to access and read the query and the query results”; and Wuest: teaches the read version of the transaction in pars. [0052-54, and 60-61], and [0087] “read-only permissions if only read permissions are used, etc. …”);
determining, based on the request, that the transaction is associated with the tag included in the request (Dageville: pars. [0043], wherein the tasks for execution, [0044-45] e.g., “internal” tasks and “external” tasks for a client account, and [0077] “authentication of keys used during authentication and authorization tasks”; and Wuest: see Fig. 12: shown the tag(s), and par. [0046] “label|the name/label of the interface; queryName|the name used by the query/access framework”, wherein the label is interpreted as tag);
generating a sequence number for the request (Dageville: Fig. 7 via query queue log 704, and par. [0067] ““One or more jobs may be stored in the queue 204 in an order of receipt and/or an order of priority, and each of those one or more jobs may be communicated to the compute service manager 102 to be scheduled and executed”, wherein the technique of “an order of receipt and/or an order of priority” equals to the sequence number);
placing the request in a queue associated with the tag based on the sequence number (Dageville: again Fig. 7, element 704 – Query Queue; and pars. [0043] e.g., “the resource manager 802 transfer the query by placing the query in the queue of the compute service manager 102.”, [0067] “One or more jobs may be stored in the queue 204 in an order of receipt and/or an order of priority, and each of those one or more jobs may be communicated to the compute service manager 102 to be scheduled and executed”, wherein the technique of “an order of receipt and/or an order of priority” equals to the sequence number, [0106] teaches the “external” and “internal” tasks in query which is interpreted as tag), the queue including a set of requests to determine a particular read version of a particular transaction (par. [0075] “data processing platform 200 processes multiple jobs received from the queue 204”; and par. [0098] “the queue 204 sends data retrieval, data storage, and data processing requests to the virtual warehouse manager 502,…” wherein the “data retrieval” algorithm implies to read version; and Wuest: teaches the read version of the transaction in pars. [0052-54, and 60-61], and [0087] “read-only permissions if only read permissions are used, etc. …” ).
Dageville teaches placing the request in queue in priority order/sequence order (Fig. 7, element 704 – Query Queue, and par. [0067] “One or more jobs may be stored in the queue 204 in an order of receipt and/or an order of priority, and each of those one or more jobs may be communicated to the compute service manager 102 to be scheduled and executed”, wherein the technique of “an order of receipt and/or an order of priority” equals to the sequence number) and Wuest further teaches the “tokens” (par. [0074]), “tokens” and “token tracing” for accessing technique which is interpreted as the token bucket (pars. [0080-82], e.g., a ListBuckets, tokens, token tracing, and [0087]), and filtering the requests based on policy (see par. [0075]).
However, Dageville, Wuest, and Casillas do not explicitly teach the request should be “throttled based on information related to a quota for the tag stored in a distributed database key store.”
In the same field of endeavor (i.e., data processing), Yu teaches the request should be “throttled based on information related to a quota for the tag stored in a distributed database key store” (see Figs. 1-2 for throttling based on information related a quota for such acceptance or rejection; Fig. 4B as shown the tag at columns in table element 452 as key store; Fig. 5, element 506 and elements 522-530; par. [0035] e.g., “quotas or quota limits 124 (e.g., quotas 124a) for some or all clients from whom the gateway server may receive requests for controlled resources 130…”; and par. [0036] “…if a quota is applied to limit the number of queries or requests that may be submitted to a controlled resource 130 per unit of time (e.g., one second, multiple seconds), gateway server 122a will update quota usage store 126a every time a new call is approved and sent to the resource, for or on behalf of a client that has an associated quota, and will start rejecting additional calls (or will throttle them) if and when the threshold is met during a current time period. In this example, the gateway server can determine (from its quota usage store) whether the requesting client has already met or exceeded its quota, or whether it would do so if the request was approved, and can enforce the corresponding quota immediately”).
Accordingly, it would have been obvious to one of ordinary skill in the data processing art before the effective filing date of the claimed invention to combine the teachings of the cited references because the teachings of Yu would have provided Dageville, Wuest, and Casillas with the above indicated limitation for allowing a skill artisan in motivation to perform the controlling resources with the throttling/restriction/filtering request for enforcing resource quotas (Yu: Abstract, pars. [0016-18, and 35-36]).
Regarding claim 3, Dageville, Wuest, and Yu, in combination, teach: wherein determining, using the token bucket, that the request in the queue should be throttled (Dageville: Fig. 7, element 704 – Query Queue, wherein the quest/query is placed in queue; and Wuest: par. [0075] “a filter on a policy on a service and/or resource, assigned through granting access to a role in a same account, another account or even another cloud” for accessing data stored in cloud/data centers; and pars. [0080-82] teach “a ListBuckets”, “tokens” and “token tracing”; and Yu: Fig. 2 for quotas; and pars. [0035-36] for throttling the request for processing) comprises:
determining that the token bucket is absent of a particular token corresponding to the tag, or determining that the token bucket does not include a sufficient number of tokens corresponding to the tag (Wuest: Figs. 16-17, and pars. [0075], [0080-82], and [0087] e.g., “eliminating users from group that are not using group permissions, by moving users with direct-attached permissions to groups with the same permissions, identifies users with similar permissions and creating a group for those users, while removing their direct-attached permissions.”).
Regarding claim 4, Wuest and Yu, in combination, teach: wherein the sufficient number of tokens corresponding to the tag is based on a limiting rate of the tag (Wuest: pars. [0081-82] e.g., “tokens” and “token tracing” inherited number of tokens; and Yu: Fig. 2, par. [0007] “Such a system may set a maximum rate at which a client may submit queries to a data repository, for example….”, [0016 and 67-68]; and pars. [0035-36])
Regarding claim 5, Dageville and Yu, in combination, teach: wherein the operations further comprise:
throttling the request in the queue by forgoing processing of the request in the queue and keeping the request in the queue (Dageville: see again in Fig. 7, element 704 – Query Queue, wherein the requests/queries place in queue in priority order sequentially, par.[0067] for keeping the request for tasks in queue; and see Yu: Fig. 2 and par. [0035-36] teaches the throttling the request by forgoing processing that meets the quota of resource).
Regarding claim 6, Dageville and Yu, in combination, teach: wherein the operations further comprise:
determining a first global quota for a first account; (Dageville: pars. [0049] and [0106] “client account”; and see Yu: at pars. [0035] and [0036] for quota sets for limiting resource rate/capacity, and par. [0053] in different client associated with account)
determining that the first account is consuming a first amount of computing resources on a first storage server that is less than the first global quota; (Dageville: see pars. [0034] and [0036-37] for computing resources consuming to client account(s); and see Yu: e.g., amount of storage space (e.g., GB, MB) of bandwidth, see par. [0006] “the quota is exceeded or to once again accept requests when the quota is no longer exceeded)”, par. [0016]; and pars. [0037] and [0093] for further amount of computing resources as well, and pars. [0024 and 35-36] for quotas’ limits; and [0093] “cannot exceed the limit 464” implies to less than the quota); and
determining a second global quota for a second account (Yu: pars. [0035] and [0036] “if a quota is applied to limit the number of queries or requests that may be submitted to a controlled resource 130 per unit of time (e.g., one second, multiple seconds), gateway server 122a will update quota usage store 126a every time a new call is approved and sent to the resource, for or on behalf of a client that has an associated quota, and will start rejecting additional calls (or will throttle them) if and when the threshold is met during a current time period. In this example, the gateway server can determine (from its quota usage store) whether the requesting client has already met or exceeded its quota, or whether it would do so if the request was approved, and can enforce the corresponding quota immediately.”);
determining that the second account is consuming a second amount of computing resources on the first storage server that is greater than the second global quota, the second amount being smaller than the first amount (Yu: par. [0092] “The ‘latency percentile in milliseconds’ entry indicates that the client's request(s) for the sub-resource will violate the quota restriction if they experience latency greater than the X.sup.th percentile (X %) (e.g., a standard percentile such as 50%, 95%, 99%) over the period of time indicated by window duration 468 (e.g., 60 seconds). In other words, whatever value the X.sup.th percentile corresponds to within a distribution of response times for client requests for the sub-resource (e.g., 15 ms, 50 ms) during some historical time period, this quota type will be violated when the latency experienced by requests exceeds that value”); and
throttling a set of transactions associated with the second account, the throttling comprising causing a delay in executing the set of transactions by a set of execution nodes (Yu: Figs. 1-2 for technique of the quotas and throttling, e.g. reject/accept that causes the delay in processing/executing; par. [0006] “The central entity collects the usage statistics, and disseminates the statistics and/or quota statuses to all controller entities so that they all act in unison to deny access to clients that have exceeded their quotas. In these schemes, there is measurable delay in correctly enforcing a given requester's quota (either to deny requests when the quota is exceeded or to once again accept requests when the quota is no longer exceeded)”).
Regarding claim 7, Dageville and Yu, in combination, teach: wherein the first global quota is configured based on a first set of parameters, the first set of parameters comprising a first reserved throughput, a first total throughput, and a first value in bytes per second of throughput (Dageville: par. [0029] “… storing petabytes of data. Querying very large databases and/or tables might require scanning large amounts of data. Reducing the amount of data scanned for database queries is one of the main challenges of data organization and processing. When processing a query against a very large sum of data, it can be important to use materialized views to reduce the amount of time and processing resources required to execute the query…”, and par. [0070] discloses the “parameters from the client account” and “provide parameters concerning how many time a task may be re-executed…”, and par. [0104]; and see Yu: Fig. 1 and pars.[0035-36] disclose the “quota”, and further in Fig. 4B for the value in bytes for total throughput at element 464, and element 468).
Regarding claim 8, Dageville and Yu, in combination, teach: wherein the second global quota is configured based on a second set of parameters, the set of parameters comprising a second reserved throughput, a second total throughput, and a second value in bytes per second of throughput, and the first set of parameters is different than the second set of parameters (Dageville: par. [0029] “… storing petabytes of data. Querying very large databases and/or tables might require scanning large amounts of data. Reducing the amount of data scanned for database queries is one of the main challenges of data organization and processing. When processing a query against a very large sum of data, it can be important to use materialized views to reduce the amount of time and processing resources required to execute the query…”, and par. [0070] discloses the “parameters from the client account” and “provide parameters concerning how many time a task may be re-executed…”, and pars. [0089] via different cache resources and computing resources for tasks execution, and [0104]; and see Yu: Fig. 1 and pars.[0035-36] disclose the “quota”, and further in Fig. 4B for the value in bytes for total throughput at element 464, and element 468).
Regarding claim 9, Dageville, Wuest, Casillas, and Yu, in combination, teach: wherein the capacity group comprises a set of users from the account in which the quota is configured and enforced for transactions from the set of users (Dageville: par. [0036] “a cloud infrastructure that supports cloud-based storage resources, computing resources, and the like. Example cloud-based storage resources offer significant storage capacity available on-demand at a low cost.”, and [0095] “capacity for new users” group; Wuest: par. [0049], e.g., label=tag, and “isMemberof” connection with Group is implied the capacity group, and see in par. [0080] “the number of hops of identity trust relationships can be obscured in complex cloud and service environments”; Casillas: see pars. [0008-9], and [0032, 42, and 58]; and also in Yu: Fig. 1 is shown the quotas, Fig. 4B, elements 462 and 470; par. [0003], par. [0024] “a quota limit store” equivalent to capacity; and pars. [0035-36]).
Regarding claim 10, Wuest, Casillas, and Yu, in combination, teach: wherein the operations further comprise: determining, by a quota enforcement component, a total load of the capacity group across a set of storage servers (Wuest: pars. [0002-3] e.g., “workloads” and “Large data science workloads also are transitioning to the cloud in all sizes of companies, and the processing of such workloads requires large clusters of compute and storage, sometimes for short time periods.”; Casillas: see pars. [0008-9], and [0032, 42, and 58]; and also in Yu: see Fig. 4B, elements 462 and 470 as shown quota enforcement component, a total load of the capacity across a set of storage servers, Fig. 1; par. [0003] “ Demand exceeds capacity in many data centers and other computing environments, thereby requiring consumers of the resources to share them.”, par. [0024] “a quota limit store” equivalent to capacity; and pars. [0035-36]).
Claims 12-18, and 19-20 are rejected in the analysis of above claims 2-10; and therefore, the claims are rejected on that basis.
Response to Arguments
Referring to claim rejections under 35 U.S.C. 103, Applicant's arguments to new amended limitation (Applicant’s Remarks, pages 8-10) recites in claim 1 (same as to independent claims 11 and 19) have been considered but are moot in view of the new grounds of rejection necessitated by applicant's amendment to the claims. Applicant's newly amended features are taught implicitly, expressly, or impliedly by the prior art of record.
Prior Arts
The prior art made of record on form PTO-892 and not relied upon is considered pertinent to applicant's disclosure. Applicant is required under 37 C.F.R. § 1.111(c) to consider these references fully when responding to this action.
It is noted that any citation to specific, pages, columns, lines, or figures in the prior art references and any interpretation of the references should not be considered to be limiting in any way. A reference is relevant for all it contains and may be relied upon for all that it would have reasonably suggested to one having ordinary skill in the art. See In re Heck, 699 F.2d 1331, 1332-33, 216 USPQ 1038, 1039 (Fed. Cir. 1983) (quoting In re Lemelson, 397 F.2d 1006, 1009, 158 USPQ 275,277 (CCPA 1968)); Merck & Co. v. Biocraft Laboratories, 874 F.2d 804, 10 USPQ2d 1843 (Fed. Cir.), cert. denied, 493 U.S. 975 (1989).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Inquiries
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Jessica N. Le whose telephone number is (571)270-1009. The examiner can normally be reached M-F 9:30 am - 5:30 pm (EST).
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, SHERIEF BADAWI can be reached on (571) 272-9782. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/Jessica N Le/Examiner, Art Unit 2169
/SHERIEF BADAWI/Supervisory Patent Examiner, Art Unit 2169