-
Notifications
You must be signed in to change notification settings - Fork 387
Closed
Description
With the new architecture of WAL writer, it's way more feasible to implement asynchronous write mode: when clients don't wait for writes to disk. Some of the vendors even pride themselves in this mode (MemSQL), and generally this technique seems to be commonplace on the market (Redis).
If only for one reason, we need this mode to win in the last remaining benchmarks where we may not show off as well as we can.
How to do it:
- from user perspective, extend iproto header with WAL_ASYNC flag, set to 0 by default
- add a general wal_write="async" mode, which sets this flag to true for all write requests
When this flag is set, allocate struct wal_request on one of two rotating regions, not on fiber->gc,
and set it a different route. The route return function should decrement region reference counter,
and when the region has no references, it can be garbage collected become available for reuse.
Metadata
Metadata
Assignees
Labels
featureA new functionalityA new functionality