Notice of Pre-AIA or AIA Status
In response to communications filed 15 May 2025, this is the first Office action on the merits. Claims 1-20 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Allowable Subject Matter
Claims 3-10 and 13-19 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter. Funke et al. (US 11,301,472 B2); Chainani et al. (US 11,238,045 B2); and Molini (US 2009/0248617 A1) are the closest prior art on record.
Regarding claims 3-5, 7, 9, 13-15, 17, and 19 Chainani teaches
[claims 3, 4, 5, 7, 13, and 14]: a distribution key of each of the first data table and the second data table not being a join key;
[claims 5 and 15]: a first distribution key in one from among the first data table and the second data table being a join key, a second distribution key of the other data table from among the first data table and the second data table not being the join key; and
[claims 9 and 19]: a first distribution key from among the first data table and the second data table being a join key, a second distribution key of the other data table from among the first data table and the second data table not being the join key
in 12:45-13:19, where a “workload pattern includes a set of query accesses which use a join key column other than a current distribution key.” Chainani generally teaches in 12:8-13:19 to redistribute data when a “threshold data skew value” is exceeded or when a change in the “workload patten” is detected to “find join key columns.”
Claims 3-5, 7, 9, 13-15, 17, and 19 further recite features related to “common data.” Funke and Molini are the closest prior art to these features. Funke teaches in 11:33-59 “identifying frequent or heavy hitter join keys on the probe side during a probe phase of the join operation,” i.e., the most common join keys. Molini in [0024] also teaches to identify most common data when the “expected skew is greater 320 than the threshold.”
However Funke, Chainani, and Molini, individually or in combination do not teach all of the additional limitations of claim 3-5, 7, 9, 13-15, 17, and 19. These limitations, when considered in combination with claims 1-2 and 11-12 as a whole, therefore amount to allowable subject matter. Claims 6, 8, 10, 16, and 18, likewise contain allowable subject matter based on their dependency.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-2, 11-12, and 20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Funke et al. (US 11,301,472 B2).
Regarding claim 1, Funke teaches a data processing method of a distributed database (DDB) comprising a plurality of nodes, performed by an electronic device, the data processing method comprising:
obtaining a first data table and a second data table that are to be joined in the DDB, first data in the first data table and second data in the second data table being distributed and stored in the plurality of nodes (see Funke Fig. 8, “Build Table” and “Probe Table” are first and second data tables distributed stored in “Server One” and Server Two” nodes, where 11:33-67 teaches a “join operation”);
obtaining a first data distribution of the first data in the first data table and a second data distribution of the second data in the second data table (see Funke Fig. 8, the distribution of the data rows of the “Build Table” and “Probe Table” are the first and second data distributions);
performing, based on the first data distribution and the second data distribution a partial replication operation (see Funke 11:33-67, “asynchronously distributing the frequently
hit build-side rows to one or more remote servers”),
a partial redistribution operation (see Funke 12:24-49, “sending rows associated with the frequent probe-side join key to a remote server”), and
a partial keeping unchanged operation (see Funke 12:24-49, “retaining the rows associated with the frequent probe-side join key on the current server”),
on full data comprising the first data and the second data, to obtain corresponding operated first data and operated second data (see Funke 11:33-67 and 12:24-49, operated first and second data are obtained after “asynchronously distributing,” “sending,” and “retaining”); and
obtaining a join result based on a join operation on the operated first data and the operated second data (see Funke 12:1-23, “process a join operation”).
Regarding claim 11, Funke teaches a data processing apparatus of a distributed database (DDB) comprising a plurality of nodes, the data processing apparatus comprising:
at least one memory configured to store computer program code; and at least one processor configured to read the program code and operate as instructed by the program code (see Funke 17:14-22),
the program code comprising:
first obtaining code configured to cause at least one of the at least one processor to obtain a first data table and a second data table that are to be joined in the DDB, first data in the first data table and second data in the second data table being distributed and stored in the plurality of nodes (see Funke Fig. 8, “Build Table” and “Probe Table” are first and second data tables distributed stored in “Server One” and Server Two” nodes, where 11:33-67 teaches a “join operation”);
second obtaining code configured to cause at least one of the at least one processor to obtain a first data distribution of the first data in the first data table and a second data distribution of the second data in the second data table (see Funke Fig. 8, the distribution of the data rows of the “Build Table” and “Probe Table” are the first and second data distributions);
operation code configured to cause at least one of the at least one processor to perform, based on the first data distribution and the second data distribution a partial replication operation (see Funke 11:33-67, “asynchronously distributing the frequently
hit build-side rows to one or more remote servers”),
a partial redistribution operation (see Funke 12:24-49, “sending rows associated with the frequent probe-side join key to a remote server”), and
a partial keeping unchanged operation, on full data comprising the first data and the second data (see Funke 12:24-49, “retaining the rows associated with the frequent probe-side join key on the current server”),
to obtain corresponding operated first data and operated second data (see Funke 11:33-67 and 12:24-49, operated first and second data are obtained after “asynchronously distributing,” “sending,” and “retaining”); and
join code configured to cause at least one of the at least one processor to obtain a join result based on performing a join operation on the operated first data and the operated second data (see Funke 12:1-23, “process a join operation”).
Regarding claim 20, Funke teaches a non-transitory computer-readable storage medium (see Funke 17:23-27),
obtain a first data table and a second data table that are to be joined in a distributed database (DDB), first data in the first data table and second data in the second data table being distributed and stored in a plurality of nodes (see Funke Fig. 8, “Build Table” and “Probe Table” are first and second data tables distributed stored in “Server One” and Server Two” nodes, where 11:33-67 teaches a “join operation”);
obtain a first data distribution of the first data in the first data table and a second data distribution of the second data in the second data table (see Funke Fig. 8, the distribution of the data rows of the “Build Table” and “Probe Table” are the first and second data distributions);
perform, based on the first data distribution and the second data distribution a partial replication operation (see Funke 11:33-67, “asynchronously distributing the frequently
hit build-side rows to one or more remote servers”),
a partial redistribution operation (see Funke 12:24-49, “sending rows associated with the frequent probe-side join key to a remote server”), and
a partial keeping unchanged operation, on full data comprising the first data and the second data (see Funke 12:24-49, “retaining the rows associated with the frequent probe-side join key on the current server”),
to obtain corresponding operated first data and operated second data (see Funke 11:33-67 and 12:24-49, operated first and second data are obtained after “asynchronously distributing,” “sending,” and “retaining”); and
obtain a join result based on performing a join operation on the operated first data and the operated second data (see Funke 12:1-23, “process a join operation”).
Regarding claims 2 and 12, Funke teaches wherein the performing the partial replication operation, the partial redistribution operation, and the partial keeping unchanged operation comprises: determining, based on the first data distribution and the second data distribution, third data for a replication operation in the full data, fourth data for a redistribution operation in the full data, and fifth data kept unchanged in the full data; and performing the replication operation on the third data, performing the redistribution operation on the fourth data, and keeping the fifth data unchanged (see Funke 11:33-67 and 12:24-49).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Kristopher Andersen whose telephone number is (571)270-5743. The examiner can normally be reached 8:30 AM-5:00 PM ET, Monday-Friday.
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, Ann Lo can be reached at (571) 272-9767. 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.
/Kristopher Andersen/Primary Examiner, Art Unit 2159