Live data from Hacker News

WhiteDB – Lightweight NoSQL database written in C, operating in main memory

whitedb.org

21–30 of 83 posts

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#21
post #18

Looking at the benchmarks, I'm trying to rack my brain about how it outperforms redis consistently on every single benchmark for a simple associative map. I don't know if this is likely, but it looks like redis doesn't lock memory [1], which means that the benchmarks could be explained by swapping. Depending on the type of shared memory used by whitedb, it could be that its pages are locked and immune to swapping. [1…

Whats the overhead of the connection to the server? If he is connectng to Redis over TCP and WhiteDB via memory sharing then its not a huge leap to say TCP is slower than shared memory.

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#22
post #18

Looking at the benchmarks, I'm trying to rack my brain about how it outperforms redis consistently on every single benchmark for a simple associative map. I don't know if this is likely, but it looks like redis doesn't lock memory [1], which means that the benchmarks could be explained by swapping. Depending on the type of shared memory used by whitedb, it could be that its pages are locked and immune to swapping. [1…

I think the difference is entirely explained by WhiteDB's lack of networking overhead, both in write() calls to the OS[1] and creating & parsing network messages. A fairer comparison would be with leveldb and lmdb[2].

[1] http://highscalability.com/blog/2013/6/19/paper-megapipe-a-n...

[2] http://symas.com/mdb/microbench/

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#23
post #6

Python bindings! Finally I can stop using dictionaries like a common peasant.

Did you read this part?

> Data is read and written directly from/to shared memory

Good luck accessing your dictionaries from another python process....

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#24
post #10
post #6

Python bindings! Finally I can stop using dictionaries like a common peasant.

What is the advantage of this over using dictionaries?

Accessible across multiple python processes (shared memory).

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#25
post #17

One of the authors here. A few answers quickly. It does write to disk: you can either dump memory or write all changes to log (turn it on/off yourself). Sure it has a global read/write lock, with several locking strategies to select from (task-fair atomic spinlock queue or a reader-preference or a writer-preference spinlock). It is definitely meant to be a simple library. We strived to document it carefully to make u…

Congratulations on your project and the attention it's getting!

Can you explain-more/rationalize GPLv3 licensing w/ the conditional alternate commercial license?

Why not just BSD, MIT, or (at least) LGPL ?

GPL is more understandable on "higher level software" (ie: complete applications), but I don't understand your intent licensing a library this way.

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#26
post #25
post #17

One of the authors here. A few answers quickly. It does write to disk: you can either dump memory or write all changes to log (turn it on/off yourself). Sure it has a global read/write lock, with several locking strategies to select from (task-fair atomic spinlock queue or a reader-preference or a writer-preference spinlock). It is definitely meant to be a simple library. We strived to document it carefully to make u…

Congratulations on your project and the attention it's getting! Can you explain-more/rationalize GPLv3 licensing w/ the conditional alternate commercial license? Why not just BSD, MIT, or (at least) LGPL ? GPL is more understandable on "higher level software" (ie: complete applications), but I don't understand your intent licensing a library this way.

Making a clean cut between free-as-in-speech on one hand and free-as-in-beer on the other.

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#28
post #26
post #25

Earlier quoted context omitted.

Congratulations on your project and the attention it's getting! Can you explain-more/rationalize GPLv3 licensing w/ the conditional alternate commercial license? Why not just BSD, MIT, or (at least) LGPL ? GPL is more understandable on "higher level software" (ie: complete applications), but I don't understand your intent licensing a library this way.

Making a clean cut between free-as-in-speech on one hand and free-as-in-beer on the other.

I appreciate the sentiment, but I was looking forward to using this until I saw that part. I (like I assume many others) cannot use a GPL3 library (and I'm in academia). If you want any sort of traction for a library, GPL3 is not the way to go.

This is why the LGPL was created, so that you can have modifications done on your library be free-as-in-speech, but still make the library as a whole useable for a wide variety of other projects, including closed-source versions.

Having a separate requirement to email you for a free-as-in-beer license is just overly complicated for this. The more hurdles you put up for people, the fewer that will adapt the library. I think that licensing is one of those cases where is doesn't pay to be clever. Plus, what happens when you decide to stop maintaining the code? Do you want to keep getting emails for licenses years from now?

Edit: in last paragraph, I said free-as-in-speech, but meant beer (see comment below).

Re: WhiteDB – Lightweight NoSQL database written in C, operating in main memory

#29
post #25
post #17

One of the authors here. A few answers quickly. It does write to disk: you can either dump memory or write all changes to log (turn it on/off yourself). Sure it has a global read/write lock, with several locking strategies to select from (task-fair atomic spinlock queue or a reader-preference or a writer-preference spinlock). It is definitely meant to be a simple library. We strived to document it carefully to make u…

Congratulations on your project and the attention it's getting! Can you explain-more/rationalize GPLv3 licensing w/ the conditional alternate commercial license? Why not just BSD, MIT, or (at least) LGPL ? GPL is more understandable on "higher level software" (ie: complete applications), but I don't understand your intent licensing a library this way.

[deleted]
Post reply on HN