The String Table is maintained by the object manager.

It is a table of string constants created by the object system. Typical values in this table are java class names and GPO property key values.

The primary role of the table is to improve both space and time performance. By providing String identies rather than string values, the GPO objects will take less space in persistent storage, and therefore require less data streaming - improving IO.

The in memory resource requirements are also reduced, while the comparison of "string" values is reduced to a comparison between two integers.

String Table Format

The String Table in memory provides efficient access either from String to Index, and also from Index to String.

Each new String added to the table is given a new ID. But the table is also sorted alphabetically, which allows for an efficient delta compression algorithm when streaming to/from the store.

The compression algorithm means that it is very efficient to have strings indicating properties using a URL type convention - mysystem.persistence.objectmodel.stringtable for example, since similar "domain" names will be grouped together with only the deltas required for each new string.