System and Method for Implementing Hierarchical Distributed-Linked Lists for Network Devices
AssigneeInnovium, Inc.
InventorsAvinash Gyanendra Mani, Mohammad K. Issa, Neil Barrett
Life of this patent
Estimating the term…
Abstract
A memory system for a network device is described. The memory system includes a main memory configured to store one or more data elements. Further, the memory system includes a parent distributed-linked list configured to store linked-list metadata. And, the memory system includes a child distributed-linked list configured to maintain list metadata to interconnect the one or more data elements stored in the main memory to generate at least a first snapshot, said linked-list metadata references the snapshot.
Claims21
(canceled)
An apparatus, comprising:
- a main memory configured to store data elements;
- write circuitry configured to:
- write a first data packet as first data elements to the main memory;
- write a first child distributed linked list that includes first data-element pointers to the main memory to interconnect the first data elements stored in the main memory;
- write a parent distributed linked list to include a first snapshot that represents (i) a first child pointer to the first child distributed linked list and (ii) a first sequence identifier associated with the first snapshot;
- after writing the first data packet to the main memory, write a second data packet as second data elements to the main memory;
- write a second child distributed linked list that includes second data-element pointers to the main memory to interconnect the second data elements stored in the main memory;
- and
- update the parent distributed linked list to include a second snapshot that represents (i) a second child pointer to the second child distributed linked list and (ii) a second sequence identifier associated with the second snapshot;
- and
- read circuitry configured to read the first data packet and the second data packet in sequence using respectively the first snapshot and the second snapshot included in the parent distributed linked list, wherein an order of the read is based on sequence identifiers.
A method, comprising:
- writing, to a main memory in a network device, a first data packet as first data elements;
- writing, to a child context manager, a first child distributed linked list that includes first data-element pointers to the main memory to interconnect the first data elements stored in the main memory;
- writing, to a parent snapshot memory, a parent distributed linked list to include a first snapshot that represents (i) a first child pointer to the first child distributed linked list and (ii) a first sequence identifier associated with the first snapshot;
- after writing the first data packet to the main memory, writing a second data packet as second data elements to the main memory;
- writing, to the child context manager, a second child distributed linked list that includes second data-element pointers to the main memory to interconnect the second data elements stored in the main memory;
- and
- updating the parent distributed linked list in the parent snapshot memory to include a second snapshot that represents (i) a second child pointer to the second child distributed linked list and (ii) a second sequence identifier associated with the second snapshot;
- and
- reading the first data packet and the second data packet in sequence using respectively the first snapshot and the second snapshot included in the parent distributed linked list, wherein an order of the read is based on sequence identifiers.
A network device, comprising:
- a main memory configured to store data elements;
- write circuitry configured to:
- write a first data packet as first data elements to the main memory;
- write a first child distributed linked list that includes first data-element pointers to the main memory to interconnect the first data elements stored in the main memory;
- write a parent distributed linked list to include a first snapshot that represents (i) a first child pointer to the first child distributed linked list and (ii) a first sequence identifier associated with the first snapshot;
- after writing the first data packet to the main memory, write a second data packet as second data elements to the main memory;
- write a second child distributed linked list that includes second data-element pointers to the main memory to interconnect the second data elements stored in the main memory;
- and
- update the parent distributed linked list to include a second snapshot that represents (i) a second child pointer to the second child distributed linked list and (ii) a second sequence identifier associated with the second snapshot;
- and
- read circuitry configured to read the first data packet and the second data packet in sequence using respectively the first snapshot and the second snapshot included in the parent distributed linked list, wherein an order of the read is based on sequence identifiers.
Dependencies are inferred from the claim text.