IP Library Granted Patent US 8,176,179
Granted Patent B2
US 8,176,179 · App. 11/732,710 · Granted May 8, 2012

Method and system for data-structure management

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 8,176,179
App. No.
11/732,710
Granted
May 8, 2012
Kind
B2
Abstract

Embodiments of the present invention are directed to computationally efficient methods and systems for managing connection-associated and exchange-associated resources within network proxies. In one embodiment of the present invention, a circular connection-switch queue is employed for allocating, de-allocating, and maintaining connection-based or exchange-based data resources within a proxy. The connection-switch queue includes a free pointer that identifies a next connection-switch queue entry for allocation, and an idle pointer that is incremented continuously or at fixed intervals as timers associated with connection-switch entries expire. In an alternate embodiment, the connection-switch queue includes a free pointer, an idle pointer, and a clear pointer.

Claims (42)

1. A system for managing a data-resource queue, the system comprising:

an electronic memory;

a connection switch queue that contains entries, stored in the electronic memory, each associated with a timer;

a free pointer that points to a next connection-switch-queue entry that may be allocated; and

an idle pointer that points to a connection-switch-queue entry that is next due to expire.

2. A connection-switch queue, implemented in an electronic memory, that manages connection-associated resources for a communications proxy, the connection-switch queue comprising:

an array of connection-switch-queue entries, stored in the electronic memory, each occupied entry of which includes an indication of an expiration time, an indication of a status, and connection-associated data or a reference to connection-associated data;

management routines that employ modular arithmetic to circularize the array of connection-switch-queue entries with respect to pointer operations and connection-switch-queue indexing and that implement connection-switch-queue operations;

a free pointer that references a next connection-switch-queue entry into which connection-associated data or a reference to connection-associated data can next be stored; and

an idle pointer that references a first connection-switch-queue entry that will next expire.

3. The connection-switch queue of claim 2 wherein the indication of status in each connection-switch-queue entry indicates one of:

a free status, indicating that the connection-switch-queue entry has not yet been allocated;

an active status, indicating that the connection represented by the connection-switch-queue entry is active; and

an idle status, indicating that the connection represented by the connection-switch-queue entry is idle.

4. The connection-switch queue of claim 3 wherein the management routines locate a next available connection-switch-queue entry by:

accessing the connection-switch-queue entry referenced by the free pointer;

when the indication of status in the connection-switch-queue entry referenced by the free pointer indicates a free status or an idle status,

selecting the connection-switch-queue entry referenced by the free pointer as the next available connection-switch-queue entry, and

advancing the free pointer circularly by modular arithmetic; and

when the indication of status in the connection-switch-queue entry referenced by the free pointer indicates an active status;

advancing the free pointer circularly by modular arithmetic until either the indication of status in the connection-switch-queue entry referenced by the free pointer indicates a free status or an idle status, in which case the connection-switch-queue entry referenced by the free pointer is selected as the next available connection-switch-queue entry and the free pointer advanced circularly by modular arithmetic by one entry, or until all connection-switch-queue entries have been considered, in which case the connection-switch queue is full.

5. The connection-switch queue of claim 3 wherein the management routines locate a particular connection-switch-queue entry for access by:

accessing the particular connection-switch-queue entry;

when the indication of status in the connection-switch-queue entry referenced by the free pointer indicates an idle status,

resetting the indication of status in the connection-switch-queue entry to indicate an active status, and

returning a reference to the particular connection-switch-queue entry; and

when the indication of status in the connection-switch-queue entry referenced by the free pointer indicates a free status or has been re-allocated,

returning an error.

6. The connection-switch queue of claim 3 wherein the management routines process the connection-switch queue at each time interval by:

while the indication of the expiration time in the connection-switch-queue entry referenced by the idle pointer indicates that the connection-switch-queue entry has expired,

resetting the indication of status in the connection-switch-queue entry referenced by the idle pointer to indicate a status of idle; and

advancing the idle pointer circularly by modular arithmetic by one entry.

7. The connection-switch queue of claim 3 further including a clear pointer and wherein each connection-switch-queue entry additionally includes an indication of clear-pointer expiration time.

8. The connection-switch queue of claim 7 wherein the management routines process the connection-switch queue at each time interval by:

while the indication of clear-pointer expiration time in the connection-switch-queue entry referenced by the clear pointer indicates that the connection-switch-queue entry has expired,

resetting the indication of status in the connection-switch-queue entry referenced by the clear pointer to indicate a status of free; and

advancing the clear pointer circularly by modular arithmetic by one entry.

9. A communications proxy device or computer executing a connection-switch queue for managing connection-associated resources, the connection-switch queue comprising:

an array of connection-switch-queue entries, stored in an electronic memory, each occupied entry of which includes an indication of an expiration time, an indication of a status, and connection-associated data or a reference to connection-associated data;

management routines that employ modular arithmetic to circularize the array of connection-switch-queue entries with respect to pointer operations and connection-switch-queue indexing and that implement connection-switch-queue operations;

a free pointer that references a next connection-switch-queue entry into which connection-associated data or a reference to connection-associated data can next be stored; and

an idle pointer that references a first connection-switch-queue entry that will next expire.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2007
From: WORLEY, JOHN S.; MAHON, HUGH
To: SECURE64 SOFTWARE CORPORATION
Reel/Frame 019524/0009 →