IP Library Granted Patent US 7,720,802
Granted Patent B2
US 7,720,802 · App. 11/619,441 · Granted May 18, 2010

Reclaiming resident buffers when a reclaim threshold has been exceeded by swapping the oldest in use buffer and a new buffer, and referencing the new buffer via an updated set of read and write pointers

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 7,720,802
App. No.
11/619,441
Granted
May 18, 2010
Kind
B2
Abstract

Systems methods and computer products for reclaiming resident buffers on demand. Exemplary embodiments include systems and methods for reclaiming resident buffers, including allocating a buffer, determining that the buffer allocation pushes the buffer pool below a reclaim threshold, marking an oldest in-use buffer to be reclaimed, determining that all messages referencing the buffer have been queued, allocating a new buffer and performing a swap of the oldest in-use buffer and the new buffer, performing a free message block operation and updating a message block by updating a set of read and write pointers to point to the new buffer.

Claims (31)

1. A method for reclaiming resident buffers, comprising:

allocating a buffer;

determining that the buffer allocation pushes a buffer pool below a reclaim threshold;

if the buffer allocation pushes the buffer pool below a reclaim threshold, marking an oldest in-use buffer to be reclaimed;

determining that all messages referencing the buffer have been queued;

if all messages referencing the buffer have been queued, allocating a new buffer and performing a swap between the oldest in-use buffer and the new buffer;

performing an free message block operation; and

updating a message block by updating a set of read and write pointers to point to the new buffer.

2. The method as claimed in claim 1 wherein the system calls include allocating the buffer from a buffer pool.

3. The method as claimed in claim 2 wherein the system calls include queuing a message and pointing to a next message.

4. The method as claimed in claim 3 wherein the system calls include unqueuing a message and updating read and write pointers to point at the new buffer.

5. The method as claimed in claim 4 wherein the system calls include freeing a message block.

6. The method as claimed in claim 5 wherein the system calls include duplicating a message block to create a reference to the buffer.

7. The method as claimed in claim 6 wherein swapping the buffers comprises copying data from the buffer to the new buffer and updating the buffer pointers to point at the new buffer.

8. The method as claimed in claim 7 wherein determining that at least one message referencing the buffer is not queued, comprises delaying the buffer swap until all system messages are queued.

9. The method as claimed in claim 7 wherein determining that at least one message referencing the buffer is not queued, comprises delaying the buffer swap until all system messages are freed.

10. A computer readable medium having computer executable instructions for performing a method comprising:

allocating a buffer;

determining that the buffer allocation pushes a buffer pool below a reclaim threshold;

if the buffer allocation rushes the buffer pool below a reclaim threshold, marking an oldest in-use buffer to be reclaimed;

determining that at least one message referencing the buffer is not queued;

if all messages referencing the buffer have been queued, allocating a new buffer;

performing a swap of the system calls between the oldest in-use buffer and the new buffer, when the messages referencing the buffer have all been at least one of queued and freed;

freeing a message block; and

updating a message block by updating a set of read and write pointers to point to the new buffer.

11. The computer readable medium as claimed in claim 10 wherein the method further comprises allocating the buffer from a buffer pool.

12. The computer readable medium as claimed in claim 11 wherein the method further comprises queuing a message and pointing to a next message.

13. The computer readable medium as claimed in claim 12 wherein the method further comprises unqueuing a message and updating a set of read and write pointers to point at the new buffer.

14. The computer readable medium as claimed in claim 13 wherein the method further comprises freeing a message block.

15. The computer readable medium as claimed in claim 14 wherein the method further comprises duplicating a message block to create a reference to the buffer.

16. The computer readable medium as claimed in claim 15 wherein the method further comprises copying data from the buffer to the new buffer.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: TWITTER, INC.
Reel/Frame 032075/0404 →