Live data from Hacker News

DiceDB

dicedb.io

91–100 of 143 posts

Re: DiceDB

#91
post #78
post #39

Earlier quoted context omitted.

Not a month goes by where I don’t remember it at least once and realize that I still miss it. This seems more like Redis though

Why don't you run the open source version?

I did for about a year and the issue is that ORMs have issues and maintainers don't feel the need to make changes.

Re: DiceDB

#93
post #39
post #30

Earlier quoted context omitted.

So like RethinkDB? https://rethinkdb.com/

Not a month goes by where I don’t remember it at least once and realize that I still miss it. This seems more like Redis though

[deleted]

Re: DiceDB

#94
There are _so many_ bugs in this code.

One example among many:

https://github.com/DiceDB/dice/blob/0e241a9ca253f17b4d364cdf... defines func ExpandID, which reads from cycleMap without locking the package-global mutex; and func NextID, which writes to cycleMap under a lock of the package-global mutex. So writes are synchronized, but only between each other, and not with reads, so concurrent calls to ExpandID and NextID would race.

This is all fine as a hobby project or whatever, but very far from any kind of production-capable system.

Re: DiceDB

#96
post #21

Earlier quoted context omitted.

Arpit here. DiceDB is an in-memory database that is also reactive. So, instead of polling the database for changes, the database pushes the resultset if you subscribe to it. We have a similar set of commands as Redis, but are not Redis-compliant.

This is a lot clearer than any information I found anywhere else. There wasn't any room on your website, README, or docs for this summary?

This is a common enough pattern that it should have a name, where the submitted link isn't clear, but a single comment on HN is.

Re: DiceDB

#98
post #94

There are _so many_ bugs in this code. One example among many: https://github.com/DiceDB/dice/blob/0e241a9ca253f17b4d364cdf... defines func ExpandID, which reads from cycleMap without locking the package-global mutex; and func NextID, which writes to cycleMap under a lock of the package-global mutex. So writes are synchronized, but only between each other, and not with reads, so concurrent calls to ExpandID and NextI…

Haven't looked at the code, but enforcing mutual exclusion between writers but not readers can make sense for a single-writer lock-free algorithm.

Re: DiceDB

#100

Why would I use this over keyspace notifications in redis?

Based on this thread, I'm not sure you would want to use this over keyspace notifications, but I will also say that there comes a point in the maturity of a system when keyspace notifications become a complicated, unreliable, resource-heavy nightmare. They work fine is your needs and scale are limited, but it's definitely not what you want if handling lots of frequent chances across craploads of keys, with complicated logic for who needs them and how they get routed to them, and where it matters if the notification is successfully received.

But certainly you could build something to handle these and most other needs in this realm with mostly just redis, using streams for what needs to be more robust, in tandem with pub/sub, keyspace notifs, etc. in the areas they are suited to.

Post reply on HN