Database Management for Smalltalk

What is the rootDictionary of a virtual space?



Q:  “What is the rootDictionary of a virtual space, and should all object accesses go through it?”

A:  The rootDictionary is a VirtualDictionary created automatically when a virtual space is created, and is the only object immediately accessible by an image after log-on, it is returned by the message VOManager>>rootDictionary.

In principle (though unusually) there could be several completely independent databases in one virtual space, so each database should be anchored in the rootDictionary using a VirtualDictionary to hold the root objects of the database, which are typically the main VirtualDictionarySets of domain objects requiring multi-key access, e.g. Customers, Departments etc. On startup, the application should get these root objects and assign them to instance variables (e.g. ‘customers’ ‘departments’) in some static object in the application so that they are directly accessible to the application, to avoid the rootDictionary becoming a bottleneck for concurrent transactions.

Leave a Reply