Skip to content

Add an optional port to access L2 only #123

@ScottMansfield

Description

@ScottMansfield

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions