IP Library Granted Patent US 11,882,054
Granted Patent B2
US 11,882,054 · App. 17/158,435 · Granted Jan 23, 2024

Terminating data server nodes

Inventors: Ioannis Vlachogiannis (San Francisco, CA); Panagiotis Papadomitsos (San Francisco, CA); Vassilis Karampinas (San Francisco, CA); Maria Nasioti (San Francisco, CA)
Assignee: Splunk Inc.
H04L47/745G06F16/248G06F16/2477G06F16/9535H04L41/069H04L41/0806H04L67/025H04L67/75H04L67/02
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,882,054
App. No.
17/158,435
Granted
Jan 23, 2024
Kind
B2
Abstract

A system of terminating data server nodes based on insufficient processing of messages. In embodiments, a plurality of time-stamped, searchable events from machine data are created. A plurality of data server nodes that service messages across one or more portions of the plurality of time-stamped, searchable events, are executed in parallel. For each message received, the message is sent to a data server node, of the plurality of data server nodes, to cause the receiving data server node to perform a data operation associated with the received message. A determination can then be made that a particular data server node insufficiently processes messages sent to the particular data server node. Thereafter, termination of the particular data server node is initiated to terminate processes or threads executed by the particular data server node.

Claims (47)

1. A method comprising:

creating a plurality of time-stamped, searchable events from machine data;

executing in parallel a plurality of data server nodes that service messages across one or more portions of the plurality of time-stamped, searchable events, wherein each portion assigned to each data server node of the plurality of data server nodes is unique among the plurality of data server nodes;

for each message received, sending the message to a data server node, of the plurality of data server nodes, to cause the receiving data server node to perform a data operation associated with the received message;

determining that a particular data server node, of the plurality of data server nodes, has failed to process any messages sent to the particular data server node within a certain amount of time;

initiating termination of the particular data server node to terminate processes or threads executed by the particular data server node;

upon terminating the particular data server node, receiving a new message indicating a data operation to perform with respect to a particular data collection, identified via a collection identifier, assigned to the particular data server node;

for the new message, determining that each data server node, of the plurality of data server nodes, is unassigned to the particular data collection identified via the collection identifier in association with the new message; and

based on the determination that each data server node is unassigned to the particular data collection, initiating a new data server node and assigning the new data server node to the particular data collection.

2. The method of claim 1 , wherein the message comprises a search query to be executed across events in the one or more portions of the plurality of time-stamped, searchable events that have time stamps that occur within a specified time period.

3. The method of claim 1 , further comprising determining to which data server node of the plurality of data server nodes to send each received message.

4. The method of claim 1 , further comprising:

logging times at which messages are sent to each of the data server nodes;

identifying data server nodes, including the particular data server node, that have not processed one of the messages within the certain amount of time.

5. The method of claim 1 , wherein each of the data server nodes corresponds to a predefined period of time specified in node-specific configuration data.

6. The method of claim 1 , wherein the certain amount of time is a function of one or more parameters comprising a server load, a target amount of memory to reallocate, a time of day, a statistic derived, and a node-specific weight.

7. The method of claim 1 , wherein the certain amount of time comprises a threshold determined based on how long it has been since each of the other data server nodes processed one of the messages.

8. The method of claim 1 , wherein determining that the particular data server node has failed to process any messages sent to the particular data server node within the certain amount of time is based on a priority score assigned to the particular data server node based on an amount of time since the particular data server node processed a message.

9. The method of claim 1 , wherein determining that the particular data server node has failed to process any messages sent to the particular data server node within the certain amount of time comprises:

determining a priority score for the particular data server node, the priority score determined based on an amount of time since the particular data server node processed a message; and

determining that the priority score exceeds a threshold of that the priority score and is higher than priority scores associated with other data server nodes of the plurality of data server nodes.

10. The method of claim 1 , wherein determining that the particular data server node has failed to process any messages sent to the particular data server node within the certain amount of time comprises determining that the particular data server node has not began processing any messages and/or completed any data operations within the certain amount of time.

11. The method of claim 1 , wherein initiating termination of the particular data server node comprises communicating a termination message to the particular data server node.

12. The method of claim 1 , wherein initiating termination of the particular data server node comprises instructing a component to terminate the processes and the threads executed by the particular data server node.

13. The method of claim 1 further comprising initiating deallocation of any memory used by the particular data server node.

14. The method of claim 1 , wherein each portion of the plurality of time-stamped, searchable events is associated with configuration data that describes various aspects of events in the one or more portions of the plurality of time-stamped, searchable events and impacts how a data server node processes the events.

15. The method of claim 1 , wherein determining that the particular data server node has failed to process any messages sent to the particular data server node within the certain amount of time is based on one or more expected usage patterns for a portion of the plurality of time-stamped, searchable events associated with the particular data server node, wherein the one or more expected usage patterns are dynamically determined based on monitoring a frequency of usage for the portion of the plurality of time-stamped, searchable events associated with the particular data server node.

16. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computer devices, cause performance of:

creating a plurality of time-stamped, searchable events from machine data;

executing in parallel a plurality of data server nodes that service messages across one or more portions of the plurality of time-stamped, searchable events, wherein each portion assigned to each data server node of the plurality of data server nodes is unique among the plurality of data server nodes;

for each message received, sending the message to a data server node, of the plurality of data server nodes, to cause the receiving data server node to perform a data operation associated with the received message;

determining that a particular data server node, of the plurality of data server nodes, has failed to process any messages sent to the particular data server node within a certain amount of time;

initiating termination of the particular data server node to terminate processes or threads executed by the particular data server node;

upon terminating the particular data server node, receiving a new message indicating a data operation to perform with respect to a particular data collection, identified via a collection identifier, assigned to the particular data server node;

for the new message, determining that each data server node, of the plurality of data server nodes, is unassigned to the particular data collection identified via the collection identifier in association with the new message; and

based on the determination that each data server node is unassigned to the particular data collection, initiating a new data server node and assigning the new data server node to the particular data collection.

17. An apparatus comprising:

one or more processors; and

a memory storing instructions, which when executed by the one or more processors, causes the one or more processors to:

create a plurality of time-stamped, searchable events from machine data;

execute in parallel a plurality of data server nodes that service messages across one or more portions of the plurality of time-stamped, searchable events, wherein each portion assigned to each data server node of the plurality of data server nodes is unique among the plurality of data server nodes;

for each message received, send the message to a data server node, of the plurality of data server nodes, to cause the receiving data server node to perform a data operation associated with the received message;

determine that a particular data server node, of the plurality of data server nodes, has failed to process any messages sent to the particular data server node within a certain amount of time;

initiate termination of the particular data server node to terminate processes or threads executed by the particular data server node;

upon terminating the particular data server node, receive a new message indicating a data operation to perform with respect to a particular data collection, identified via a collection identifier, assigned to the particular data server node;

for the new message, determine that each data server node, of the plurality of data server nodes, is unassigned to the particular data collection identified via the collection identifier in association with the new message; and

based on the determination that each data server node is unassigned to the particular data collection, initiate a new data server node and assigning the new data server node to the particular data collection.

Assignments (4)
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 069825/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2021
From: VLACHOGIANNIS, IOANNIS; PAPADOMITSOS, PANAGIOTIS; KARAMPINAS, VASILEIOS; NASIOTI, MARIA
To: SPLUNK INC.
Reel/Frame 055033/0328 →
Continuity (4)
Continuation 15493073 · Apr 20, 2017
Continuation 14686669 · Apr 14, 2015
Continuation 14217454 · Mar 17, 2014
Related Publication 20210152489A1 · May 20, 2021