Database Management for Smalltalk

Virtual Spaces

Virtual Spaces

 
Virtual objects exist in virtual spaces (not virtual collections, which are discussed below); effectively these are named persistent extensions of the image on disk, and an image may connect to any number of them, located on the same or different file servers.

Typically, an entire application database will be contained in one virtual space. However a transaction may include objects in any or all of the virtual spaces connected to that image, which may be distributed for reasons of performance or may just have different settings.  For example a virtual space may be set soft read-only such that all transactions which change or create objects in it are forced to rollback, or it may be hard read-only (CD-ROM) as just part of the whole database.

Each image’s connection to a virtual space has its own settings for cache size and foreground and background garbage-collection rates, and also for read-only or read-write mode.  Any transaction which attempts to commit a change to an object in a read-only space or to which that connection is read-only is forced to rollback on attempting to commit. Individual virtual objects may be persistently set read-only with the same effect.  Virtual objects may also be handled in free-standing serialized form for transmission and storage, they know their own identity and can instantiate themselves on demand.

Only file read, write and region locking are required from the network file server. Subject to licensing terms, a VOSS-enabled image may be a server to other clients not necessarily running VOSS, for example machines running a web-browser user interface, or may be one of many client images connected to the virtual space(s) so that each user-interface can work directly with the application objects which are the database.

An image may be connected to several virtual spaces at once, on  the same or different file servers. Objects in one virtual space may reference objects in any other, but such references alone will not preserve the referenced objects from garbage-collection; to be preserved, an object must be reachable from the rootDictionary of its home virtual space.



 

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