US 11,726,842 B2
Techniques and architectures for non-blocking parallel batching
Yingwu Zhao, Lafayette, CA (US)
Assigned to Salesforce, Inc., San Francisco, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Aug. 2, 2016, as Appl. No. 15/226,685.
Prior Publication US 2018/0039513 A1, Feb. 8, 2018
Int. Cl. G06F 9/54 (2006.01)
CPC G06F 9/542 (2013.01) 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, via an interface, an event associated with a corresponding topic;
mapping, by a mapping agent, the event to a selected one of a plurality of topic partitions, the selected one of the plurality of topic partitions being associated with the corresponding topic, wherein events within each of the plurality of topic partitions are processed according to topic ordering constraint;
managing by one or more lane agents, for each topic partition of the plurality of topic partitions, a corresponding queue of a plurality of queues, each queue of the plurality of queues being communicatively coupled to and managed by a corresponding lane agent of the one or more lane agents, wherein the plurality of queues are managed independently from one another, each topic partition being associated with a corresponding one of a plurality of memory partitions of a storage system including one or more storage devices, the plurality of memory partitions being independent from one another;
placing, by the mapping agent, the event into a particular queue of the plurality of queues, the particular queue corresponding to the selected topic partition; and
coordinating a sending, by a particular lane agent of the one or more lane agents, of a batch of events from the particular queue for the selected topic partition to the corresponding memory partition, the particular queue being communicatively coupled to and managed by the particular lane agent, each lane agent being configured to coordinate sending event data from a corresponding queue of the plurality of queues to a corresponding memory partition, the particular lane agent being configured to coordinate sending event data from the particular queue.