-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 support for command CLIENT LIST
#1134
Comments
please assign this to me |
@JyotinderSingh can you unassign this issue #1129 and assign this issue to me |
Assigned. |
Hey @swarajrb7, assigning this to @kakdeykaushik since they commented first. Will be adding more mid level issues and will tag you there. |
Hey, it may be good to discuss the design before you begin working on the implementation. We need to ensure this does not introduce any performance regressions on the critical path. |
I have been doing some research on how redis behaves and implements this command, redis's client management impl and what all syscall and socket options we can use to get required information. Also implemented other simpler CLIENT command BackgroundWe don't store all the connected clients to dicedb server. Except Async server which is exclusive for clients conncted to it(connectedClients @ server.go#L36). ApproachA global list of all the connected clients which would be modified only when client connects/disconnects and read only when Extra - If we implement autoincrement client id we can optimize read/write ops of this global list. Implementation - #1157. Implementation details and impact(for critical path) for each fields are mentioned.
|
Values Implementing these functionalities in DiceDB may impact performance since for each client we would have this buffer overhead and operating them for every query. On the plus side having these functionalities can help terminate clients which are faulty (for lack of better word).
For these fields we should have discussion, for rest of the fields I'll start the implementing them. |
Add support for the
CLIENT LIST
command in DiceDB similar to theCLIENT LIST
command in Redis. Please refer to the following commit in Redis to understand the implementation specifics - source.Write unit and integration tests for the command referring to the tests written in the Redis codebase 7.2.5. For integration tests, you can refer to the
tests
folder. Note: they have usedTCL
for the test suite, and we need to port that to our way of writing integration tests using the relevant helper methods. Please refer to our tests directory.For the command, benchmark the code and measure the time taken and memory allocs using
benchmem
and try to keep them to the bare minimum.The text was updated successfully, but these errors were encountered: