DiceDB, an in-memory real-time database designed as a drop-in replacement for Redis, is actively addressing command inconsistencies and expanding its feature set to enhance real-time capabilities.
Recent issues highlight inconsistencies with Redis commands, such as EXPIRE
and BITPOS
, indicating ongoing efforts to align DiceDB's functionality with Redis standards. The development team is focused on refining command behavior and enhancing testing coverage.
Shardul Silswal (shardul08)
Prashant Shubham (lucifercr07)
evalPING
for HTTP server, fixed logging errors, added multi-threading flag, fixed JSON test flakiness.Kavii Suri
GETRANGE
, set up zerolog
.Ashwin Kulkarni (AshwinKul28)
Harish (c-harish)
JSON.NUMMULTBY
.Harshit Gupta (hgupta12)
ECHO
command.Arpit Bhayani (arpitbbhayani)
Jyotinder Singh (JyotinderSingh)
Meet Ghodasara (meetghodasara)
Redis TYPE
command support.Vinit Parekh (vinitparekh17)
HSTRLEN
command.The development team is making strides in aligning DiceDB with Redis while exploring innovative features like WebSocket support and query fingerprinting, ensuring robust performance and user satisfaction.
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 55 | 33 | 167 | 31 | 1 |
30 Days | 137 | 107 | 546 | 63 | 1 |
90 Days | 258 | 189 | 1177 | 111 | 1 |
1 Year | 264 | 194 | 1198 | 115 | 1 |
All Time | 333 | 228 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Ashwin Kulkarni | 1 | 8/7/2 | 8 | 87 | 37175 | |
Jyotinder Singh | 3 | 23/22/1 | 35 | 140 | 20401 | |
Soumya Panigrahi | 1 | 4/4/0 | 4 | 105 | 3316 | |
Apoorv Yadav | 1 | 7/7/0 | 7 | 17 | 2125 | |
Pratik Pandey | 1 | 4/2/1 | 12 | 19 | 1492 | |
Arpit Bhayani | 2 | 4/4/0 | 27 | 39 | 1404 | |
psr | 1 | 6/4/0 | 4 | 8 | 1174 | |
Raghav Babbar | 1 | 5/3/2 | 3 | 13 | 1077 | |
Prashant Shubham | 1 | 8/8/0 | 8 | 22 | 815 | |
Phaneesh | 2 | 2/2/0 | 12 | 5 | 774 | |
KaviiSuri | 1 | 3/3/0 | 3 | 21 | 713 | |
jujiale | 1 | 4/3/0 | 3 | 9 | 708 | |
kushal0511-not | 1 | 2/3/0 | 3 | 17 | 705 | |
Vinit Parekh | 1 | 4/2/1 | 2 | 21 | 682 | |
Jayant Pranjal | 1 | 1/1/0 | 1 | 33 | 521 | |
King | 1 | 4/1/2 | 1 | 42 | 429 | |
Harish | 1 | 2/1/0 | 1 | 4 | 367 | |
Ritik Jain | 1 | 1/1/0 | 1 | 7 | 339 | |
Sameer Kolhar | 1 | 1/1/1 | 1 | 6 | 289 | |
Ved Chitnis | 1 | 2/3/0 | 3 | 11 | 286 | |
Himanshu Singh | 1 | 7/1/5 | 1 | 4 | 286 | |
Yash Srivastava | 1 | 1/1/0 | 1 | 4 | 263 | |
Ashwani Yadav | 1 | 1/2/1 | 2 | 14 | 189 | |
Meet Ghodasara | 1 | 4/1/2 | 1 | 4 | 186 | |
Nijin | 1 | 2/1/1 | 1 | 4 | 163 | |
ashutosh chaudhary | 1 | 2/1/0 | 1 | 4 | 145 | |
Vansh Chopra | 1 | 1/1/0 | 1 | 1 | 125 | |
Bhavya Jain | 1 | 1/1/0 | 1 | 4 | 105 | |
Dev Parikh | 1 | 2/2/1 | 2 | 2 | 101 | |
猴子 | 1 | 1/1/0 | 1 | 3 | 92 | |
aashraybhandar1 | 1 | 3/1/2 | 1 | 3 | 72 | |
Arif Khan | 1 | 1/1/0 | 1 | 3 | 69 | |
Harshit Gupta | 1 | 2/1/0 | 1 | 4 | 66 | |
Rushabh Nilesh Kothari | 1 | 1/1/0 | 1 | 2 | 64 | |
Kaushik Kakdey | 1 | 2/1/0 | 1 | 2 | 58 | |
Gaurav-Kumar81 | 1 | 1/1/0 | 1 | 2 | 34 | |
Jainam Chhatbar | 1 | 1/1/0 | 1 | 3 | 28 | |
Harsh Rai | 1 | 1/1/0 | 1 | 3 | 14 | |
Shardul Silswal | 1 | 2/1/0 | 1 | 1 | 11 | |
Salman Shah | 1 | 1/1/0 | 1 | 1 | 9 | |
Nithin K Joy | 1 | 1/1/0 | 2 | 1 | 5 | |
Qiu shao | 1 | 1/1/0 | 1 | 1 | 2 | |
Abhay (Abh-ay) | 0 | 2/0/0 | 0 | 0 | 0 | |
H (hash-f) | 0 | 1/0/0 | 0 | 0 | 0 | |
Rakesh Nayak (raknay) | 0 | 1/0/1 | 0 | 0 | 0 | |
None (AshikBN) | 0 | 1/0/0 | 0 | 0 | 0 | |
Subhrajit Makur (Avyukth) | 0 | 1/0/1 | 0 | 0 | 0 | |
Shervil Gupta (ShervilG) | 0 | 2/0/2 | 0 | 0 | 0 | |
Saubhik Kumar (iamskp11) | 0 | 2/0/0 | 0 | 0 | 0 | |
None (lbihani9) | 0 | 1/0/1 | 0 | 0 | 0 | |
manish wadhwani (manishrw) | 0 | 1/0/0 | 0 | 0 | 0 | |
Blue (yashs360) | 0 | 1/0/2 | 0 | 0 | 0 | |
Vipin Rai (VipinRaiP) | 0 | 1/0/1 | 0 | 0 | 0 | |
Amit Yahav (amityahav) | 0 | 1/0/1 | 0 | 0 | 0 | |
Yaten Dhingra (yaten2302) | 0 | 0/0/1 | 0 | 0 | 0 | |
Parv (ParvBudh28) | 0 | 1/0/0 | 0 | 0 | 0 | |
Satwik Animesh (sanimesh96) | 0 | 0/0/1 | 0 | 0 | 0 | |
Akhileshwar Gurram (Maveric-k07) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ayush Saluja (ayush571995) | 0 | 2/0/1 | 0 | 0 | 0 | |
Kapish Malik (kapishmalik) | 0 | 1/0/0 | 0 | 0 | 0 | |
Karthick (rkarthick15) | 0 | 0/0/1 | 0 | 0 | 0 | |
Rohit Lohar (rohitlohar45) | 0 | 2/0/3 | 0 | 0 | 0 | |
Shikha Pandey (Shikha-code36) | 0 | 1/0/0 | 0 | 0 | 0 | |
Deep Adeshra (deep-adeshraa) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The DiceDB project has seen a surge of activity recently, with 105 open issues currently on GitHub. Notably, several issues focus on inconsistencies between DiceDB and Redis commands, indicating ongoing efforts to align functionality with established standards. There are also numerous discussions around enhancing command support, improving testing coverage, and addressing bugs, which suggests a proactive approach to development.
A recurring theme among the issues is the need for consistency in command behavior, particularly regarding error handling and expected outputs. This highlights the project's commitment to providing a reliable and predictable user experience akin to Redis.
Issue #683: Inconsistent DumpAllAOF
: attempts to write file N times
Issue #672: Inconsistent EXPIRE
: EXPIRE with big integer overflows when converted to milliseconds
Issue #671: Inconsistent EXPIRE
: EXPIRE with empty string as TTL should report an error
Issue #670: Inconsistent BITPOS
: BITPOS bit=1 works with intervals
Issue #669: Inconsistent BITPOS
: BITPOS bit=0 works with intervals
Issue #668: Inconsistent BITPOS
: BITPOS bit=1 unaligned+full word+reminder
Issue #667: Inconsistent BITPOS
: BITPOS bit=0 unaligned+full word+reminder
Issue #666: Inconsistent BITOP
: BITOP with non-string source key
Several issues reveal a pattern of inconsistency in command behavior compared to Redis:
EXPIRE
and BITPOS
commands highlight discrepancies in how these commands handle edge cases, such as large integers or unsupported types. This inconsistency can lead to confusion for users transitioning from Redis.The recent activity on DiceDB's GitHub repository reflects a focused effort on refining command implementations and ensuring alignment with Redis standards. The community's involvement in discussing and resolving these issues is crucial for the project's growth and reliability as a real-time database solution.
The analysis of the recent pull requests (PRs) for the DiceDB project reveals a dynamic development environment with active contributions aimed at enhancing functionality, fixing bugs, and improving performance. The project is evolving rapidly, with a focus on expanding its command set, optimizing existing features, and ensuring compatibility with Redis.
PR #694: Integration tests for HTTP and ABORT support for HTTP. This PR is significant as it enhances the testing framework for HTTP commands, ensuring reliability and robustness in handling HTTP requests.
PR #693: Implementation of the HSTRLEN command, adding new functionality to DiceDB that aligns with Redis capabilities. This PR is crucial for expanding the command set of DiceDB.
PR #692: Draft PR for query fingerprinting, which could potentially improve query optimization and execution planning by identifying similar queries.
PR #691: Addresses inconsistency in the EXPIRE command's behavior, ensuring compliance with expected standards and improving user experience.
PR #690: Draft PR adding WebSocket support, which could enhance real-time data handling capabilities within DiceDB.
PR #689: Adds support for the INCRBYFLOAT command, further expanding the mathematical operations available in DiceDB.
PR #688: Fixes an inconsistency in the BITCOUNT command's argument validation, aligning it more closely with Redis behavior.
PR #684: Work in progress on supporting snapshots at particular intervals, which could improve data durability and recovery options.
PR #678: Implementation of the HDEL command, allowing for deletion of multiple fields from a hash, thus enhancing data manipulation capabilities.
PR #677: Fixes inconsistencies found in the INCR command's error messages and handling.
PR #687: Reverted changes to the evalPING command for HTTP server due to breaking issues. This highlights active maintenance efforts to ensure stability.
PR #686: Fixes logging error messages instead of values, improving debugging and error tracking capabilities.
PR #682: Adds a flag to enable/disable multi-threading on the server, providing flexibility in deployment configurations based on performance needs.
PR #681 & PR #680: Both PRs related to adding COMMAND DOCS feature, indicating ongoing efforts to enhance documentation and usability within DiceDB.
PR #679: Adds support for the GETRANGE command, expanding the string manipulation capabilities of DiceDB.
PR #634: Refactoring eval for multithreading support, which is a significant step towards enhancing performance through parallel processing.
The recent PR activity in DiceDB reflects a robust development process focused on feature expansion, bug fixing, and performance optimization. The introduction of new commands like HSTRLEN, INCRBYFLOAT, and HDEL demonstrates an effort to align more closely with Redis functionalities while also considering unique enhancements such as query fingerprinting and WebSocket support.
The active resolution of inconsistencies and bugs, as seen in PRs addressing EXPIRE command behavior and BITCOUNT argument validation, indicates a commitment to reliability and user satisfaction. Furthermore, efforts towards performance improvements through multithreading support and snapshot functionalities suggest a forward-looking approach aimed at scalability and efficiency.
The presence of draft PRs like those adding WebSocket support and query fingerprinting highlights ongoing explorations into innovative features that could set DiceDB apart from traditional databases. These efforts are complemented by enhancements in testing frameworks and logging mechanisms, ensuring that as new features are added, they are robustly tested and easily debuggable.
In conclusion, DiceDB's development is characterized by a balanced focus on expanding its feature set while ensuring stability and performance. The community's active involvement through contributions and discussions further enriches this process, paving the way for a powerful real-time database solution.
Shardul Silswal (shardul08)
Prashant Shubham (lucifercr07)
evalPING
command for HTTP server.Kavii Suri
GETRANGE
.zerolog
.Ashwin Kulkarni (AshwinKul28)
Harish (c-harish)
JSON.NUMMULTBY
.Harshit Gupta (hgupta12)
ECHO
command.Arpit Bhayani (arpitbbhayani)
Jyotinder Singh (JyotinderSingh)
Meet Ghodasara (meetghodasara)
Redis TYPE
command.Vinit Parekh (vinitparekh17)
Others: Various contributors have made smaller contributions, focusing on specific features or bug fixes, such as JSON commands and testing improvements.
The DiceDB development team is making substantial progress with active contributions across various areas, particularly focusing on enhancing functionality and ensuring robust testing practices. The collaborative environment fosters innovation while addressing existing issues effectively.