tags:

views:

58

answers:

1

I've been looking into using DBfDotNet to store some sensor data. For anybody who doesn't know what im talking about, it is a database engine written in c#, check it out on codeplex or this very good codeproject article. The database that it is compared to for timings in the codeproject article is sqlite.

From the testing I've done, it is substantially faster than other embedded databases that I have tried. It is essentially an object database so we can just save the date and not have to worry about awful things like ADO.NET, ORM and SQL!

With 500k rows in the file, a query like:

IEnumerable<People> result = peoples.Where<People>(x => x.dob < DateTime.Now.AddYears(-30)
                                                     && x.dob > DateTime.Now.AddYears(-10)
                                                     && x.name.StartsWith("Ca")
                                                  );

took about 5 seconds.

So what would be the disadvantages of using a database like this?

One issue is that the columns in the database file are fixed width, so if the data varied, space would be wasted. The data I'm looking at storing is fixed width anyway so this wouldnt be an issue for me.

It is not thread safe. This is not an issue for me but this could always be added as an optional wrapper.

Also its far from ACID and a failure during a write could cause some issues!

+1  A: 

Without getting into functional questions, consider support. Are there enough developers on the project, and users of the project to ensure any bugs can be quickly corrected?

Or stated another way: is the time saving in development justified if you lose all your data due to a defect in this engine?

Also can you backup the datafiles while using them, or will you need a mechanism to buffer sensor data while backing up?

Richard
I suppose support is the main issue I will have. I feel like I could have a good go at fixing most issues and I've read all the source. But its very different to anything that I've written and I dont really want to get 6 months down the line and have a call telling me that a databse isnt opening!
Tim