10061627

System and Method for Supporting Waiting Thread Notification Offloading in a Distributed Data Grid

PublishedAugust 28, 2018
Assigneenot available in USPTO data we have
InventorsMark Falco
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for supporting waiting-thread notification offloading in a multi-threaded messaging system having a service thread and having a plurality of active threads, the method comprising: maintaining a pending notifier object collection comprising a plurality of pending notifier objects, wherein each pending notifier object in the collection of pending notifier objects is associated with a corresponding waiting thread of a plurality of waiting threads; determining, in an active thread of the plurality of active threads, that the active thread is ready to enter a wait state; signaling, with the active thread and upon the determining that the active thread is ready to enter a wait state, a pending notifier object of the plurality of pending notifier objects in the pending notifier object collection, wherein the signaling comprises waking the corresponding waiting thread associated with said pending notifier object; and continuing to signal, with the active thread, other pending notifier objects of the plurality of pending notifier objects in the pending notifier object collection and waking the corresponding waiting threads associated with said other pending notifier objects until all of the plurality of pending notifier objects in the pending notifier object collection have been signaled and then causing the active thread to enter the wait state.

2

2. The method of claim 1 , further comprising: while in the process of signaling corresponding waiting threads, checking, by the active thread, the notification state of the active thread.

3

3. The method of claim 1 , further comprising: determining, in the active thread of the plurality of active threads, that the active thread is blocking on input/output (I/O) and is ready to enter a wait state.

4

4. The method of claim 1 , wherein maintaining the pending notifier object collection comprises maintaining the pending notifier object collection as a global set of pending notifier objects that is shared across all notifier threads and signaling threads.

5

5. The method of claim 1 , wherein the service thread and the plurality of waiting threads do not synchronize on the plurality of pending notifier objects.

6

6. The method of claim 1 , wherein the corresponding waiting thread, after being awoken, is configured to signal two additional pending notifier objects of the plurality of pending objects in the pending notifier object collection and wake two additional corresponding waiting threads associated, respectively, with said two additional pending notifier objects.

7

7. The method claim 1 , wherein the service thread is a cache service thread in a distributed data grid and wherein the active thread makes a remote cache call to a remote cache service thread in the distributed data grid prior to determining that the active thread is ready to enter a wait state.

8

8. The method of claim 1 , wherein the service thread is a cache service thread in a distributed data grid and wherein said waiting thread notification offloading reduces signaling overhead on the cache service thread thereby improving performance of the distributed data grid.

9

9. The method of claim 1 , wherein said waiting thread notification offloading reduces signaling overhead on the service thread thereby improving performance of the service thread for non-signaling tasks and thereby improving performance of the multi-threaded messaging system.

10

10. The method of claim 1 , wherein signaling said pending notifier object of said pending notifier object collection is performed using a lock-free method.

11

11. A system for supporting waiting-thread notification offloading, the system comprising: a computer system having a memory and a processor, wherein the processor has a plurality of cores and is capable of multi-threaded operation; a multi-threaded messaging system operating on said computer system and having a service thread, a plurality of active threads, and a plurality of waiting threads; a pending notifier object collection stored in said memory and comprising a plurality of pending notifier objects, wherein each pending notifier object in the collection of pending notifier objects is associated with a corresponding waiting thread of said plurality of waiting threads; wherein an active thread in said plurality of active threads is configured to determine that the active thread is ready to enter a wait state; wherein, upon the determination that the active thread is ready to enter a wait state, the active thread is configured such that, instead of entering said wait state, the active thread signals a pending notifier object of the plurality of pending notifier objects in the pending notifier object collection and, wherein the signaling wakes the corresponding waiting thread associated with said pending notifier object; and wherein said active thread is configured to continue to signal other pending notifier objects of the plurality of pending notifier objects in the pending notifier object collection and waking the corresponding waiting threads associated with said other pending notifier objects until all of the plurality of pending notifier objects in the pending notifier object collection have been signaled and then enter the wait state.

12

12. The system of claim 11 , wherein: while in the process of signaling corresponding waiting threads, the active thread checks the notification state of the active thread.

13

13. The system of claim 11 , wherein: wherein an active thread in said plurality of active threads is configured to determine that the active thread is blocking on input/output (I/O) and is ready to enter a wait state.

14

14. The system of claim 11 , wherein said pending notifier object collection comprises a global set of pending notifier objects that is shared across all notifier threads and signaling threads.

15

15. The system of claim 11 , wherein the service thread and the plurality of waiting threads do not synchronize on the plurality of pending notifiers.

16

16. The system of claim 11 , wherein the corresponding waiting thread, after being awoken, is configured to signal two additional pending notifier objects of the plurality of pending notifier objects in the pending notifier object collection and wake two additional corresponding waiting threads associated, respectively, with said additional pending notifier objects.

17

17. The system claim 11 , wherein: the service thread is a cache service thread in a distributed data grid and wherein the active thread makes a remote cache call to a remote cache service thread in the distributed data grid prior to determining that the active thread is ready to enter a wait state; and wherein said waiting thread notification offloading reduces signaling overhead on the cache service thread thereby improving performance of the distributed data grid.

18

18. The system of claim 11 , wherein said waiting thread notification offloading reduces signaling overhead on the service thread thereby improving performance of the service thread for non-signaling tasks and thereby improving performance of the multi-threaded messaging system.

19

19. The system of claim 11 , wherein said active thread is configured to signal said pending notifier object of said pending notifier object collection using a lock-free method.

20

20. A non-transitory computer-readable media comprising instructions stored thereon for supporting waiting-thread notification offloading in a multi-threaded messaging system having a service thread and having a plurality of active threads, which instructions, when executed, cause a computer system to perform steps comprising: maintaining a pending notifier object collection comprising a plurality of pending notifier objects, wherein each pending notifier object in the collection of pending notifier objects is associated with a corresponding waiting thread of a plurality of waiting threads; determining in an active thread of the plurality of active threads that the active thread is ready to enter a wait state; and signaling, with the active thread and upon the determining that the active thread is ready to enter a wait state, a pending notifier object of the plurality of pending notifier objects in the pending notifier object collection, wherein the signaling comprises waking the corresponding waiting thread associated with said pending notifier object; and continuing to signal, with the active thread, other pending notifier objects of the plurality of pending notifier objects in the pending notifier object collection and waking the corresponding waiting threads associated with said other pending notifier objects until all of the plurality of pending notifier objects in the pending notifier object collection have been signaled and then causing the active thread to enter the wait state.

Patent Metadata

Filing Date

Unknown

Publication Date

August 28, 2018

Inventors

Mark Falco

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “SYSTEM AND METHOD FOR SUPPORTING WAITING THREAD NOTIFICATION OFFLOADING IN A DISTRIBUTED DATA GRID” (10061627). https://patentable.app/patents/10061627

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

SYSTEM AND METHOD FOR SUPPORTING WAITING THREAD NOTIFICATION OFFLOADING IN A DISTRIBUTED DATA GRID — Mark Falco | Patentable