Checkin #: 43190
Two important updates are now available:
- LINQ to Objects extension (Query) expose a callable function that returns an efficient wrapper to the Store.
- Very efficient Multi Reader, Single Writer locking model also now available.
Pls. find unit tests & Sample demo programs (Simulator & LINQ Acceptance tests/demo) for these two new features.
Also, I provided new Single user harness demo showing ability to insert 100 million records in 35 minutes using my personal mac mini.
Checkin# 40916 changes:
- Full exception coverage on Async IO completion thread.
- VirtualCache got "thinner", reimplemented to remove background processing to leave only the scalable in-memory functionalities from the SOP Store, as advertised. This produced another leapfrog performance.
Following are the changes for this code drop (checkin#40475):
- Transaction Rollback Reliability
- Better Transaction feature "story"
- Stores and Transactions are "efficiently thread-safe", threaded transaction model preserves valuable MRU & B-Tree caches in between Transaction Commits
- Sop dll & sample programs were ported to .Net 4.5.1
- Memory Block Folding for "very efficient" memory mgmt. & better performance
- Large data support, media data files can now be stored with great efficiency
Performance metrics seen
- up to 33MB size of datablock segment (e.g. - data of a B-Tree page) can be swapped in/out of memory in one very quick Async read/write. NOTE: a record can contain multiple datablock segments, dictated by the record's data size.
- Big data "smart" file streaming. If blob is bigger than threshold, it will be streamed to File, otherwise, will use Store's MRU caching for bulk I/O.
: sustained "initial full load" insertion of 100 million records in 35 minutes using mac mini. Succeeding I/Os updates/inserts/deletes at sustained high speed rates(thx to B-Tree load balanced algorithm). Reads are so much faster than the writes, can read all of 100 million in minutes.
Multiple Reads are instantaneous, done with full hardware parallelism when hardware supports it.
- Store URI path support, pls. see this link for Store Uri documentation: https://sop.codeplex.com/wikipage?title=Basic%20Functionalities&referringTitle=Documentation#Simple Store Navigation
- Simplified ObjectServer Transaction & Store Navigation API. e.g. - ObjectServer can now auto-rollback (default) or auto-commit a transaction on dispose
- Unique Stores, Store can be set to unique mode so all inserts will be validated (with negligible/zero performance impact!) for uniqueness of the Keys being added.
Feature was implemented at the heart of the B-Tree engine with minimal extra Key comparison instructions.
In code, 'pls. see StoreNavigator class, PeopleDirectoryxxx & Nested Sorted Dictionary sample programs for usage samples.