IP Library Granted Patent US 11,580,107
Granted Patent B2
US 11,580,107 · App. 16/398,038 · Granted Feb 14, 2023

Bucket data distribution for exporting data to worker nodes

Inventors: Sourav Pal (Foster City, CA); Arindam Bhattacharjee (Fremont, CA); Asha Andrade (Sunnyvale, CA); Nikhil Roy (Fremont, CA)
Assignee: Splunk Inc.
G06F16/2455G06F9/5027G06F16/2228
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 11,580,107
App. No.
16/398,038
Granted
Feb 14, 2023
Kind
B2
Abstract

Systems and methods are described for exporting bucket data from one or more buckets to one or more worker nodes. The system can identify data from different bucket data from buckets stored in a data intake and query system that is to be processed by one or more worker nodes. The system can allocate one or more execution resources, such as a processing pipeline, to process and export the bucket data from the buckets. The system can assign bucket data corresponding to individual buckets to the execution resource based on a bucket distribution policy. The indexer can export the bucket data to the worker nodes for further processing based on the bucket data-execution resource assignment.

Claims (50)

1. A method, comprising:

receiving a query, wherein the query identifies a set of data and a manner of processing the set of data;

identifying one or more buckets associated with the query;

identifying one or more bucket data associated with the query, wherein bucket data is identified for each bucket of the one or more buckets;

determining one or more execution resources to allocate to process the one or more bucket data;

assigning each of the one or more bucket data to an execution resource of the one or more execution resources based on content of the one or more bucket data; and

exporting the one or more bucket data to one or more worker nodes based on the assigning, wherein the one or more worker nodes process the one or more bucket data and provide query results based on the query.

2. The method of claim 1 , wherein the query is received at an indexer of a data intake and query system.

3. The method of claim 1 , wherein the query is a subquery of a query received by a data intake and query system.

4. The method of claim 1 , wherein the set of data is a subset of data of a data intake and query system.

5. The method of claim 1 , wherein the one or more buckets correspond to one or more file system directories.

6. The method of claim 1 , wherein exporting comprises processing the one or more bucket data based on the query to provide one or more processed bucket data, and exporting the one or more processed bucket data based on the assigning.

7. The method of claim 1 , wherein the one or more buckets associated with the query are identified based on one or more query parameters of the query.

8. The method of claim 1 , wherein the one or more buckets associated with the query are identified based on at least one of a partition or a time range identified by the query.

9. The method of claim 1 , wherein the one or more bucket data associated with the query are identified based on one or more query parameters of the query.

10. The method of claim 1 , wherein the one or more bucket data associated with the query are identified based on at least one of a partition, a time range, a field, a field-value pair, or a keyword, identified by the query.

11. The method of claim 1 , wherein particular bucket data of the one or more bucket data is identified based on a comparison of one or more query parameters of the query with data of an inverted index associated with a particular bucket of the one or more buckets.

12. The method of claim 1 , wherein identifying the one or more bucket data comprises identifying a quantity of events associated with the query for each bucket of the one or more buckets.

13. The method of claim 1 , wherein determining one or more execution resources comprises determining the one or more execution resources based on an execution resource allocation policy.

14. The method of claim 1 , wherein determining one or more execution resources comprises allocating the one or more execution resources based on a lesser of a quantity of the one or more buckets, a quantity of available execution resources, and a threshold quantity.

15. The method of claim 1 , wherein the one or more execution resources comprise one or more processors.

16. The method of claim 1 , wherein the one or more execution resources comprise one or more processing pipelines.

17. The method of claim 1 , wherein the assigning comprises assigning each of the one or more bucket data to an execution resource of the one or more execution resources based on a quantity of events of each of the one or more bucket data.

18. The method of claim 1 , wherein the assigning comprises assigning each of the one or more bucket data to an execution resource of the one or more execution resources based on a quantity of events of each of the one or more bucket data to reduce a difference between a largest quantity of events assigned to a first execution resource and a smallest quantity of events assigned to a second execution resource.

19. The method of claim 1 , wherein the assigning comprises assigning each of the one or more bucket data to an execution resource of the one or more execution resources based on a quantity of events of each of the one or more bucket data to approximate an equal distribution of events to the one or more execution resources.

20. A computing system of a data intake and query system, the computing system comprising:

memory; and

one or more processing devices coupled to the memory and configured to:

receive a query, wherein the query identifies a set of data and a manner of processing the set of data;

identify one or more buckets associated with the query;

identify one or more bucket data associated with the query, wherein bucket data is identified for each bucket of the one or more buckets;

determine one or more execution resources to allocate to process the one or more bucket data;

assign each of the one or more bucket data to an execution resource of the one or more execution resources based on content of the one or more bucket data; and

export the one or more bucket data to one or more worker nodes based on the assigning, wherein the one or more worker nodes process the one or more bucket data and provide query results based on the query.

21. The system of claim 20 , wherein the one or more buckets associated with the query are identified based on one or more query parameters of the query.

22. The system of claim 20 , wherein the one or more buckets associated with the query are identified based on at least one of a partition or a time range identified by the query.

23. The system of claim 20 , wherein particular bucket data of the one or more bucket data is identified based on a comparison of one or more query parameters of the query with data of an inverted index associated with a particular bucket of the one or more buckets.

24. The system of claim 20 , wherein to assign each of the one or more bucket data to an execution resource the one or more processing devices are configured to assign each of the one or more bucket data to an execution resource of the one or more execution resources based on a quantity of events of each of the one or more bucket data.

25. The system of claim 20 , wherein to assign each of the one or more bucket data to an execution resource the one or more processing devices are configured to assign each of the one or more bucket data to an execution resource of the one or more execution resources based on a quantity of events of each of the one or more bucket data to reduce a difference between a largest quantity of events assigned to a first execution resource and a smallest quantity of events assigned to a second execution resource.

26. The system of claim 20 , wherein to assign each of the one or more bucket data to an execution resource the one or more processing devices are configured to assign each of the one or more bucket data to an execution resource of the one or more execution resources based on a quantity of events of each of the one or more bucket data to approximate an equal distribution of events to the one or more execution resources.

27. Non-transitory computer-readable media comprising computer-executable instructions that, when executed by a computing system of a data intake and query system, cause the computing system to:

receive a query, wherein the query identifies a set of data and a manner of processing the set of data;

identify one or more buckets associated with the query;

identify one or more bucket data associated with the query, wherein bucket data is identified for each bucket of the one or more buckets;

determine one or more execution resources to allocate to process the one or more bucket data;

assign each of the one or more bucket data to an execution resource of the one or more execution resources based on content of the one or more bucket data; and

export the one or more bucket data to one or more worker nodes based on the assigning, wherein the one or more worker nodes process the one or more bucket data and provide query results based on the query.

28. The non-transitory computer-readable media of claim 27 , wherein to determine one or more execution resources the computer-executable instructions cause the computing system to allocate the one or more execution resources based on a lesser of a quantity of the one or more buckets, a quantity of available execution resources, and a threshold quantity.

29. The non-transitory computer-readable media of claim 27 , wherein to determine one or more execution resources the computer-executable instructions cause the computing system to determine the one or more execution resources based on an execution resource allocation policy.

30. The non-transitory computer-readable media of claim 27 , wherein the one or more execution resources comprise one or more processing pipelines.

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 →
NUNC PRO TUNC ASSIGNMENT Recorded Feb 4, 2020
From: PAL, SOURAV; BHATTACHARJEE, ARINDAM; ANDRADE, ASHA; ROY, NIKHIL
To: SPLUNK INC.
Reel/Frame 051712/0786 →
Continuity (19)
Continuation In Part 16147165 · Sep 28, 2018
Continuation In Part 16051197 · Jul 31, 2018
Continuation In Part 15665187 · Jul 31, 2017
Continuation In Part 15665248 · Jul 31, 2017
Continuation In Part 15665159 · Jul 31, 2017
Continuation In Part 15665197 · Jul 31, 2017
Continuation In Part 15665279 · Jul 31, 2017
Continuation In Part 15665302 · Jul 31, 2017
Continuation In Part 15665148 · Jul 31, 2017
Continuation In Part 15665339 · Jul 31, 2017
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Continuation In Part 15276717 · Sep 26, 2016
Related Publication 20190310977A1 · Oct 10, 2019
Cited By (14)
US 12,204,536 US 12,204,593 US 12,248,484 US 12,265,525 US 12,271,389 US 12,287,790 US 12,393,631 US 12,411,803 US 12,436,963 US 12,585,638 US 12,613,864 US 12,639,379 US 12,650,965 US 12,670,152