IP Library Granted Patent US 12,591,578
Granted Patent B1
US 12,591,578 · App. 18/429,254 · Granted Mar 31, 2026

Query modification using partitioned commands

Inventors: Alexander D. James (Sammamish, WA); Ankur Dalsukhbhai Bambharoliya (Bellevue, WA); Venkatasubramanian Jayaraman (Issaquah, WA); Salih Ammar Wajih Zainulabdeen (Seattle, WA); Timothy David Pavlik (Seattle, WA); Aditya Tammana (Barcelona, ES)
Assignee: Cisco Technology, Inc.
G06F16/24554
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 12,591,578
App. No.
18/429,254
Granted
Mar 31, 2026
Kind
B1
Abstract

Systems and methods are disclosed for modifying a query using partitioned commands. A partitioned command may be associated with a set of partition-specific commands. The set of partition-specific command may be configured for use in processing particular partitions of data. A query system may receive a query and identify a set of data to be processed by a particular partitioned command. The query system may partition the set of data using partition criteria associated with the particular partitioned command and assign the partitions of the set of data to respective partition-specific commands of the partitioned commands.

Claims (58)

1 . A method, comprising:

receiving a query at a computing device of a query system, the query identifying data to be processed and a manner of processing the data;

in response to the receiving the query:

identifying, by the computing device of query system, at least one partitioned command in the query;

identifying, by the computing device of query system, partition criteria based on the at least one partitioned command;

accessing a data store of the query system to identify a set of data to be processed in accordance with the at least one partitioned command, wherein the set of data is a subset of the data identified by the query to reduce an amount of data processed in association with the query;

generating, by the computing device of the query system, a plurality of partitions for the set of data based on the partition criteria;

identifying, by the computing device of the query system, a set of partition-specific commands of the at least one partitioned command based on the partition criteria;

assigning, by the computing device of the query system, the plurality of partitions to the set of partition-specific commands based on the partition criteria, wherein a particular partition of the set of data is assigned to a particular partition-specific command of the at least one partitioned command using a set of partition command records and based on a determination that data in the particular partition includes a particular field value for a particular field and a determination that the particular partition-specific command is configured for use with data that includes the particular field value;

automatically generating, by the computing device of the query system, at least one instruction to process the plurality of partitions using the set of partition-specific commands, wherein the particular partition of the set of data is processed using the particular partition-specific command of the at least one partitioned command; and

processing, via the computing device of the query system, the plurality of partitions by distributing the set of partition-specific commands to computing devices to retrieve data from data stores for providing the data as a result to a device.

2 . The method of claim 1 , wherein identifying the at least one partitioned command in the query comprises parsing the query to identify at least one command associated with the set of partition-specific commands.

3 . The method of claim 1 , wherein identifying the at least one partitioned command in the query comprises:

parsing the query to identify a plurality of commands, the plurality of commands indicating the manner of processing the data; and

performing a lookup in a metadata catalog to identify the at least one partitioned command from the plurality of commands.

4 . The method of claim 1 , wherein identifying the partition criteria associated with the at least one partitioned command comprises identifying at least one field identifier of at least one field used to assign data to different partitions.

5 . The method of claim 1 , wherein identifying the partition criteria associated with the at least one partitioned command comprises analyzing a partitioned command record of a metadata catalog.

6 . The method of claim 1 , wherein identifying the set of data to be processed in accordance with the at least one partitioned command comprises identifying a result of processing data in accordance with another command of the query.

7 . The method of claim 1 , wherein identifying the set of data to be processed in accordance with the at least one partitioned command comprises identifying data retrieved from a data source.

8 . The method of claim 1 , wherein the partition criteria includes a field, wherein generating the plurality of partitions comprises assigning data records of the set of data to respective partitions of the plurality of partitions based on a field value in the data records, wherein the field value corresponds to the field.

9 . The method of claim 1 , wherein the partition criteria includes a field, wherein generating the plurality of partitions comprises identifying a field value associated with a data record of the set of data that corresponds to the field of the partition criteria, and assigning the data record to a partition of the plurality of partitions based on the field value.

10 . The method of claim 1 , wherein the partition criteria includes a first field and a second field, wherein generating the plurality of partitions comprises identifying a first field value associated with a data record of the set of data that corresponds to the first field of the partition criteria, identifying a second field value associated with the data record that corresponds to the second field of the partition criteria, and assigning the data record to a partition of the plurality of partitions based on the first field value and the second field value.

11 . The method of claim 1 , wherein identifying the set of partition-specific commands of the at least one partitioned command comprises parsing a partitioned command record of a metadata catalog to identify partition-specific commands that correspond to the at least one partitioned command.

12 . The method of claim 1 , wherein the partition criteria includes the particular field and a first field, wherein assigning the particular partition to the particular partition-specific command is further based on a determination that the data in the particular partition includes a first field value for the first field and a determination that the particular partition-specific command is configured to use with data that further includes the first field value.

13 . The method of claim 1 , wherein the at least one partitioned command is a first partitioned command, the partition criteria is first partition criteria, the set of data is a first set of data, the plurality of partitions is a first plurality of partitions, the set of partition-specific commands is a first set of partition-specific commands, the particular partition is a first particular partition, the particular partition-specific command is a first particular partition-specific command, the at least one instruction is a first at least one instruction, the method further comprising:

identifying at least one second partitioned command in the query; identifying second partition criteria associated with the at least one second partitioned command;

identifying a second set of data to be processed in accordance with the at least one second partitioned command, wherein the second set of data is a subset of the data identified by the query;

generating a second plurality of partitions for the second set of data based on the second partition criteria;

identifying a second set of partition-specific commands of the at least one second partitioned command based on the second partition criteria;

assigning the second plurality of partitions to the second set of partition-specific commands based on the second partition criteria, wherein a second particular partition of the second set of data is assigned to a second particular partition-specific command of the at least one second partitioned command based on a matching value of the second partition criteria for the second particular partition and the second particular partition-specific command;

generating a second at least one instruction to process the second plurality of partitions using the second set of partition-specific commands, wherein the second particular partition of the second set of data is processed using the second particular partition-specific command of the at least one second partitioned command.

14 . A system, comprising:

a data store; and

one or more processors configured to:

receive a query at a computing device of a query system, the query identifying data to be processed and a manner of processing the data;

in response to the receiving the query:

identify at least one partitioned command in the query;

identify partition criteria based on the at least one partitioned command;

access a data store of the query system to identify a set of data to be processed in accordance with the at least one partitioned command, wherein the set of data is a subset of the data identified by the query to reduce an amount of data processed in association with the query;

generate a plurality of partitions for the set of data based on the partition criteria;

identify a set of partition-specific commands of the at least one partitioned command based on the partition criteria;

assign the plurality of partitions to the set of partition-specific commands based on the partition criteria, wherein a particular partition of the set of data is assigned to a particular partition-specific command of the at least one partitioned command using a set of partition command records and based on a determination that data in the particular partition includes a particular field value for a particular field and a determination that the particular partition-specific command is configured for use with data that includes the particular field value;

automatically generate at least one instruction to process the plurality of partitions using the set of partition-specific commands, wherein the particular partition of the set of data is processed using the particular partition-specific command of the at least one partitioned command; and

process, via a computing device of the query system, the plurality of partitions by distributing the set of partition-specific commands to computing devices to retrieve data from data stores for providing the data as a result to a device.

15 . The system of claim 14 , wherein the partition criteria includes a field, wherein to generate the plurality of partitions, the one or more processors are configured to assign data records of the set of data to respective partitions of the plurality of partitions based on a field value in the data records, wherein the field value corresponds to the field.

16 . The system of claim 14 , wherein the partition criteria includes a first field and a second field, wherein to generate the plurality of partitions, the one or more processors are configured to identify a first field value associated with a data record of the set of data that corresponds to the first field of the partition criteria, identify a second field value associated with the data record that corresponds to the second field of the partition criteria, and assign the data record to a partition of the plurality of partitions based on the first field value and the second field value.

17 . Non-transitory computer-readable media including computer-executable instructions that, when executed by a computing system, cause the computing system to:

receive a query at a computing device of a query system, the query identifying data to be processed and a manner of processing the data;

in response to the receiving the query:

identify at least one partitioned command in the query;

identify partition criteria based on the at least one partitioned command;

access a data store of the query system to identify a set of data to be processed in accordance with the at least one partitioned command, wherein the set of data is a subset of the data identified by the query to reduce an amount of data processed in association with the query;

generate a plurality of partitions for the set of data based on the partition criteria;

identify a set of partition-specific commands of the at least one partitioned command based on the partition criteria;

assign the plurality of partitions to the set of partition-specific commands based on the partition criteria, wherein a particular partition of the set of data is assigned to a particular partition-specific command of the at least one partitioned command using a set of partition command records and based on a determination that data in the particular partition includes a particular field value for a particular field and a determination that the particular partition-specific command is configured for use with data that includes the particular field value;

automatically generate at least one instruction to process the plurality of partitions using the set of partition-specific commands, wherein the particular partition of the set of data is processed using the particular partition-specific command of the at least one partitioned command; and

process, via a computing device of the query system, the plurality of partitions by distributing the set of partition-specific commands to computing devices to retrieve data from data stores for providing the data as a result to a device.

18 . The non-transitory computer-readable media of claim 17 , wherein to identify the set of partition-specific commands of the at least one partitioned command, the computer-executable instructions cause the computing system to analyze a partitioned command record of a metadata catalog to identify partition-specific commands that correspond to the at least one partitioned command.

Assignments (3)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069826/0065 →
Continuity (1)
Provisional Application 63482533 · Jan 31, 2023
References Cited (57)
US 7937344B2 · Baum et al. · 2011 [cited by applicant]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8510538B1 · Malewicz et al. · 2013 [cited by applicant]
US 8751529B2 · Zhang et al. · 2014 [cited by applicant]
US 8788525B2 · Neels et al. · 2014 [cited by applicant]
US 8886647B2 · Uppala · 2014 [cited by applicant]
US 9215240B2 · Merza et al. · 2015 [cited by applicant]
US 9286413B1 · Coates et al. · 2016 [cited by applicant]
US 10127258B2 · Lamas et al. · 2018 [cited by applicant]
US 10235417B1 · Sterin et al. · 2019 [cited by applicant]
US 10698756B1 · Abdelsalam et al. · 2020 [cited by applicant]
US 10831750B2 · Xiao et al. · 2020 [cited by applicant]
US 10936585B1 · Echeverria et al. · 2021 [cited by applicant]
US 10970190B2 · Kamran et al. · 2021 [cited by applicant]
US 11128528B2 · Nolan et al. · 2021 [cited by applicant]
US 11316727B2 · Kushmerick et al. · 2022 [cited by applicant]
US 11372693B2 · Gino et al. · 2022 [cited by applicant]
US 11461347B1 · Das et al. · 2022 [cited by applicant]
US 11580109B2 · Ransil et al. · 2023 [cited by applicant]
US 11609933B1 · Ozen et al. · 2023 [cited by applicant]
US 11637849B1 · Chen et al. · 2023 [cited by applicant]
US 12174846B2 · Viswanadha · 2024 [cited by applicant]
US 20030055822A1 · Yu · 2003 [cited by applicant]
US 20060026131A1 · Soogoor · 2006 [cited by applicant]
US 20070179941A1 · Huang et al. · 2007 [cited by applicant]
US 20140156683A1 · De Castro Alves · 2014 [cited by applicant]
US 20150169686A1 · Elias et al. · 2015 [cited by applicant]
US 20160055192A1 · Bensberg et al. · 2016 [cited by applicant]
US 20160070739A1 · Gukal et al. · 2016 [cited by applicant]
US 20160085810A1 · de Castro Alves et al. · 2016 [cited by applicant]
US 20170026441A1 · Moudy et al. · 2017 [cited by applicant]
US 20170090876A1 · Hale · 2017 [cited by examiner]
US 20180285418A1 · Petropoulos et al. · 2018 [cited by applicant]
US 20180336216A1 · Bitincka · 2018 [cited by examiner]
US 20190095493A1 · Bhattacharjee et al. · 2019 [cited by applicant]
US 20190098106A1 · Mungel et al. · 2019 [cited by applicant]
US 20190294598A1 · Hsiao · 2019 [cited by examiner]
US 20200026709A1 · Ramaiyer et al. · 2020 [cited by applicant]
US 20200278900A1 · Abdelsalam et al. · 2020 [cited by applicant]
US 20210042341A1 · Miller · 2021 [cited by examiner]
US 20210097067A1 · Virtuoso et al. · 2021 [cited by applicant]
US 20210117425A1 · Rao · 2021 [cited by examiner]
US 20210294801A1 · Pal · 2021 [cited by examiner]
US 20210382770A1 · Lu et al. · 2021 [cited by applicant]
US 20220035686A1 · Cristofi · 2022 [cited by examiner]
US 20220291974A1 · Gino et al. · 2022 [cited by applicant]
US 20220300473A1 · Tidwell et al. · 2022 [cited by applicant]
US 20220300496A1 · Saurabh et al. · 2022 [cited by applicant]
Bitincka, Ledion et al., “Optimizing Data Analysis with a Semi-structured Time Series Database,” self-published, first presented at “Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML)”… [cited by applicant]
Carraso, David, “Exploring Splunk,” published by CITO Research, New York, NY, Apr. 2012. [cited by applicant]
SLAML 10 Reports, Workshop On Managing Systems via Log Analysis and Machine Learning Techniques. ; login: Feb. 2011—Conference Reports—vol. 36, No. 1, pp. 104-110. [cited by applicant]
SPLUNK Enterprise Overview 8.0.0—splunk > turn data into doing—copyright 2020 Splunk Inc.—in 17 pages—Retrieved from Splunk Documentation <URL: https://docs.splunk.com/Documentation> on May 20, 2020. [cited by applicant]
SPLUNK Cloud User Manual 8.0.2004—splunk> turn data in doing—copyright 2020 Splunk Inc.—in 66 pages—Retrieved from Splunk Documentation <URL: https://docs.splunk.com/Documentation> on May 20, 2020. [cited by applicant]
SPLUNK Quick Reference Guide, updated 2019, available online at https://www.splunk.com/pdfs/solution-guides/splunk-quick-reference-guide.pdf, retrieved May 20, 2020. [cited by applicant]
U.S. Appl. No. 18/162,639, filed Jan. 31, 2023, James et al. [cited by applicant]
U.S. Appl. No. 18/429,234, filed Jan. 31, 2024, James et al. [cited by applicant]
U.S. Appl. No. 18/429,276, filed Jan. 31, 2024, James et al. [cited by applicant]