Claims
- 1. A data structure comprising:
a list of event objects; one or more producers creating the event objects for the list; and a finite set of consumers accessing the object list; characterized in that the event objects are each associated with a first reference number indicating the number of consumers currently accessing the event object, and in that, as each consumer completes access the reference number is decremented, and when the reference number for an event object is zero, and the event object is at the head of the list, indicating that all consumers have accessed the object, that event object is removed from the list.
- 2. The data structure of claim 1 wherein the event objects created represent changes in a data base, and the information associated with each is a statement of the change.
- 3. The data structure of claim 2 wherein the data base is a routing information base for a portion of a data packet network, and the information associated with each event object is a route change.
- 4. The data structure of claim 1 wherein each event object comprises a reference to the next event object in the list.
- 5. The data structure of claim 1 wherein each event object comprises a reference to the next event to be processed by a consumer processing a current event object.
- 6. The data structure of claim 1 having a second reference number associated with each event object, initially indicating the number of consumers to access the event object, the number decremented as each consumer accesses the event object.
- 7. In a data router, a virtual output queue system for propagating route change notifications to individual ones of a finite set of peer routers, the system comprising:
a virtual output queue (VOQ); a facility for entering and deleting change notifications as event objects in the VOQ; and an access module for managing access to the queue on behalf of individual ones of the finite set of peer routers, the access module retrieving event objects from the queue and sending the event objects to the router for which access is made.
- 8. The system of claim 7 wherein the event objects are each associated with a first reference number indicating the number of peers currently accessing the event object, and, as each peer completes access the reference number is decremented, and when the reference number for an event object is zero, and the event object is at the head of the queue, indicating that all consumers have accessed the event object, that event object is removed from the queue.
- 9. The system of claim 7 wherein each event object comprises a reference to the next event object in the queue.
- 10. The system of claim 7 wherein each event object comprises a reference to the next event to be processed by a peer processing a current event object.
- 11. The system of claim 7 having a second reference number associated with each event object, initially indicating the number of peers yet to access the event object, the number decremented as each peer accesses the event.
- 12. A method for propagating event objects to a finite set of consumers, comprising the steps of:
(a) placing the event objects one-at-a-time in a first-in-first-out queue; (b) associating a number with each specific event object in the list, the number indicating the number of consumers in the set currently accessing the specific event object; and (c) decrementing the number associated in step (b) with each event object by one each time a consumer finishes access to that event object, such that, when the number is zero for an event object, and the event object is at the head of the queue, that object has been accessed for all consumers requiring access, and may be removed from the queue.
- 13. The method of claim 12 wherein the event objects created represent changes in a data base, and the information associated with each is a statement of the change.
- 14. The method of claim 13 wherein the data base is a routing information base for a portion of a data packet network, and the information associated with each event object is a route change.
- 15. The method of claim 12 wherein each event object comprises a reference to the next event object in the queue.
- 16. The method of claim 12 wherein each event object comprises a reference to the next event to be processed by a consumer processing a current event object.
- 17. The method of claim 12 having a second reference number associated with each event object, initially indicating the number of consumers to access the event object, the number decremented as each consumer accesses the event object.
- 18. A method for propagating route changes to a finite set of peer routers, comprising the steps of:
(a) placing the route changes as event objects one-at-a-time in a first-in-first-out queue; (b) associating a number with each specific event object in the queue, the number indicating the number of peers in the set currently accessing the specific event object; and (c) decrementing the number associated in step (b) with each event object by one each time a peer finishes access to that event object, such that, when the number is zero for an event object, and the event object is at the head of the queue, that object has been accessed for all peers requiring access, and may be removed from the queue.
- 19. The method of claim 18 wherein each event object comprises a reference to the next event object in the queue.
- 20. The method of claim 18 wherein each event object comprises a reference to the next event to be processed by a peer processing a current event object.
- 21. The method of claim 18 having a second reference number associated with each event object, initially indicating the number of peers to access the event object, the number decremented as each peer accesses the event object.
- 22. In a multiple-processor data router, a virtual output queue system for propagating route change notifications to individual ones of a finite set of processor-controlled nodes within the router, the system comprising:
a virtual output queue (VOQ); a facility for entering and deleting change notifications as event objects in the VOQ; and an access module for managing access to the queue on behalf of individual ones of the finite set of nodes within the router, the access module retrieving event objects from the queue and sending the event objects to the node for which access is made.
- 23. The system of claim 22 wherein the event objects are each associated with a first reference number indicating the number of nodes currently accessing the event object, and in that, as each node completes access the reference number is decremented, and when the reference number for an event object is zero, and the event object is at the head of the queue, indicating that all nodes have accessed the event object, that event object is removed from the queue.
- 24. The system of claim 22 wherein each event object comprises a reference to the next event object in the queue.
- 25. The system of claim 22 wherein each event object comprises a reference to the next event to be processed by a node processing a current event object.
- 26. The system of claim 22 having a second reference number associated with each event object, initially indicating the number of nodes to access the event object, the number decremented as each node accesses the event.
- 27. A method for propagating route changes to a finite set of processor-controlled peer nodes in a multiple-processor router, comprising the steps of:
(a) placing the route changes as event objects one-at-a-time in a first-in-first-out queue; (b) associating a number with each specific event object in the queue, the number indicating the number of nodes in the set currently accessing the specific event object; and (c) decrementing the number associated in step (b) with each event object by one each time a node finishes access to that event object, such that, when the number is zero for an event object, and the event object is at the head of the queue, that object has been accessed for all nodes requiring access, and may be removed from the queue.
- 28. The method of claim 27 wherein each event object comprises a reference to the next event object in the queue.
- 29. The method of claim 27 wherein each event object comprises a reference to the next event to be processed by a node processing a current event object.
- 30. The method of claim 27 having a second reference number associated with each event object, initially indicating the number of nodes to access the event object, the number decremented as each node accesses the event object.
CROSS-REFERENCE TO RELATED DOCUMENTS
[0001] The present application is a continuation in part (CIP) a U.S. patent application Ser. No. 09/606,377 entitled “Methods and Apparatus for Synchronizing and Propagating Distributed Routing Databases” filed on Jun. 28, 2000, disclosure of which is included herein by reference.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09606377 |
Jun 2000 |
US |
Child |
10104884 |
Mar 2002 |
US |