Skip to content

wal_mode = "async" #67

@pmwkaa

Description

@pmwkaa

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 functionality

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions