Uses outside SL & WP7

Feb 14, 2011 at 12:16 PM

A couple of quick questions.  I am always looking for a good data storage system for my work and yours looks very interesting.  I work in analytical finance and need to sometimes store very large amounts (sometimes multiple GB) of complex data and retrieve them sequentially from a point in time.

Does your system work effectively outside of SL and WP7?  How would it function with these large data sets?

Even if your system doesn't fit my need I am very impressed.  It looks like you are putting together a great tool.


Feb 14, 2011 at 1:06 PM

Thanks for the kind words.

I've had users adopt this to the desktop using local storage. It is significantly faster than when layered on top of isolated storage due to the journalling/quota record keeping that iso must do with each write operation.

So technically yes, you could easily adapt this to the desktop but I would guess then you have a plethora of other options ranging from SQL Express to NoSQL and CouchDB that would probably do a much better job. Sterling was designed to be lightweight and address a very specific niche which is the local storage and querying of tens of thousands, possibly hundreds of thousands of pieces of data. While the size on the desktop (gigabytes) wouldn't be a factor, the number of records would be. The key to Sterling's filtering/querying speed is that the keys/indexes are in-memory with the idea that these are low profile and footprint - for example, if I have 10,000 contacts but just keep the name in memory then on an average of even 100 characters per name we're looking at 1 MB of memory which is not bad at all. This would obviously fall apart at 1 GB of contacts, etc.

So to make a short story boring I think the Sterling "sweet spot" is going to be tens of thousands of records with smart keys/indexes in a closed system that makes sense on an embedded database. When dealing with ultra large data sets, more complex relationships and larger enterprise systems then I think it's time to move to other larger solutions with more evolved technology to handle those scenarios. If I am coding an embedded WP7 or Silverlight database obviously I jump on Sterling. If I'm writing an enterprise scale system or even a local system but that must scale to gibabytes of data, and looking for a cost effective solution, I'm leaning towards MySQL, NoSQL, SQL Express, RavenDB, etc.