Before I get into the changes to the Universal Driver 4.x and 5.x, I’d like to touch on some of the great work that RevUS have been doing with regards to helping people to get more performance out of their systems. Most of us use indexing and we try to optimise our code as much as possible, but Revelation are also tinkering with things and they have recently released some tools to help developers to get the most from their systems.
For those of you that have made the move to OpenInsight 9.4, (and those of you that have not yet made the move, now would be an ideal time) Revelation have a Linear Hash Sizelock Administration Tool for you. This has been key to helping some of our larger clients with large systems to address some intermittent, but nonetheless, troubling issues.
In conjunction with the Linear Hash Reporting and Resiaing Tool released in March 2016, Revelation have published a sizelock administration tool called RTI_SET_SIZELOCK. This tool will enable OpenInsight system administrators to view linear hash statisitcs within an application and identity and modify the file sizelock parameter.
Why is this important and useful?
The sizelock parameter is used to control the automatic resizing of the primary address space. A sizelock of “0” indicates that a table should be allowed to expand as more rows are entered, and become smaller as rows are deleted. A sizelock of “1” indicates that a table should be allowed to expand, but should not become smaller. This is useful in cases of a presized table, when a preliminary expectation is for the table to hold 1000 rows, but more rows may be added. If a sizelock is set to “2” or more, the table is not allowed to expand or contract. A sizelock of “2” is very important during a select operation executed on a network, when one user is searching a table for information while another user is entering new data.
OpenInsight increments the sizelock by 2 for the duration of the select operation. If another user is adding information, it is possible that the system could determine that a table needs to be resized. If this were to occur during a select operation, the process might yield unpredictable results: rows that have not yet been evaluated might be skipped, or rows might be processed more than once. Because the sizelock is “2”, no resizing takes place. Once the process is finished, the sizelock is decremented by 2, restoring it to the table’s original sizelock value. While the table might now be slightly out of size, the addition or deletion of another row will result in correct resizing.
The RTI_SET_SIZELOCK tool will allow an OpenInsight system administrator to globally set the sizlelock parameter on all or select tables. For instance if a sizelock parameter is set to “2” or greater the table will not resize. You can use this to disable resizing during busy periods and then re-enable resizing during quiet periods.
You can use this tool on any table, including ! and DICT files, as well as system files such as SYSLISTS and SYSOBJ.
RTI_SET_SIZELOCK is available at no cost to all current Works members and can be downloaded from the Works Download section of www.revelation.com.