IP Library Granted Patent US 12,596,618
Granted Patent B1
US 12,596,618 · App. 18/651,689 · Granted Apr 7, 2026

Corrupted bucket handling in a peer cluster

Inventors: Sayantan Bhattacharyya (Sydney, AU); Wendi Qiu (Norwest, AU); Christopher Michael Sutton (North Ryde, AU)
Assignee: Cisco Technology, Inc.
G06F11/1464G06F11/1469H04L67/1074
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,596,618
App. No.
18/651,689
Granted
Apr 7, 2026
Kind
B1
Abstract

A method for recovering corrupted buckets in a peer cluster is presented. A cluster manager sends a request to peer nodes storing bucket copies corresponding to a corrupted bucket to report bucket health metrics of the respective bucket copies. The peer nodes rebuild the respective bucket copies and report updated bucket health metrics corresponding to the respective rebuilt bucket copies to the cluster manager. The cluster manager elects a bucket copy with a highest searchable event count as the canonical bucket copy. The cluster manager sends all peer nodes having bucket copies with searchable event counts less than the searchable event count of the canonical bucket copy an instruction to discard their respective bucket copies. The cluster manager sends the peer node storing the canonical bucket copy an instruction to replicate the canonical bucket copy to the peer nodes with discarded bucket copies.

Claims (69)

1 . A computer-implemented method, comprising:

receiving, by a cluster manager of a peer cluster comprising a plurality of peer nodes, a notification of a corrupted bucket stored in the peer cluster; and

performing, by the cluster manager, a bucket recovery operation, comprising:

for each peer node of a subset of the plurality of peer nodes, sending a request to the peer node to report a bucket health metric for a bucket copy corresponding to the corrupted bucket stored on the peer node,

obtaining, from each peer node of the subset of the plurality of peer nodes, a corresponding bucket health metric comprising a searchable event count of the respective bucket copy stored on the peer node,

electing, as a canonical bucket copy, a bucket copy having a searchable event count with a highest value, wherein the canonical bucket copy is stored on an elected peer node, and

sending a replicate command to the elected peer node storing the canonical bucket copy to replicate the canonical bucket copy to the plurality of peer nodes of the peer cluster.

2 . The method of claim 1 , wherein the subset of the plurality of peer nodes includes peer nodes that store the bucket copy corresponding to the corrupted bucket.

3 . The method of claim 1 , wherein

the request to report the bucket health metric is received by a first peer node of the subset of the plurality of peer nodes; and

wherein the method further comprises rebuilding, by the first peer node, the bucket copy stored on the first peer node responsive to the request.

4 . The method of claim 1 , further comprising:

reporting, by a first peer node of the subset of the plurality of peer nodes, to the cluster manager, a bucket rebuild process status of the first peer node and an updated bucket health metric of the bucket copy stored on the first peer node,

wherein the updated bucket health metric includes at least the searchable event count.

5 . The method of claim 1 , further comprising:

by the cluster manager, prior to sending the replicate command:

sending an instruction to a first peer node of the subset of the plurality of peer nodes to discard the respective bucket copy stored on the first peer node,

wherein the searchable event count corresponding to the respective bucket copy stored on the first peer node is less than the searchable event count corresponding to the canonical bucket copy.

6 . The method of claim 1 , further comprising:

adding, by the cluster manager, an identifier of the corrupted bucket to a corrupted bucket queue, wherein the corrupted bucket queue comprises a plurality of identifiers corresponding to a plurality of corrupted buckets.

7 . The method of claim 6 , further comprising:

scheduling, by the cluster manager, a plurality of concurrent instances of a bucket recovery process for each corrupted bucket of at least a subset of the plurality of identifiers in the corrupted bucket queue,

wherein the plurality of concurrent instances of the bucket recovery process is less than a concurrent instance threshold.

8 . The method of claim 1 , wherein the peer cluster further comprises the plurality of peer nodes, at least one search head, and the cluster manager, and

wherein a number of plurality of peer nodes in the peer cluster corresponds at least to a replication factor, and

wherein the plurality of peer nodes stores a plurality of machine generated events in a plurality of buckets, the plurality of buckets comprising the corrupted bucket; and

wherein a number of bucket copies corresponding to the corrupted bucket corresponds to the replication factor.

9 . The method of claim 1 , further comprising:

receiving, by the cluster manager, the notification of the corrupted bucket from an administrative application, as at least one of a representational state transfer (REST) call, a command line instruction (CLI), and a Web User Interface (WebUI) call.

10 . The method of claim 1 , wherein receiving the notification of the corrupted bucket comprises:

receiving, by the cluster manager, the notification of the corrupted bucket from a first peer node of the peer cluster.

11 . The method of claim 1 , further comprising:

generating, by a first peer node, a read error notification; and

adding, by a peer engine executing on the first peer node, an identifier of the corrupted bucket to a corrupted bucket queue corresponding to the first peer node, wherein the corrupted bucket queue corresponding to the first peer node comprises a plurality of identifiers of a plurality of corrupted buckets.

12 . The method of claim 11 , further comprising:

periodically sending, by the first peer node, the corrupted bucket queue as the notification to the cluster manager by a REST Hypertext Transfer Protocol (HTTP) request.

13 . The method of claim 1 , further comprising:

determining, by a first peer node, during a restart process,

a mismatch between a bucket journal size corresponding to a bucket health metric of a bucket of the first peer node and a bucket journal size stored in a bucket manifest entry corresponding to the bucket from a bucket manifest stored on the first peer node, and

transmitting, by the first peer node, the notification responsive to the mismatch.

14 . A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations comprising:

receiving, by a cluster manager of a peer cluster comprising a plurality of peer nodes, a notification of a corrupted bucket stored in the peer cluster; and

performing, by the cluster manager, a bucket recovery operation, comprising:

for each peer node of a subset of the plurality of peer nodes, sending a request to the peer node to report a bucket health metric for a bucket copy corresponding to the corrupted bucket stored on the peer node,

obtaining, from each peer node of the subset of the plurality of peer nodes, a corresponding bucket health metric comprising a searchable event count of the respective bucket copy stored on the peer node,

electing, as a canonical bucket copy, a bucket copy having a searchable event count with a highest value, wherein the canonical bucket copy is stored on an elected peer node, and

sending a replicate command to the elected peer node storing the canonical bucket copy to replicate the canonical bucket copy to the plurality of peer nodes of the peer cluster.

15 . The computing device of claim 14 , wherein

the subset of the plurality of peer nodes includes peer nodes that store the bucket copy corresponding to the corrupted bucket.

16 . The computing device of claim 14 , wherein

the request to report a bucket health metric is received by a first peer node of the subset of the plurality of peer nodes; and

wherein the operations further comprise rebuilding, by the first peer node, the bucket copy stored on the first peer node responsive to the request.

17 . The computing device of claim 14 , wherein the operations further comprise:

reporting, by a first peer node of the subset of the plurality of peer nodes, to the cluster manager, a bucket rebuild process status of the first peer node and an updated bucket health metric of the bucket copy stored on the first peer node,

wherein the updated bucket health metric includes at least the searchable event count.

18 . The computing device of claim 14 , wherein the operations further comprise:

prior to sending the replicate command:

sending an instruction to a first peer node of the subset of the plurality of peer nodes to discard the respective bucket copy stored on the first peer node,

wherein the searchable event count corresponding to the respective bucket copy stored on the first peer node is less than the searchable event count corresponding to the canonical bucket copy.

19 . A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a cluster manager of a peer cluster comprising a plurality of peer nodes, a notification of a corrupted bucket stored in the peer cluster; and

performing, by the cluster manager, a bucket recovery operation, comprising:

for each peer node of a subset of the plurality of peer nodes, sending a request to the peer node to report a bucket health metric for a bucket copy corresponding to the corrupted bucket stored on the peer node,

obtaining, from each peer node of the subset of the plurality of peer nodes, a corresponding bucket health metric comprising a searchable event count of the respective bucket copy stored on the peer node,

electing, as a canonical bucket copy, a bucket copy having a searchable event count with a highest value, wherein the canonical bucket copy is stored on an elected peer node, and

sending a replicate command to the elected peer node storing the canonical bucket copy to replicate the canonical bucket copy to the plurality of peer nodes of the peer cluster.

20 . The non-transitory computer-readable medium of claim 19 , wherein the subset of the plurality of peer nodes includes peer nodes that store the bucket copy corresponding to the corrupted bucket.

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 →
References Cited (17)
US 7937344B2 · Baum et al. · 2011 [cited by applicant]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8751529B2 · Zhang et al. · 2014 [cited by applicant]
US 8788525B2 · Neels et al. · 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 12265858B1 · Bhattacharyya · 2025 [cited by examiner]
US 20040093555A1 · Therrien · 2004 [cited by examiner]
US 20190098106A1 · Mugel et al. · 2019 [cited by applicant]
US 20190303373A1 · Patel · 2019 [cited by examiner]
US 20210279140A1 · Sarkar · 2021 [cited by examiner]
Splunk Enterprise 8.0.0 Overview, available online, retrieved May 20, 2020 from docs.splunk.com, 17 pages. [cited by applicant]
Splunk Cloud 8.0.2004 User Manual, available online, retrieved May 20, 2020 from docs.splunk.com, 66 pages. [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, 6 pages. [cited by applicant]
Carasso, David, “Exploring Splunk”, published by CITO Research, New York, NY, Apr. 2012, 156 pages. [cited by applicant]
Bitinka, 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]