|
The work that has been going into the Continuous LINQ project will be getting some "air-time" in the Doctor Dobb's Journal magazine in January 2008 (only a couple months from now...how scary is that?? It's nearly 2008!). The article attempts to show off the power of LINQ and the new C# language extension capability with a sample - Continuous LINQ. As you know, CLINQ allows you to create a single LINQ query against an original data source and have the results of the query be updated in real-time as changes are made to the source collection.
We've been able to get a throughput of 100,000 inserts-per-second to the original data source while still bound to a WPF GUI with minimal impact on CPU load and have even managed 1,000,000 inserts-per-second if you can tolerate a 40% CPU load, though at that rate the app will probably be crushed under the weight of the collection pretty quickly. If you need a throughput of 1,000,000 updates per second, CLINQ is probably not your best bet and you should probably be looking for some industrial-strength in-memory database type stuff.
Anyway, I'm also working on a screencast to demonstrate the features of CLINQ that I will be publishing on this blog shortly along with the complete source code to CLINQ that anybody can download and use as they see fit. I will keep you posted.
Wow, amazing work, and exactly what i ve been searching for. Looking
forward to trying it out and would love to see more details on this. keep
it up
CLINQ sounds great, I'd love to be able to try it. LINQ to SQL as it
currently exists is crushingly slow for inserts and updates. I've had to
resort to SqlCeResultSet and SqlBulkCopy for decent insert performance.
Keep in mind that CLINQ operates only on in-memory collections that are or
are derived from a thread-safe observable collection that I called
ContinuousCollection<T>. This means that it's not a replacement for
database access - it facilitates streaming queries on live, in-memory data.