1 Introduction
1.1 Other Documents
2 Streamstore Object Model
2.1 Simplified Object Model
2.2 Detailed Object Model
3 Simple Storage Example
3.1 Save Example
3.1.1 Person Class
3.1.2 VSPSave Class
3.2 Load Example
3.2.1 VSPLoad Class
3.3 Notes
4 Simple Indexing Example
4.1 Insert Example
4.1.1 VSPXInsert Class
4.1.2 StringKey Class
4.2 Find Example
4.2.1 VSPXFind Class
4.3 Update Example
5 The Features of Streamstore
5.1 Features By Class
5.1.1 Session
5.1.2 StreamStore
5.1.3 StreamTable
5.1.4 StreamTableCursor
5.1.5 StreamRecord
5.1.6 StreamId
5.1.7 BTree
5.1.8 BTreeCursor
6 Streamstore Transactions
6.1 Transaction System Features
6.2 ACID
6.3 Keep Application Data Consistent
6.4 Isolation
6.4.1 Locks
6.4.2 The Lost Update Problem:
6.4.3 Uncommitted Dependency Problem
6.4.4 Isolation Levels Defined
6.4.5 Streamstore Isolation Level 3
6.4.6 Serializable Executions
6.5 System Failure and Recovery
6.6 Deadlock Detection
6.7 Other Effects
6.7.1 Deleted and NotFound Exceptions
6.8 Optimistic Concurrency using VersionNum
7 Object Modeling and StreamStore
7.1 Object Relational Mapping
7.2 Basic Operations on PersistentObjects
7.2.1 Basic Persistence
7.2.2 Navigate Through your Objects
7.2.3 Create, Delete and Update yourObjects
7.3 Persistent Object andPersistence Monitor
7.3.1 VMTest Example
7.3.2 SmartSwing Example
7.4 Mapping and Model Innovation
7.4.1 FileIndex Example
7.4.2 Simple Range Example
7.5 Schema Support
8 Lifecycle of Streamstore Objects
8.1 Session
8.2 StreamStore
8.3 StreamTable
8.4 StreamRecord
8.4.1 Summary of Methods
8.4.2 New StreamRecord
8.4.3 Existing StreamRecord
8.5 StreamId
8.6 BTree
8.7 StreamTableCursors
8.8 BTreeCursor
8.9 Number of Streamstore ObjectsCreated?
9 Appendix
9.1 Notes on Serialization
9.2 References