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

Add getMulti to mcrouter extension #9009

Open
Kilenaitor opened this issue Feb 23, 2022 · 1 comment
Open

Add getMulti to mcrouter extension #9009

Kilenaitor opened this issue Feb 23, 2022 · 1 comment

Comments

@Kilenaitor
Copy link

Is your feature request related to a problem? Please describe.
memcached (and mcrouter since it also implements the memcached spec) allows multiple keys to be provided to the get and gets commands which in turn will return multiple results. (Protocol Reference)

However, the API offered by the HHVM Extension for McRouter only has a single-key get method implemented. (HHVM Docs)

However, the memcached extension included in HHVM does include a getMulti which offers this functionality. (phpdoc reference)

Describe the solution you'd like
It'd be great if the mcrouter HHVM extension also offered a binding for getMulti to bring parity with the memcached extension.

Describe alternatives you've considered
Two main alternatives

  1. Keep using mcrouter but just only with single-key fetches
    This is a fine workaround and what I've been doing for now. But just thinking longer-term, it's not exactly ideal to have to make a single request per key fetched from memcached when potentially dozens of objects might be fetched (e.g. to load a feed).

  2. Switch to the memcached extension instead of mcrouter
    This is what I will probably wind up doing if I eventually need this functionality. mcrouter is nice but I'm definitely not working at such a scale where I need its functionality more than vanilla memcached's

Additional context
I'd be happy to work on this in spare time. I'm sure the core team has more important things to tackle. I mostly want to make sure there isn't anything in the pipeline that'll jeopardize the value of embarking on this work on my own e.g. if the mcrouter extension were gonna be wholesale replaced or something.

@fredemmott
Copy link
Contributor

There's no plans to remove it; this might also need changes to the mcrouter library itself.

Keep using mcrouter but just only with single-key fetches

Simplifying a bit, but this is basically what we do internally; it lets us start working on some data while waiting for others. Two reasons

  • replacing batching with continuous dispatch means you request the data earlier
  • when you're using mcrouter, a single multiget can end up in requests to multiple servers once you're past the routing part

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants