In-memory buffer service
First Claim
1. A method comprising:
- receiving events from a client application running on an application server to be stored in a data store;
storing the events in an in-memory bounded buffer on the application server, the in-memory bounded buffer comprising a plurality of single-threaded segments;
providing a notification to a buffer flush regulator when a number of events stored in the in-memory bounded buffer reaches a predefined limit;
receiving a request to flush the events from the in-memory bounded buffer; and
consuming the events in the in-memory bounded buffer using a dynamically sized thread pool of consumer threads to read segments of the in-memory bounded buffer in parallel.
1 Assignment
0 Petitions
Accused Products
Abstract
A capture service running on an application server receives events from a client application running on an application server to be stored in a data store and stores the events in an in-memory bounded buffer on the application server, the in-memory bounded buffer comprising a plurality of single-threaded segments, the capture service to write events to each segment in parallel. The in-memory bounded buffer provides a notification to a buffer flush regulator when a number of events stored in the in-memory bounded buffer reaches a predefined limit. The in-memory bounded buffer receive a request to flush the events in the in-memory bounded buffer from a consumer executor service. The consumer executor service consumes the events in the in-memory bounded buffer using a dynamically sized thread pool of consumer threads to read the segments of the bounded buffer in parallel, wherein consuming the events comprises writing the events directly to the data store.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving events from a client application running on an application server to be stored in a data store; storing the events in an in-memory bounded buffer on the application server, the in-memory bounded buffer comprising a plurality of single-threaded segments; providing a notification to a buffer flush regulator when a number of events stored in the in-memory bounded buffer reaches a predefined limit; receiving a request to flush the events from the in-memory bounded buffer; and consuming the events in the in-memory bounded buffer using a dynamically sized thread pool of consumer threads to read segments of the in-memory bounded buffer in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An application server comprising:
-
a processing device; a memory coupled to the processing device, the memory storing a capture service and a consumer executor service, executable by the processing device from the memory, and an in-memory bounded buffer, the capture service to; receive events from a client application running on the application server to be stored in a data store; and store the events in the in-memory bounded buffer on the application server, the in-memory bounded buffer comprising a plurality of single-threaded segments; the in-memory bounded buffer to; provide a notification to a buffer flush regulator when a number of events stored in the in-memory bounded buffer reaches a predefined limit; receive a request to flush the events from the in-memory bounded buffer; and the consumer executor service to; consume the events in the in-memory bounded buffer using a dynamically sized thread pool of consumer threads to read segments of the in-memory bounded buffer in parallel. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium storing instructions which, when executed by a processing device, are capable of causing the processing device to perform operations comprising:
-
receiving events from a client application running on an application server to be stored in a data store; storing the events in an in-memory bounded buffer on the application server, the in-memory bounded buffer comprising a plurality of single-threaded segments; providing a notification to a buffer flush regulator when a number of events stored in the in-memory bounded buffer reaches a predefined limit; receiving a request to flush the events from the in-memory bounded buffer; and consuming the events in the in-memory bounded buffer using a dynamically sized thread pool of consumer threads to read segments of the in-memory bounded buffer in parallel. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification