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 an optional port to access L2 only #123

Open
ScottMansfield opened this issue Apr 13, 2017 · 0 comments
Open

Add an optional port to access L2 only #123

ScottMansfield opened this issue Apr 13, 2017 · 0 comments

Comments

@ScottMansfield
Copy link
Contributor

Right now, at Netflix, we run a memcached process as our L1 cache that listens on a unix domain socket. This made it inaccessible to our stats gathering tools, so we created a very small and simple tcp <=> unix domain socket proxy to be able to speak just to L1. This also helps in debugging as we can see if L1 has a specific key or not. We also ran this proxy configured to connect another port to the L2 process directly.

More recently we merged the open source rend process with our internal L2 server to reduce the overhead of syscalls between the two[1]. In doing so, we lost the ability to directly query the L2 component of the system, meaning we can no longer simply ask L2 if it has a key without going through the standard front door. This has reduced our ability to gain runtime insight about what keys are where.

This issue is to simply create a new listen port in memproxy.go that will provide the ability to speak only to L2. Naturally, this port should only be available if --l2-enabled is set, and the options for it will be ignored otherwise. It will need a port option, --l2-direct-port. There may be others needed as well.

[1] This means our internal code is using rend as a set of libraries and not using the default main, not that we are developing rend on a closed-source fork.

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

1 participant