GitPedia
DataDog

DataDog/glommio

Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.

6 Releases
Latest: 4y ago
Glommio v0.7.0v0.7.0Latest
HippoBaroHippoBaro·4y ago·February 10, 2022
GitHub

📋 Notable changes:

  • #427, #480, #500: Executor builders are now more reliable and flexible;
  • #412, #413 : `Task<T>::local()` and `Local::local()` are removed in favor of the `glommio::spawn_*` set of free functions, `glommio::executor()` is now the main way to interact with the executor;
  • #414: Closing a file now returns whether the underlying file descriptor was closed;
  • #416: `read_many` now takes a stream as input instead of an iterator;
  • #460, #491: `read_many` is now able to limit concurrency based on in-flight IO memory and/or number of in-flight IO requests;
  • #497: `read_many` now uses better, system-specific IO coalescing defaults from `sysfs`;
  • #434: Foreign wakers now trigger a remote preemption, according to their latency requirements;
  • #449, #474: `DmaStreamReader` may now be consumed trivially without copies;
  • + 7 more

📦 Rust/Linux support:

  • The minimum supported kernel remains 5.8, and we now require at least Rust 1.58.

📦 Contributors:

  • ```
  • Andrey Lomakin <lomakin.andrey@gmail.com>
  • Cody P Schafer <dev@codyps.com>
  • David Blewett <david.blewett@datadoghq.com>
  • Duarte Nunes <duarte.nunes@datadoghq.com>
  • Glauber Costa <glauber@chiselstrike.com>
  • Hippolyte Barraud <hippolyte.barraud@datadoghq.com>
  • jianghua <jianghua@qiyi.com>
  • + 10 more
First production grade releasev0.6.0
glommerglommer·4y ago·September 14, 2021
GitHub

We will still give some time before we call this 1.0, but in this version the alpha wording was removed. There are no new user visible features in this release. Only bug fixes!

Fixing two regressionsv0.5.1
glommerglommer·4y ago·August 12, 2021
GitHub

The work on buffer reuse unfortunately caused two regressions: #391 and #396. This release fixes them

Very few changes. Good!v0.5.0Pre-release
glommerglommer·4y ago·July 15, 2021
GitHub

📋 Changes

  • There is now an `ImmutableFile` type, that encodes the fact that a file will never change, opening the door for file-level optimizations like metadata caching and request deduplication
  • There is an API to submit I/O in bulk (`read_many`)
  • There is way to create many executors at once, executing homogeneous code `LocalExecutorPool`
Fixing the Scoped Thread issuev0.4.1-betaPre-release
glommerglommer·5y ago·May 4, 2021
GitHub

Unfortunately as noticed by one of our contributors right after the release, ScopedThread is unsound. We will look for a better alternative, inspired by what crossbeam is doing, but in the mean time the interface is marked as `unsafe`.

first beta!v0.4.0-betaPre-release
glommerglommer·5y ago·April 29, 2021
GitHub

📋 Changes

  • Using io_uring's linked SQEs, we can now timeout network requests.
  • There is also a generic `timeout` function that can timeout any task.
  • There are statistics about CPU usage coming from the `LocalExecutor`, so you can see which tasks are using CPU the most.
  • There are statistics bout storage I/O usage coming from the `Reactor`, so you can see how I/O is being generated, and by each tasks.
  • The mesh channel now has a `send_to` function, useful when you want to send one-shot messages.
  • The Glommio wakers can now be used remotely from other threads. In particular, that means that Tokio channels can now be used to communicate with Glommio executors.