I'm looking for a simple DBM library such as BerkeleyDB or Kyoto Cabinet, but natively working for .NET. I need to manage more than one million records (maybe ten millions), and possibly in a hierarchical way (this last point is not mandatory, we can work with a linear structure).
Does such a thing even exist?
A perfect signal is -30 dBm. Likely, you do not have a perfect signal, but that is OK. Any signal between -67 to -30 dBm will let you perform most online activities.
Measured in dBm, a signal of greater than -70 dBm is considered an excellent signal in all networks.
-30 dBm: The best possible. -50 dBm: Excellent signals. -60 dBm: Very good signals. -65 dBm: Good, reliable signals.
I finally found RaptorDB and it matches almost exactly my needs. I'll write down my evaluation here after it's been fully tested.
Edit: after testing, it was not exactly working as expected. Actually it was not exactly working, so I wrote my own DBM (it always ends up like this :)). The problems where in a multithreaded environnement, where I got DB corruption quite often (and yes, I've checked my code for thread safety). If someone has a positive feedback, I'm interested.
SQL Server Compact Edition is a viable choice, although I'm not sure what you mean by "natively working for .NET" - .NET has no built-in database (unless you count DataTables and XML, which I don't).
What about System.Data.SQLite?
Assuming you are on Windows I suggest trying the ESENT database engine via the ManagedEsent interop layer. ESENT is built into Windows and has a similar level of functionality and performance to BerkelyDB. The differences are that ESENT isn't just a key/value store, it has columns and indexes built in, but ESENT doesn't have replication.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With