#load #data-loader #thread-local #task #stealing #requests #request

yanked deque-loader

Efficient data loading via work stealing and thread local deques

0.1.0-beta.3 Jul 31, 2021
0.1.0-beta.2 Jul 28, 2021
0.1.0-beta.1 Jul 6, 2021

#6 in #stealing

MIT license

32KB
785 lines

Channel Loader

License Cargo Documentation

A work-stealing data loader designed around optimal load batching and connection utilization. Rather than using yields to collect batches of loads as would other data loaders, loads are enqueued to thread local dequeus and task handlers are spawned to meet capacity. As field resolvers within the same request will already be scheduled, subsequent loads within the same request will be scheduled prior to the load task handler taking a task assignment and upon connection acquisition, all load requests will have been captured and loads by separate requests can be opportunistically batched together without introducing timeout overhead.

Dependencies

~8–25MB
~402K SLoC