Ex Parte Ramesh et alDownload PDFPatent Trial and Appeal BoardApr 10, 201411610544 (P.T.A.B. Apr. 10, 2014) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE 1 ___________ 2 3 BEFORE THE PATENT TRIAL AND APPEAL BOARD 4 ___________ 5 6 Ex parte BHASHYAM RAMESH and OLLI PEKKA KOSTAMAA 7 ___________ 8 9 Appeal 2011-010620 10 Application 11/610,544 11 Technology Center 2100 12 ___________ 13 14 15 Before HUBERT C. LORIN, ANTON W. FETTING, and 16 MICHAEL W. KIM, Administrative Patent Judges. 17 18 FETTING, Administrative Patent Judge. 19 20 21 DECISION ON APPEAL22 Appeal 2011-010620 Application 11/610,544 2 STATEMENT OF THE CASE1 1 Bhashyam Ramesh and Olli Pekka Kostamaa (Appellants) seek 2 review under 35 U.S.C. § 134 of a final rejection of claims 1-8, the only 3 claims pending in the application on appeal. We have jurisdiction over the 4 appeal pursuant to 35 U.S.C. § 6(b). 5 The Appellants invented a technique for generating two or more 6 execution plans for an SQL query within a database system (Spec. 2:28-29). 7 An understanding of the invention can be derived from a reading of 8 exemplary claim 1, which is reproduced below (bracketed matter and some 9 paragraphing added). 10 1. A method 11 of generating two or more execution plans for an SQL 12 query within a database system, 13 the system having two or more resources, 14 the method comprising the steps of: 15 [1] defining a first resource utilization profile 16 by associating 17 a first set of numerical utilization values 18 respectively 19 with 20 two or more of the resources, 21 the first set of numerical utilization values representing a 22 first assumption of resource utilizations; 23 [2] generating a first execution plan 24 that is optimal 25 assuming utilization of the resources specified in the first 26 resource utilization profile; 27 [3] defining at least one further resource utilization profile 28 by associating 29 1 Our decision will make reference to the Appellants’ Appeal Brief (“App. Br.,” filed January 10, 2011) and the Examiner’s Answer (“Ans.,” mailed March 25, 2011). Appeal 2011-010620 Application 11/610,544 3 at least one further set of numerical utilization 1 values respectively 2 with 3 the two or more of the resources, 4 the further set of numerical utilization values 5 representing an alternate assumption of resource 6 utilizations; 7 [4] generating at least one further execution plan 8 that is optimal 9 assuming utilization of the resources specified in the at 10 least one further resource utilization profile. 11 12 The Examiner relies upon the following prior art: 13 Carino US 6,353,818 B1 Mar. 5, 2002 14 Barsness US 2005/0289098 A1 Dec. 29, 2005 15 Brown US 2007/0061289 A1 Mar. 15, 2007 16 17 Claims 1, 2, and 5-8 stand rejected under 35 U.S.C. § 103(a) as 18 unpatentable over Barsness and Carino. 19 Claims 3 and 4 stand rejected under 35 U.S.C. § 103(a) as 20 unpatentable over Barsness, Carino, and Brown. 21 22 ISSUES 23 The issues of obviousness turn primarily on whether Barsness 24 generates an execution plan from an association of a set of numerical 25 utilization values with two or more resources. 26 27 FACTS PERTINENT TO THE ISSUES 28 The following enumerated Findings of Fact (FF) are believed to be 29 supported by a preponderance of the evidence. 30 Appeal 2011-010620 Application 11/610,544 4 Facts Related to the Prior Art 1 Barsness 2 01. Barsness is directed to optimizing query processing. More 3 particularly, it relates to optimizing query processing by 4 dynamically selecting alternative query access plans in executing 5 queries. Barsness, para. 0002. 6 02. Figure 4 illustrates exemplary steps of query managing. Improved 7 performances of query executions are achieved by selecting 8 alternative query access plans which are, preferably, significantly 9 better than an original query access plan. In addition, additional 10 resources are dynamically added to the dynamically selected 11 alternative query access plans. Barsness, para. 0027. 12 03. A query event is obtained for query execution. In the Event to 13 Optimize block, a decision is made as to whether or not this query 14 is to be optimized or not. Factors involved in this decision may 15 include determining not to optimize a query access plan after 16 reviewing historical data concerning such a plan or similar plan to 17 determine that it uses a minimal amount of resources (e.g., 18 computing time). Besides computing time other similar factors 19 may be used. If the decision in the Event to Optimize block 406 is 20 negative (i.e., No) then the query managing method 400 returns to 21 the Get Event block 404 for another query event. If the decision 22 in the Event to Optimize block 406 is affirmative (i.e., Yes) then 23 the process in the block 408 follows in which the query managing 24 method collects statistics from the data processing system that 25 may be used for purposes of generating query access plans. The 26 Appeal 2011-010620 Application 11/610,544 5 collected data include statistics covering system memory, CPU, 1 I/O devices' memory, bit maps, indexes, etc., and other factors 2 used for generating query execution plans. Barsness, para. 0028. 3 04. In a Decide on Access Plan block 410 which follows, the query 4 optimizer, as is known, generates a particular query access or 5 execution plan. The query access plan (e.g., Plan 1) is selected 6 and is intended to implement processing of the query being 7 evaluated with the resources that are currently available. 8 Following the steps of the Decide on Access Plan block 410, the 9 process proceeds to Is Available Resource block 412. Barsness, 10 para. 0029. 11 05. In the Is Resource Available block 412, a decision is made as to 12 whether available computer resources are available from, for 13 example, a grid or partitioned environment for when the query is 14 run against the database. The additional computer resources 15 available (e.g., CPU) may be selected in preconfigured additional 16 increments and/or based on cost by the cost usage module 147 17 which will predict the cost of the additional resources and may 18 compare it to user preferences as to whether the additional 19 resources may be utilized. If No is the decision in the Is Resource 20 Available block 412, then the query managing method 400 21 proceeds to a Return to Access Plan 1 block 414. Thereafter, the 22 query managing method 400 then Exits in the block 416, whereby 23 the original query access Plan 1 is to be processed. Alternatively, 24 should the decision in the Is Additional Resource Available block 25 412 be Yes, then the query managing method 400 proceeds to Add 26 Appeal 2011-010620 Application 11/610,544 6 or Allocate Resources to Algorithms block 418. Barsness, para. 1 0030. 2 06. In the Add Additional Resources to Algorithms block 418, known 3 optimizer algorithms are utilized for generating alternative access 4 plans. The optimizer algorithms may incorporate valuations of the 5 additional available computer resources determined in the block 6 416 for generating the alternative query access plans. The 7 valuations of the additional computer system resources cover 8 system memory, CPU, I/O devices' memory, bit maps, indexes, 9 etc., and other factors used for generating query execution plans. 10 The resulting alternative query access plans are to be evaluated 11 subsequently, as will be described. Typically, the more memory 12 and/or CPU available for running a query the more improved the 13 query access plan will be. For example, with more memory 14 and/or CPU, a resulting query access plan will result in faster 15 query execution times. Following the adding of the additional 16 resources to the algorithm steps performed in the block 418, the 17 query managing method 400 proceeds to Decide on Alternative 18 Access Plan block 420. Barsness, para. 0031. 19 07. In the Decide on Alternative Access Plan block 420, the optimizer 20 may generate alternative query access plans based on the 21 computer resource valuations of the available resources including 22 the additional resources. The alternative query access plan that is 23 selected in the block 420 essentially modifies the first query 24 access plan (Plan 1). In this regard, the same key parameters used 25 by the optimizer for generating the initial or first query access plan 26 Appeal 2011-010620 Application 11/610,544 7 are utilized here for generating the alternative query access plan. 1 The same key data may be related to optimization data, such as 2 memory, CPU, I/O's, query execution time or the like. Typically, 3 the more memory and CPU available for running a query the more 4 improved the query access plan will be. For example, with more 5 memory and/or CPU, a resulting query access plan will result in 6 faster query execution times. Barsness, para. 0032. 7 08. The alternative query access plan that is selected is forwarded to 8 the Is Plan Significantly Better block 422. In the Is Plan 9 Significantly Better block 422, a comparison is made as to 10 whether or not the new alternative query access plan is 11 significantly better than the original. Specifically, the 12 determination is based on a comparison of the query related 13 parameters, such as if query execution time of the alternative 14 query access plan is better by a preconfigured amount (e.g., 15 greater than) than that of query access Plan 1. In one preferred 16 embodiment, the decision is Yes, if the new alternative query 17 access plan runs at a query execution time that is faster than the 18 query execution time of Plan 1. For example, the query execution 19 time is predicted to be 15 seconds with Plan 1, and the alternative 20 query access plan may run the query in 2 seconds. While the 21 value of the parameter of Plan 1 exceeds the actual numerical 22 value of the new query access plan, the value of the new query 23 access plan parameter exceeds that of Plan 1 because a faster 24 running query is considered significantly better. The concept of 25 what constitutes a better parameter value relative to another 26 Appeal 2011-010620 Application 11/610,544 8 parameter value is dependent on the type of parameter that is 1 selected. Other valuation differentiations may be considered 2 applicable as well. For example, other valuations may be related 3 to minimizing the amount of memory and/or temp space used. If 4 the determination in the Is Plan Significantly Better block 422 is 5 negative (i.e., No) then the optimizer returns to the original plan 6 established in the Return to Access Plan 1 block 424. Barsness, 7 para. 0033. 8 Carino 9 09. Carino is directed to optimizing queries in database management 10 systems, and in particular, optimizing database queries with 11 processing-intensive user defined functions. Carino 1:34-38. 12 10. Carino describes generating a plurality of query plans for the 13 database query, evaluating the plurality of query plans using a 14 measured value for the resource metric, selecting a query plan 15 from the evaluated query plans based on the measured resource 16 metric, and executing the selected query plan. Carino 3:35-40. 17 11. If the resource predictor determines that the database query 18 implicates the invocation of an expensive function or a function 19 with an unacceptably high variance, the optimizer generates a 20 plurality of query plans, each of which is optimized with a 21 particular set of system resource metrics. For example, a query 22 plan that optimizes resources in the processing, volatile memory, 23 non-volatile memory, may be denoted as PLAN [RCPU, RDISK, 24 Rmem, and Rnet ]. This query plan may be selected for use later by 25 the evaluator based on the resource availability for the candidate 26 Appeal 2011-010620 Application 11/610,544 9 DBMS nodes under consideration. Of course, query plans may be 1 optimized with a single resource metric (such as, RDISK) as well. 2 Carino 7:11-25. 3 4 ANALYSIS 5 We adopt the Examiner’s findings and analysis from Answer, pages 6 3-10 and reach similar legal conclusions. In particular, we find that 7 Barsness describes the entirety of claim 1, but for explicitly reciting the 8 wrapping of values in a profile. The Examiner applied Carino to show this 9 wrapping was known. 10 Thus, we are not persuaded by the Appellants’ argument that Barsness 11 does not describe a profile (App. Br. 7-8), as the Examiner applied Carino to 12 show such a wrapper. The Appellants respond to the rejection by attacking 13 the references separately, even though the rejection is based on the 14 combined teachings of the references. Nonobviousness cannot be 15 established by attacking the references individually when the rejection is 16 predicated upon a combination of prior art disclosures. See In re Merck & 17 Co., Inc., 800 F.2d 1091, 1097 (Fed. Cir. 1986). 18 We are not persuaded by the Appellants’ argument that 19 Barsness describes a process for generating query access 20 plans, including alternative query access plans. It is not seen 21 that Barsness, or any of the other references cited in the 22 rejection of claims 1 through 8, teach or suggest the steps of 23 defining a first and an at least one further resource utilization 24 profile as recited in independent claim 1 of the present 25 application. The first and further resource utilization profiles 26 recited in claim 1 are not query access plans. The first and 27 further resource utilization profiles are sets of numerical 28 utilization values associated with first and further assumptions 29 of resource utilizations. 30 Appeal 2011-010620 Application 11/610,544 10 App. Br. 8. 1 The only issue before us is whether Barsness generates an execution 2 plan from an association of a set of numerical utilization values with two or 3 more resources. As the Examiner found, Barsness collects historical data 4 statistics to consult prior to generating a query execution plan. Barsness’ 5 alternate plan is similarly based on the same statistics plus additional 6 resource statistics. These statistics are numerical values. 7 An explicit profile wrapper is actually unnecessary to be within the 8 scope of the claim, as the claim recites “defining a first resource utilization 9 profile by associating a first set of numerical utilization values respectively 10 with two or more of the resources.” Thus, it is the association, however 11 represented or implicit, that defines the profile, irrespective of how the data 12 is contained. Barsness explicitly associates its statistics with the resources 13 they represent. 14 We also find that all data used in computer processes are binary 15 numeric data, so any data forming such a profile would necessarily be 16 numeric. 17 18 CONCLUSIONS OF LAW 19 The rejection of claims 1, 2, and 5-8 under 35 U.S.C. § 103(a) as 20 unpatentable over Barsness and Carino is proper. 21 The rejection of claims 3 and 4 under 35 U.S.C. § 103(a) as 22 unpatentable over Barsness, Carino, and Brown is proper. 23 24 Appeal 2011-010620 Application 11/610,544 11 DECISION 1 The rejections of claims 1-8 are affirmed. 2 No time period for taking any subsequent action in connection with 3 this appeal may be extended under 37 C.F.R. § 1.136(a). See 37 C.F.R. 4 § 1.136(a)(1)(iv) (2011). 5 6 AFFIRMED 7 8 9 10 11 12 hh 13 Copy with citationCopy as parenthetical citation