Craig S. Mullins

Return to Home Page

May 2003





The DBA Corner
by Craig S. Mullins  


Complexity and DBMS Release Migration

By Craig S. Mullins

Last month we talked about the increasing complexity of database management systems and the impact this has on database administration. Complexity is a pervasive issue in IT these days, particularly with DBMS software, so let’s continue this discussion.

One of the factors in determining when and how to upgrade to a new DBMS release is, of course, the functionality supported by the new release. But tightly coupled to functionality is the inherent complexity involved in supported and administering the new features. Regardless of the new “bells and whistles” that come along with a DBMS upgrade, there are always administration and implementation details that must be addressed before upgrading. It is the responsibility of the DBA group to ensure that standards are modified to include the new features, educate developers and users as to how new features work and should be used, and prepare the infrastructure to support the new DBMS functionality. These are not trivial tasks.

The type of changes required to support the new functionality must be factored into the upgrade strategy. When the DBMS vendor makes changes to internal structures, data page layouts, or address spaces, the risks of upgrading are greater. Sometimes databases must be converted to a new format as part of a version upgrade. This can causes a severe drain on productivity as DBAs waste time migrating structures instead of administering databases. Other internal changes, while not as drastic as actual database structure changes, can cause just as drastic problems. Additional testing is warranted in these situations to ensure that database utilities, DBA tools, and data extraction and movement tools still work with the revised internals.

Another mitigating complexity factor is the topology and layout of your particular database implementation. The more complex your database environment is, the more difficult it will be to upgrade to a new DBMS release. The first complexity issue is the size of the environment. The greater the number of database servers, instances, applications, and users, the greater the complexity. More servers and instances translates into additional work to actually install a new version. More applications means more potential performance problems as access paths change from one version to the next. And more users–well–we all know what that means, don’t we?

Additional concerns include the type of applications being supported. A DBMS upgrade is easier to implement if only simple, batch-oriented applications are involved. As the complexity and availability concerns of the applications increase, the difficulty of upgrading also increases. It is impossible to maintain 24/7 access to a database server while you are upgrading to a new DBMS version.

Location of the database servers also impacts the release upgrade strategy. Effectively planning and deploying a DBMS upgrade across multiple database servers at various locations supporting different lines of business increases the difficulty of upgrading. It is likely that an upgrade strategy will involve periods of supporting multiple versions of the DBMS at different locations and for different applications. Supporting different versions in production should be avoided if possible, but that is not always possible to achieve. Think about it – keeping the versions straight can be difficult if some servers are on version 6, others are on version 7, and wait, didn’t we migrate that one over there to version 8?

Finally, the complexity of the applications that access your databases must be considered. The more complex your applications are, the more difficult it will be to ensure their continuing uninterrupted functionality when the underlying DBMS is modified. If you use stored procedures and user-defined functions, a new DBMS version can change the way these “program” objects work. And the complexity of the SQL will also impact the difficulty of migrating to a new DBMS version. The more tables involved in the SQL and the more SQL features being used, the more difficult it becomes to ensure that access path changes do not impact performance. Client/server and distributed processing involves network usage and multiple server tiers, both of which complicate testing the new DBMS release.

The language used by the programs might also impact DBMS release migration due to different support for compiler versions or new ways of embedding SQL into application programs. New ODBC or JDBC drivers may be needed for a new DBMS version.

Finally, if the application uses other infrastructure software such as message queues and transaction processors this can further complicate migration because new versions of these products may be required to support the new DBMS release.

The bottom line is that increasing database complexity increases the workload on DBAs. And there is no apparent end to the rising spiral of complexity being incorporated into our database management systems.




From Database Trends and Applications, April 2003.

© 2003 Craig S. Mullins,  All rights reserved.