IP Library Granted Patent US 12,580,909
Granted Patent B2
US 12,580,909 · App. 18/582,784 · Granted Mar 17, 2026

Deploying microservices for data storage management

Inventors: Jagadeesh Narayanan Kallidaikurichi Swaminathan (Hyderabad, IN); Bhavyan Bharatkumar Mehta (Mumbai, IN); Amey Vijaykumar Karandikar (Marlboro, NJ); Anand Vibhor (Manalapan, NJ); Parminder Singh (Edison, NJ); Rohit Iyer (Hoboken, NJ)
Assignee: Commvault Systems, Inc.
H04L63/083
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,580,909
App. No.
18/582,784
Granted
Mar 17, 2026
Kind
B2
Abstract

A hosting service enables streamlined scaling of features that relate to data storage management. The scaling is powered by deployment of microservices, each one directed to a discrete feature of a data storage management system. In addition to scaling on demand, the disclosed hosting service provides additional value-added features, such as streamlining intra-system handling, auditing, and reporting of logs generated by microservices; standardizing exception handling; mediating port assignments for co-located microservices to avoid collisions; streamlining formats for inter-microservice communications; streamlining local database access; etc. Advantageously, the disclosed solution off-loads the storage manager, and additionally improves system performance by scaling various functions and by streamlining interoperability among components. Furthermore, the disclosed solution also enables the hosting service in general, and each discrete microservice in particular, to be enhanced, deployed, and scaled separately and asynchronously from each other and from the storage manager.

Claims (21)

1 . A system comprising a plurality of compute resources provided by a plurality of computer hardware processors, wherein the plurality of compute resources execute computer programming instructions that configure the system to:

at a first compute resource among the plurality of compute resources, execute an instance of a hosting service, which is configured to: generate an identity authenticator microservice, which comprises an authenticator controller application and further comprises an identity database in communication with the authenticator controller application;

at a second compute resource among the plurality of compute resources, execute an instance of the hosting service, which is configured to: generate a scheduler microservice, which comprises a scheduler controller application and further comprises a schedule database in communication with the scheduler controller application;

wherein the scheduler microservice is configured to: based on information in the schedule database, determine a trigger condition for a storage management job that was requested by a user, and

before triggering the storage management job, communicate with the identity authenticator microservice to determine whether the user is currently authorized to use the system;

wherein the identity authenticator microservice is configured to:

based on determining that the user is currently authorized according to the identity database, issue an approval, and log the approval in one or more authentication logs maintained by the authenticator controller application, and

based on determining that the user is currently not authorized according to the identity database, transmit a rejection, and log the rejection in the one or more authentication logs;

wherein the scheduler microservice is further configured to: based on receiving the approval, transmit a trigger for the storage management job to a storage manager that manages storage operations in the system, wherein the storage manager executes on a third compute resource among the plurality of compute resources, which is distinct from the first compute resource and from the second compute resource; and

wherein the storage manager is configured to: based on the trigger received from the scheduler microservice, initiate the storage management job; and

wherein the scheduler microservice is further configured to: based on receiving the rejection, update the schedule database to indicate that the storage management job is canceled, and notify the storage manager that the storage management job is canceled.

2 . The system of claim 1 , wherein the identity authenticator microservice is further configured to: based on determining that the user is currently not authorized according to the identity database, transmit a notice of the rejection to an audit microservice, which is configured to: based on receiving the notice of the rejection, issue an exception alarm.

3 . The system of claim 1 , wherein the instance of the hosting service executing at the second compute resource further comprises a message set suitable for communicating with the identity authenticator microservice.

4 . The system of claim 1 , wherein a microservices host computing device comprises the first compute resource, which is the same as the second compute resource; and

wherein the instance of the hosting service executing at the first compute resource is configured to: assign a first port number for the authenticator controller application to use at the microservices host computing device, and assign a second port number for the scheduler controller application to use at the microservices host computing device, wherein the second port number is distinct from the first port number.

5 . The system of claim 1 , wherein the scheduler controller application is further configured to: log one of the approval and the rejection at one or more schedule logs maintained by the scheduler controller application, wherein the one or more schedule logs are formatted according to a formatting rule supplied by the instance of the hosting service executing at the second compute resource.

6 . The system of claim 1 , wherein the instance of the hosting service executing at the second compute resource comprises a dynamic controller loader, which adds the scheduler controller application to the scheduler microservice.

7 . The system of claim 1 , wherein the instance of the hosting service executing at the second compute resource comprises a formatter utility, which converts a first message received from the identity authenticator microservice into a second message that the scheduler microservice can consume.

8 . The system of claim 1 , wherein the storage manager is configured without a scheduler service.

9 . The system of claim 1 , wherein the plurality of compute resources operate in a cloud computing environment.

10 . The system of claim 1 , wherein one or more of: the first compute resource and the second compute resource operates in a cloud computing environment.

Assignments (2)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2024
From: SWAMINATHAN, JAGADEESH NARAYANAN KALLIDAIKURICHI; MEHTA, BHAVYAN BHARATKUMAR; KARANDIKAR, AMEY VIJAYKUMAR; VIBHOR, ANAND; SINGH, PARMINDER; IYER, ROHIT
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 066831/0487 →
Continuity (2)
Provisional Application 63449555 · Mar 2, 2023
Related Publication 20240297876A1 · Sep 5, 2024
References Cited (131)
US 4084231A · Capozzi et al. · 1978 [cited by applicant]
US 4267568A · Dechant et al. · 1981 [cited by applicant]
US 4283787A · Chambers · 1981 [cited by applicant]
US 4417321A · Chang et al. · 1983 [cited by applicant]
US 4641274A · Swank · 1987 [cited by applicant]
US 4654819A · Stiffler et al. · 1987 [cited by applicant]
US 4686620A · Ng · 1987 [cited by applicant]
US 4912637A · Sheedy et al. · 1990 [cited by applicant]
US 4995035A · Cole · 1991 [cited by applicant]
US 5005122A · Griffin · 1991 [cited by applicant]
US 5093912A · Dong et al. · 1992 [cited by applicant]
US 5133065A · Cheffetz et al. · 1992 [cited by applicant]
US 5193154A · Kitajima et al. · 1993 [cited by applicant]
US 5212772A · Masters · 1993 [cited by applicant]
US 5226157A · Nakano et al. · 1993 [cited by applicant]
US 5239647A · Anglin et al. · 1993 [cited by applicant]
US 5241668A · Eastridge et al. · 1993 [cited by applicant]
US 5241670A · Eastridge et al. · 1993 [cited by applicant]
US 5276860A · Fortier et al. · 1994 [cited by applicant]
US 5276867A · Kenley et al. · 1994 [cited by applicant]
US 5287500A · Stoppani, Jr. · 1994 [cited by applicant]
US 5301286A · Rajani · 1994 [cited by applicant]
US 5321816A · Rogan et al. · 1994 [cited by applicant]
US 5347653A · Flynn et al. · 1994 [cited by applicant]
US 5410700A · Fecteau et al. · 1995 [cited by applicant]
US 5420996A · Aoyagi · 1995 [cited by applicant]
US 5454099A · Myers et al. · 1995 [cited by applicant]
US 5559991A · Kanfi · 1996 [cited by applicant]
US 5642496A · Kanfi · 1997 [cited by applicant]
US 6418478B1 · Ignatius et al. · 2002 [cited by applicant]
US 6542972B2 · Ignatius et al. · 2003 [cited by applicant]
US 6658436B2 · Oshinsky et al. · 2003 [cited by applicant]
US 6721767B2 · DeMeno et al. · 2004 [cited by applicant]
US 6760723B2 · Oshinsky et al. · 2004 [cited by applicant]
US 7003641B2 · Prahlad · 2006 [cited by applicant]
US 7035880B1 · Crescenti · 2006 [cited by applicant]
US 7107298B2 · Prahlad · 2006 [cited by applicant]
US 7130970B2 · Devassy · 2006 [cited by applicant]
US 7162496B2 · Amarendran et al. · 2007 [cited by applicant]
US 7174433B2 · Kottomtharayil et al. · 2007 [cited by applicant]
US 7246207B2 · Kottomtharayil · 2007 [cited by applicant]
US 7315923B2 · Retnamma · 2008 [cited by applicant]
US 7343453B2 · Prahlad · 2008 [cited by applicant]
US 7389311B1 · Crescenti et al. · 2008 [cited by applicant]
US 7395282B1 · Crescenti · 2008 [cited by applicant]
US 7440982B2 · Lu · 2008 [cited by applicant]
US 7454569B2 · Kavuri · 2008 [cited by applicant]
US 7490207B2 · Amarendran et al. · 2009 [cited by applicant]
US 7500053B1 · Kavuri · 2009 [cited by applicant]
US 7529782B2 · Prahlad · 2009 [cited by applicant]
US 7536291B1 · Vijayan Retnamma et al. · 2009 [cited by applicant]
US 7543125B2 · Gokhale · 2009 [cited by applicant]
US 7546324B2 · Prahlad et al. · 2009 [cited by applicant]
US 7603386B2 · Amarendran et al. · 2009 [cited by applicant]
US 7606844B2 · Kottomtharayil · 2009 [cited by applicant]
US 7613752B2 · Prahlad · 2009 [cited by applicant]
US 7617253B2 · Prahlad et al. · 2009 [cited by applicant]
US 7617262B2 · Prahlad · 2009 [cited by applicant]
US 7620710B2 · Kottomtharayil · 2009 [cited by applicant]
US 7636743B2 · Erofeev · 2009 [cited by applicant]
US 7651593B2 · Prahlad · 2010 [cited by applicant]
US 7657550B2 · Prahlad · 2010 [cited by applicant]
US 7660807B2 · Prahlad · 2010 [cited by applicant]
US 7661028B2 · Erofeev · 2010 [cited by applicant]
US 7734669B2 · Kottomtharayil · 2010 [cited by applicant]
US 7747579B2 · Prahlad · 2010 [cited by applicant]
US 7801864B2 · Prahlad · 2010 [cited by applicant]
US 7809914B2 · Kottomtharayil · 2010 [cited by applicant]
US 8156086B2 · Lu et al. · 2012 [cited by applicant]
US 8170995B2 · Prahlad · 2012 [cited by applicant]
US 8229954B2 · Kottomtharayil · 2012 [cited by applicant]
US 8230195B2 · Amarendran · 2012 [cited by applicant]
US 8285681B2 · Prahlad · 2012 [cited by applicant]
US 8307177B2 · Prahlad · 2012 [cited by applicant]
US 8364652B2 · Vijayan · 2013 [cited by applicant]
US 8370542B2 · Lu et al. · 2013 [cited by applicant]
US 8578120B2 · Attarde · 2013 [cited by applicant]
US 8954446B2 · Retnamma · 2015 [cited by applicant]
US 9020900B2 · Retnamma · 2015 [cited by applicant]
US 9098495B2 · Gokhale · 2015 [cited by applicant]
US 9239687B2 · Vijayan · 2016 [cited by applicant]
US 9444811B2 · Nara · 2016 [cited by applicant]
US 9633033B2 · Vijayan · 2017 [cited by applicant]
US 9639274B2 · Maranna · 2017 [cited by applicant]
US 9898213B2 · Joshi et al. · 2018 [cited by applicant]
US 10228962B2 · Dornemann et al. · 2019 [cited by applicant]
US 10255143B2 · Vijayan et al. · 2019 [cited by applicant]
US 10592145B2 · Bedadala et al. · 2020 [cited by applicant]
US 10684924B2 · Kilaru et al. · 2020 [cited by applicant]
US 10735394B2 · Gupta · 2020 [cited by examiner]
US 10891304B2 · Mehta et al. · 2021 [cited by applicant]
US 10893103B2 · Mehta et al. · 2021 [cited by applicant]
US 11327819B1 · Linsey et al. · 2022 [cited by applicant]
US 20020184244A1 · Hsiao et al. · 2002 [cited by applicant]
US 20060224846A1 · Amarendran · 2006 [cited by applicant]
US 20090319534A1 · Gokhale · 2009 [cited by applicant]
US 20120150818A1 · Retnamma et al. · 2012 [cited by applicant]
US 20140109205A1 · Lymer · 2014 [cited by examiner]
US 20140149358A1 · Aphale et al. · 2014 [cited by applicant]
US 20160350391A1 · Vijayan et al. · 2016 [cited by applicant]
US 20170168903A1 · Dornemann et al. · 2017 [cited by applicant]
US 20170185488A1 · Kumarasamy et al. · 2017 [cited by applicant]
US 20170193003A1 · Vijayan et al. · 2017 [cited by applicant]
US 20170235647A1 · Kilaru et al. · 2017 [cited by applicant]
US 20170242871A1 · Kilaru et al. · 2017 [cited by applicant]
US 20180309818A1 · Park et al. · 2018 [cited by applicant]
US 20190108341A1 · Bedhapudi et al. · 2019 [cited by applicant]
US 20200034458A1 · Mehta et al. · 2020 [cited by applicant]
US 20200073730A1 · Jannu · 2020 [cited by examiner]
US 20200159557A1 · Pasupathy et al. · 2020 [cited by applicant]
US 20200257512A1 · Iyengar Gorur Krishna · 2020 [cited by applicant]
US 20210089555A1 · Mehta et al. · 2021 [cited by applicant]
US 20210312360A1 · Kim · 2021 [cited by examiner]
US 20220350642A1 · Poddar · 2022 [cited by examiner]
WO 9513580 · 1995 [cited by applicant]
WO 9912098 · 1999 [cited by applicant]
WO 2006052872 · 2006 [cited by applicant]
U.S. Appl. No. 18/431,590, filed Feb. 2, 2024, Vibhor et al. [cited by applicant]
U.S. Appl. No. 18/582,910, filed Feb. 21, 2024, Mishra et al. [cited by applicant]
Arneson, David A., “Development of Omniserver,” Control Data Corporation, Tenth IEEE Symposium on Mass Storage Systems, May 1990, ‘Crisis in Mass Storage’ Digest of Papers, pp. 88-93, Monterey, CA. [cited by applicant]
Cabrera et al., “ADSM: A Multi-Platform, Scalable, Backup and Archive Mass Storage System,” Digest of Papers, Compcon '95, Proceedings of the 40th IEEE Computer Society International Conference, Mar. 5, 1995-Mar. 9, 199… [cited by applicant]
Eitel, “Backup and Storage Management in Distributed Heterogeneous Environments,” IEEE, Jun. 12-16, 1994, pp. 124-126. [cited by applicant]
Huff, KL, “Data Set Usage Sequence Number,” IBM Technical Disclosure Bulletin, vol. 24, No. 5, Oct. 1981 New York, US, pp. 2404-2406. [cited by applicant]
Margaret Rouse, “application containerization (app containerization)”, TechTarget, accessed on https://www.techtarget.com/searchitoperations/definition/application-containerization-app-containerization, Jul. 2019, avail… [cited by applicant]
Margaret Rouse, “Definition of Availability Zones”, TechTarget, accessed on searchaws.techtarget.com/definition/availability-zones, Apr. 26, 2019, available on https://web.archive.org/web/20180911194556/https://searchaw… [cited by applicant]
Mell et al., The NIST Definition of Cloud Computing, 800-145, Sep. 2011. [cited by applicant]
Nodes, Kubernetes Documentation, accessed on https://kubernetes.io/docs/concepts/architecture/nodes/, Jul. 20, 2021, available on https://web.archive.org/web/20210720150000/https://kubernetes.io/docs/concepts/architectu… [cited by applicant]
Rosenblum et al., “The Design and Implementation of a Log-Structure File System,” Operating Systems Review SIGOPS, vol. 25, No. 5, May 1991, New York, US, pp. 1-15. [cited by applicant]
What is Kubernetes?, Kubernetes Documentation, accessed on https://kubernetes.io/docs/concepts/architecture/nodes/, Jul. 2021, available on https://web.archive.org/web/20210724121336/https://kubernetes.io/docs/concepts/… [cited by applicant]
Wikipedia, Cloud Computing, en.wikipedia.org/wiki/Cloud_computing, accessed on Apr. 26, 2019, 13 Pages. [cited by applicant]
Amaral, et al., “Performance Evaluation of Microservices Architectures using Containers,” 2015 IEEE 14th International Symposium on Network Computing and Applications, 2015, pp. 27-34. [cited by applicant]