Tuning Collection Classes

The Tuning sheet of the Define Class dialog, shown in the following image, is displayed after you have specified your class options for a collection subclass and you then select the Tuning sheet of the dialog. (This sheet is enabled only if you are adding or maintaining a Collection subclass.)

This sheet enables you to specify the size of collection blocks and the collection load factor at the collection type level. For more details, see Chapter 4, "Collections Behavior and Tuning", in the JADE Developer’s Reference.

Block size tuning applies to all collection types and load factor tuning is specific to Btree types (that is, to sets and dictionaries).

To tune a collection

  1. In the Sizing group box, select the Entries Per Block option button if you want to specify the size of collection blocks in terms of the number of entries in each block.

    If you specify an estimate of the expected population (that is, the expected size of the collections), JADE computes an optimal block size for you.

  2. In the text box at the right of the Expected Population or Entries Per Block option button, specify the expected population of the collection or the maximum number of entries for each collection block, respectively.

    The default values of zero (0) indicate that JADE uses the default values for the collection type. The specification of the block size is particularly useful in Btree structures, as the block size can determine the number of levels or the height of a Btree required to contain a specific population (number of entries).

    Minimizing the number of levels in a Btree has been shown to improve the overall performance for typical use cases with large collections, by reducing both the search and update time for Btree operations.

  3. The load pattern that you select depends on the key order entries, and enables JADE to determine the ratio of entries (as a percentage factor) that are moved to a new block when a Btree block splits.

    The Load Pattern group box is disabled for arrays, as it is not applicable. For dictionaries, the default value is Random. A random load pattern provides optimal loading when entries are added in random key order whereas a sequential pattern produces a higher load factor, providing a denser loading.

  4. By default, instances of exclusive collections are mapped to the same file as the owner objects. (For details about browsing and maintaining class map files, see "Maintaining Map Files", earlier in this chapter.)

    If you want exclusive instances mapped to the file defined for the collection class (that is, the map file selected on the Class sheet), select the top option button in the Map Exclusive Instances To group box, which displays the name of the map file selected on the Class sheet. If you have not yet selected a map file, <map file not selected> is displayed instead.

    The ability to override the default mapping is enabled only when there are no existing exclusive instances of the collection class.

  5. Click the OK button. Alternatively, click the Cancel button to abandon your selections.