Closed arpitbbhayani closed 1 week ago
Shall i work on this?
@VipinRaiP https://github.com/DiceDB/dice/issues/142 is a pre-requisite for this. @yashs360 is working on it. Once that is done, you can pick this up.
@yashs360 Keep this issue in mind while coming up with a design. Make sure you do not implement all commands :) Go with your gut feeling.
Good to go @VipinRaiP . I had to implement Get/set/count to verify that the underlying data structure works. You can take this on and work on the other data types
Hey @arpitbbhayani / @yashs360
Implementing all these commands under one PR will result in a very large PR. Is this acceptable for you, or would you prefer that we break it down into smaller, more manageable PRs for easier review?
Please let me know your preferences.
Smaller PRs are recommended for efficient reviews. Don't overdo however. Use your judgement.
I will start with BITCOUNT
implementation 👍🏾
Hey @arpitbbhayani / @yashs360 I have tried to raise PR for BITCOUNT
, please can you guys go through it and let me know if any changes required!
Thanks 🙇🏾
Shall I take up BITPOS ?
Hey @VipinRaiP , need to introduce byteArray new datatypes in this itself [Using @yashs360 's PR], so planning to implement all the commands in single PR..
To close this issue fully, need to implement: BITPOS
, I will working on this and will be raising PR accordingly.
Add support for the byte array manipulation commands in DiceDB similar to the following commands 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.