Contributor
CVN Prajwal

RESP (Redis) support in pmproxy


Mentors
Lukas Berk, Nathan Scott
Organization
Performance Co-Pilot

So as to handle huge volumes of data generated due to distributed and scalable nature of PCP, Redis an in-memory NoSQL data cache is being used in PCP for search and serving time series performance data. Since PCP metadata and data keys are distributed across potentially many Redis servers, Redis nodes need to communicate with one another for data access/transfer. Communication between Redis nodes (Redis clients with the Redis servers) is carried out by protocol called RESP (REdis Serialization Protocol). As Redis protocol (RESP) and the pmproxy'd PCP protocol can co-exist, the main goal of this project is extending pmproxy to support RESP such that an arbitrary Redis client can access the distributed key store using the direct key-to-server mapping mechanism used by the existing PCP time series code. Sub-goals include integrating libuv library with pmproxy. libuv is a multi-platform support library with a focus on asynchronous I/O.