IP Library › Granted Patent US 11,281,695
Granted Patent B2
US 11,281,695 · App. 16/752,042 · Granted Mar 22, 2022

Partitioning a temporal graph for distributed storage

Inventors: Bhalaji Narayanan (Bangalore, IN); Arun Kumar Raghavendra (Bangalore, IN); Ramesh Nethi (Bangalore, IN); Venkata Lakshmi Narayana Mehar Simhadri (Cupertino, CA)
Assignee: CISCO TECHNOLOGY, INC.
G06F16/278G06F16/9024H04L43/062H04L43/065
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,281,695
App. No.
16/752,042
Granted
Mar 22, 2022
Kind
B2
Abstract

In one embodiment, present disclosure discloses a method for partitioning a temporal graph is described. Embodiments of the method comprises creating a plurality of storage blocks for each type of the different types of graph elements based on predefined label groups, each of the plurality of storage blocks configured to store the telemetry information generated in a corresponding predefined time-range, recreating each of the plurality of storage blocks upon expiry of a configurable rollover time, and sharding each of the plurality of storage blocks into a plurality of shards based on a configurable sharding count.

Claims (48)

1. A method comprising:

partitioning a temporal graph comprising different types of graph elements including vertices and edges, for storing telemetry information of a computer network, the partitioning comprising:

creating a plurality of storage blocks for each type of the different types of graph elements based on predefined label groups, wherein each of the plurality of storage blocks is configured to store the telemetry information generated in a corresponding predefined time-range, wherein each of the plurality of storage blocks are recreated upon expiry of a configurable rollover time; and

sharding each of the plurality of storage blocks into a plurality of shards based on a configurable sharding count.

2. The method of claim 1 , wherein each of the vertices represent at least one of interconnecting devices in the computer network or metric elements representing operational information related to the interconnecting devices.

3. The method of claim 1 , wherein each of the edges represent a relationship between interconnecting devices in the computer network.

4. The method of claim 1 , wherein the telemetry information of the computer network comprises device state information of interconnecting devices in the computer network and network state information related to data packet flow through the computer network.

5. The method of claim 1 , wherein each of the predefined label groups include a plurality of graph elements belonging to a domain and having related labels.

6. The method of claim 1 further comprising:

receiving a request for traversing the temporal graph;

identifying a storage block from the plurality of storage blocks based on at least one of labels corresponding to the graph elements or a time-range associated with the graph elements, wherein the labels and the time-range are extracted from the request;

identifying a shard from the plurality of shards comprised in the identified storage block based on an element identifier specified in the request; and

retrieving the telemetry information stored in the identified shard, in response to the request for traversing the temporal graph.

7. A method comprising:

receiving telemetry information of a computer network for storing in a temporal graph comprising different types of graph elements including vertices and edges, wherein the temporal graph is partitioned into a plurality of storage blocks for storing each type of the different types of graph elements, wherein each of the plurality of storage blocks are partitioned into a plurality of shards;

extracting information comprising type of the graph elements, labels corresponding to the graph elements and element identifiers corresponding to the labels of the graph elements, from the telemetry information;

identifying one or more storage blocks from the plurality of storage blocks based on the labels corresponding to the graph elements;

identifying one or more shards from the plurality of shards, comprised in the identified one or more storage blocks, based on the element identifiers corresponding to the labels of the graph elements; and

writing the telemetry information into the identified one or more shards of the plurality of shards.

8. The method of claim 7 , wherein each of the vertices represent at least one of interconnecting devices in the computer network or metric elements representing operational information related to the interconnecting devices.

9. The method of claim 7 , wherein each of the edges represent a relationship between interconnecting devices in the computer network.

10. The method of claim 7 , wherein the telemetry information of the computer network comprises device state information of interconnecting devices in the computer network and network state information related to data packet flow through the computer network.

11. The method of claim 7 , wherein the one or more shards are identified by performing consistent hashing of the element identifiers.

12. The method of claim 7 , wherein the element identifiers represent one or more versions of the telemetry information associated with the labels corresponding to the graph elements.

13. The method of claim 7 , wherein identifying the one or more storage blocks comprises:

identifying one or more label groups corresponding to each of the labels; and

identifying storage blocks associated with each of the identified one or more label groups.

14. A computer system comprising:

one or more processors;

one or more non-transitory computer-readable media storing instructions which, when executed by the one or more processors, cause:

partitioning a temporal graph, comprising different types of graph elements including vertices and edges, to store telemetry information of a computer network, the partitioning comprising:

creating a plurality of storage blocks for each type of the different types of graph elements based on predefined label groups, wherein each of the plurality of storage blocks is configured to store the telemetry information generated in a corresponding predefined time-range; wherein each of the plurality of storage blocks are recreated upon expiry of a configurable rollover time; and

sharding each of the plurality of storage blocks into a plurality of shards based on a configurable sharding count.

15. The computer system of claim 14 , wherein each of the vertices represent at least one of interconnecting devices in the computer network or metric elements representing operational information related to the interconnecting devices.

16. The computer system of claim 14 , wherein each of the edges represent a relationship between interconnecting devices in the computer network.

17. The computer system of claim 14 , wherein the telemetry information of the computer network comprises device state information of interconnecting devices in the computer network and network state information related to data packet flow through the computer network.

18. The computer system of claim 14 , wherein each of the predefined label groups include a plurality of graph elements belonging to a domain and having related labels.

19. The computer system of claim 14 further comprising:

receiving a request to traverse the temporal graph;

identifying a storage block from the plurality of storage blocks based on at least one of labels corresponding to the graph elements or a time-range associated with the graph elements, wherein the labels and the time-range are extracted from the request;

identifying a shard from the plurality of shards comprised in the identified storage block based on an element identifier specified in the request; and

retrieving the telemetry information stored in the identified shard, in response to the request for traversing the temporal graph.

20. The computer system of claim 14 further comprising:

receiving telemetry information of a computer network to store in the temporal graph;

extracting information comprising type of the graph elements, labels corresponding to the graph elements and element identifiers corresponding to the labels of the graph elements, from the telemetry information;

identifying one or more storage blocks from the plurality of storage blocks based on the labels corresponding to the graph elements;

identifying one or more shards from the plurality of shards, comprised in the identified one or more storage blocks, based on the element identifiers corresponding to the labels of the graph elements; and

writing the telemetry information into the identified one or more shards of the plurality of shards.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2020
From: NARAYANAN, BHALAJI; RAGHAVENDRA, ARUN KUMAR; NETHI, RAMESH; SIMHADRI, VENKATA LAKSHMI NARAYANA MEHAR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 051613/0329 →
Continuity (1)
Related Publication 20210232601A1 · Jul 29, 2021