发明名称 | In-memory buffer service | ||
摘要 | 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. | ||
申请公布号 | US9417840(B2) | 申请公布日期 | 2016.08.16 |
申请号 | US201514705750 | 申请日期 | 2015.05.06 |
申请人 | salesforce.com, inc. | 发明人 | Pradeep Aakash;Torman Adam;Warshavsky Alex;Jain Samarpan;Bandyopadhyay Soumen;D'Silva Thomas William;Sreenivasa Abhishek Bangalore |
分类号 | G06F13/00;G06F5/14;G06F3/00 | 主分类号 | G06F13/00 |
代理机构 | Lowenstein Sandler LLP | 代理人 | Lowenstein Sandler LLP |
主权项 | 1. A method comprising: receiving, by a capture service, events from a client application running on an application server to be stored in a data store; storing, by the capture service, 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; providing, by the in-memory bounded buffer, a notification to a buffer flush regulator when a number of events stored in the in-memory bounded buffer reaches a predefined limit; receiving, from a consumer executor service, a request to flush the events from the in-memory bounded buffer; and consuming, by the consumer executor service, 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. | ||
地址 | San Francisco CA US |