Three I's for Better Performance     

By Alan Sargent
Database Management Technology,Inc

One of the perks of doing consulting work is traveling to exotic places (of course, this is also one of the perils of consulting).  Not long ago, I visited a client in Colombia, South America.  The country is beautiful and the people are very gracious, which helped relieve my trepidation about going to a foreign country where I don't speak the language.  My high school Spanish was pretty rusty but, fortunately, the language of computers is universal. 

The client was a fast-growing company with a fast-growing database and user population.  As often happens in these circumstances, interactive response time gradually was slowing down.  The client was technically savvy as far as the hardware and operating system were concerned but didn't have much experience tuning Ingres.  They did the best they could but when performance continued to degrade, they called for help.

1. Identify the bottleneck

Most systems run fine when there is only one user.  It is when the tenth, hundredth, or thousandth user logs on that response time problems occur.  This is because the users are all contending for the same system resources.  A system resource may be a hardware resource (CPU, memory, disk, I/O channel, network wire), software resource (process scheduler, swapper, log writer, query optimizer, sorter), or data resource (file, database, table, page, row).  If one or more system resources are unable to satisfy the demand placed on them, they become a "bottleneck" for the system. 

The key to finding response time and throughput problems is identifying the bottlenecks.

There are two symptoms of a resource bottleneck:

  • Saturation.  The utilization of some resources, such as CPU or memory, can be measured in terms of "percent busy or allocated".  If a resource is 90% busy (i.e., less than 10% idle or available) over a given period, then it is likely a bottleneck.
  • Queuing.  Some resources can be shared (e.g., many users can read the same data page) while others cannot (e.g., a disk can only process one I/O request at a time).  Users desiring to allocate busy resources must wait their turn.  Process and session states indicate the resources for which users are waiting and thus point out bottlenecks.  For example, if many sessions are waiting for log file I/Os to complete, then the bottleneck is probably the transaction logging system (too few log buffers, slow or busy disk drive, etc.).


Hardware bottlenecks are usually the easiest to identify since most operating systems provide tools for monitoring resource utilization and process states (queuing). Monitoring the utilization and queuing of software and data resources is more difficult and requires specialized tools.  Fortunately, Ingres tools such as IPM and third-party tools such as DMT's DBAnalyzer provide access to the information required to identify Ingres bottlenecks.

Using DBAnalyzer and the VMS Monitor utility at the client site, several bottlenecks were identified. 

(Continued on page 4)

Frameworks

By Peter Barzen and Julie Tipton
Prophecy Americas Inc.

After completing the analysis and design specifications to meet the requirements of a transaction entry process, a seasoned IS professional provided a 40 person-day estimate to deliver the solution using a forms-based approach, another provided a 7 day estimate using an Object Oriented approach. A third suggested that it should be achievable in just 15 minutes using a Framework! What incredible gains.

What is an Object  Framework?

If you ask a dozen people " What is an Object Framework?", you will probably get a dozen different answers. For example:

  • A system that provides the ability to snap together applications
  • An environment to assemble components
  • A tool used in object assembly
  • Something that will let you integrate other systems 'xxx' compliant objects into your own system


What does an Object Framework deliver?

If you ask the question, "What does an Object  Framework deliver", you will generally get a set of consistent responses including:

  • Re-use
  • Timeliness
  • Robustness
  • Cost effectiveness



What Should a Framework De

(Continued on page 5)

previous.gif (4291 bytes)        next.gif (4312 bytes)