Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Look into supporting direct replication to another memcache pool in C #41

Open
TysonAndre opened this issue May 3, 2021 · 0 comments
Open

Comments

@TysonAndre
Copy link

TysonAndre commented May 3, 2021

This is similar to the failover pool, but

  1. A request message has multiple mbufs. When it's of a request type such as MSG_REQ_MC_SET (i.e. memcache_storage is true), copy the message and the mbufs and send that to the replication pool.
  2. In rsp_send_next, when req_error is false, an entire request was processed successfully. pmsg is the response, pmsg->peer is the request. This would be useful for replicating successful ADD requests as SET, for example
  3. In req_send_done, commands such as SET where replication wouldn't depend on the result could be replicated.
  4. Metaget commands would be useful for fetching key TTLs (and flags) to properly replicate a successful INCR (e.g. pipeline ADD then INCR), but the metaget protocol is still experimental.

Rewriting memcached commands to their noreply equivalents is probably optional. If this expects replies, leaving out noreply may be useful for detecting hosts which are not responding to packets to reject connections (due to the configured timeout) to reopen connections and log unexpected errors


Failovers should be able to have replication pools, and replication pools should be able to have failovers, but there should not be a path on a graph of failover/replication that includes more than one replica

@TysonAndre TysonAndre changed the title Look into supporting replication to another pool in C Look into supporting direct replication to another memcache pool in C May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant