IP Library Granted Patent US 9,135,133
Granted Patent B2
US 9,135,133 · App. 12/568,455 · Granted Sep 15, 2015

Metric object tracking system

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 9,135,133
App. No.
12/568,455
Granted
Sep 15, 2015
Kind
B2
Abstract

Various embodiments of a object metric tracking system are disclosed, applicable to distributed systems composed of a variety of computing nodes coupled together via a network. The computing nodes are arranged in various physical and virtual configurations via a configuration system. Detector nodes are also coupled to the distributed system, each node including one or more modules dedicated to collecting data about tracked system metrics. The data from the detector nodes is sent to a processing engine where it is decomposed for quick storage in a data storage pool including a number of independent storage nodes. A smart metric tracking object is used to provide programmatic access to the data in the storage pool, automatically abstracting away the details of the storage system. A reporter component processes the data and provides human or machine-readable reports for integration with various systems, including a reporting website.

Claims (34)

1. A method for tracking data in a distributed system, the method comprising:

receiving, by one or more processors, a request from a user for data of a type of data gathered over a specified period of time, the request specifying the type of data and the period of time;

identifying, by the one or more processors, a software object specific to the specified type of data and the specified period of time, wherein the software object includes first data, and wherein the first data comprises a label that identifies the type of data, a group identifier that identifies a group of software objects that include the identified software object, and time data that identifies the period of time;

calculating, by the software object using the one or more processors the first data, a location in a storage pool, wherein the calculating the location in the storage pool comprises calculating a name of a table at the location in the storage pool, wherein the table includes the requested data, and wherein the calculating the name of the table comprises concatenating the label, the group identifier, and the time data;

connecting, by the software object to the storage pool, to retrieve the requested data from the calculated location in the storage pool; and

returning, by the software object to the user, the retrieved requested data.

2. The method of claim 1 , wherein the identifying the software object comprises matching the type of data and the specified period of time specified by the user to data in the software object identifying the type of data and the period of time to which the software object is specific, respectively.

3. The method of claim 1 , wherein the storage pool is a relational database comprising tables and data, and wherein the method further comprises:

denormalizing the data in the storage pool to prevent joins between the tables in the storage pool.

4. The method of claim 1 , wherein the calculating the location in the storage pool comprises performing a mod operation on a numeric value to find in the storage pool a location of a database comprising the requested data, and wherein the database comprises the table.

5. The method of claim 1 , wherein the type of data requested is a distribution of requests for resources with respect to ports used, protocols used, and resources requested.

6. The method of claim 1 , wherein the type of data requested is a number are nonzero differences between a total number of packets sent from a sending port to a designated receiving port and a total number of packets received by the receiving port from the sending port after allowing for collision and retransmission overhead.

7. A computer program product for tracking data in a distributed system, the computer program product comprising:

one or more computer-readable storage devices and program instructions stored on at least one of the one or more storage devices, wherein the program instructions comprise:

program instructions to receive a request from a user for data of a type of data gathered over a specified period of time, the request specifying the type of data and the period of time;

program instructions to identify a software object specific to the specified type of data and the specified period of time, wherein the software object includes first data, and wherein the first data comprises a label that identifies the type of data, a group identifier that identifies a group of software objects that include the identified software object, and time data that identifies the period of time;

program instructions to calculate, by the software object based on the received first data, a location in a storage pool, wherein to calculate the location in the storage pool comprises to calculate a name of a table at the location in the storage pool, wherein the table includes the requested data, and wherein to calculate the name of the table comprises to concatenate the label, the group identifier, and the time data;

program instructions to connect, by the software object to the storage pool, to retrieve the requested data from the calculated location in the storage pool; and

program instructions to return, by the software object to the user, the retrieved requested data, wherein the calculating the location in the storage pool comprises calculating a name of a table at the location in the storage pool.

8. The computer program product of claim 7 , wherein the program instructions to identify the software object comprises program instructions to match the type of data and the specified period of time specified by the user to data in the software object identifying the type of data and the period of time to which the software object is specific, respectively.

9. The computer program product of claim 7 , wherein the storage pool is a relational database comprising tables and data, and wherein the method further comprises:

program instructions to denormalize the data in the storage pool to prevent joins between the tables in the storage pool.

10. The computer program product of claim 7 , wherein the program instructions to calculate the location in the storage pool comprises program instructions to perform a mod operation on a numeric value to find in the storage pool a location of a database comprising the requested data, and wherein the database comprises the table.

11. A computer system for tracking data in a distributed system, the computer system comprising:

one or more processors, one or more computer-readable memories, one or more computer-readable storage devices, and program instructions stored on the one or more storage devices for execution by the one or more processors via the one or more memories, wherein the program instructions comprise:

program instructions to receive a request from a user for data of a type of data gathered over a specified period of time, the request specifying the type of data and the period of time;

program instructions to identify a software object specific to the specified type of data and the specified period of time, wherein the software object includes first data, and wherein the first data comprises a label that identifies the type of data, a group identifier that identifies a group of software objects that include the identified software object, and time data that identifies the period of time;

program instructions to calculate, by the software object based on the received first data, a location in a storage pool, wherein to calculate the location in the storage pool comprises to calculate a name of a table at the location in the storage pool, wherein the table includes the requested data, and wherein to calculate the name of the table comprises to concatenate the label, the group identifier, and the time data;

program instructions to connect, by the software object to the storage pool, to retrieve the requested data from the calculated location in the storage pool; and

program instructions to return, by the software object to the user, the retrieved requested data, wherein the calculating the location in the storage pool comprises calculating a name of a table at the location in the storage pool.

12. The computer system of claim 11 , wherein the program instructions to identify the software object comprises program instructions to match the type of data and the specified period of time specified by the user to data in the software object identifying the type of data and the period of time to which the software object is specific, respectively.

13. The computer system of claim 11 , wherein the storage pool is a relational database comprising tables and data, and wherein the method further comprises:

program instructions to denormalize the data in the storage pool to prevent joins between the tables in the storage pool.

14. The computer system of claim 11 , wherein the program instructions to calculate the location in the storage pool comprises program instructions to perform a mod operation on a numeric value to find in the storage pool a location of a database comprising the requested data, and wherein the database comprises the table.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 056754 FRAME: 0340. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jul 22, 2021
From: SOFTLAYER TECHNOLOGIES, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056963/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2021
From: SOFTWARE TECHNOLOGIES, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056754/0340 →
RELEASE OF SECURITY INTEREST Recorded Jul 8, 2013
From: SUNTRUST BANK
To: SOFTLAYER TECHNOLOGIES, INC.
Reel/Frame 030763/0666 →
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2010
From: DEUTSCHE BANK AG CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: SOFTLAYER TECHNOLOGIES, INC.
Reel/Frame 025355/0166 →
SECURITY AGREEMENT Recorded Nov 9, 2010
From: SOFTLAYER TECHNOLOGIES, INC.
To: SUNTRUST BANK, AS COLLATERAL AGENT
Reel/Frame 025832/0482 →
SECURITY INTEREST Recorded Aug 16, 2010
From: SOFTLAYER TECHNOLOGIES, INC.
To: DEUTSCHE BANK AG CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 024842/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2009
From: MCALOON, DANIEL; REESE, JOSHUA LOGAN
To: SOFTLAYER TECHNOLOGIES, INC.
Reel/Frame 023414/0121 →