Home NextGenLaCrosse SystemCustomer AreaLa Crosse International
Computer Hardware & NetworkingContact InfoAbout La Crosse Management Systems
La Crosse Management Systems
banner1
LaCrosse Management Systems
Products and Key Features     News     Events    

 

White Paper

 

 

La Crosse Management Systems, Inc.

Performance Testing

May 2003

 

 

La Crosse Nextgen SQL Server Strategy

 

Abstract

 

For Nextgen™ installations with twenty or more users, La Crosse Management Systems, Inc. recommends a two-tier client/server arrangement, with separate drive channels and arrays for the OS, the application, the data files, and the log files.  Theory and real-world testing show best performance when configuring each channel with the RAID level suited to its respective task:  RAID 10 should be used for the database channels, while RAID 5 should be used for the application/OS channels.

 

1.0 Background

 

1.1 La Crosse Nextgen™ Background

Nextgen™ is a fully graphical, Windows-based application targeted to office equipment dealers and resellers.  Nextgen™ is developed using a modeling tool from Computer Associates International, Inc. called Advantage: Plex.  Plex allows for rapid development of client/server-based applications, which can be built to a variety of platforms.  La Crosse currently uses Plex to build Windows C++ server functions, MS SQL Server database objects, and Windows C++ client functions.

 

1.2 Client/Server or Two-Tier Architecture Background

Client/server or two-tier architecture divides the functions of an application between a powerful computer, known as a server, and many less powerful computers connected to it, known as clients.  In this model, the server handles database storage and access, while the clients handle the presentation of information for the user interface.  Application logic (the business rules that bring relationships and meaning to raw data, turning the data into useful information) can theoretically exist on both the client tier and the server tier.  In practice, the server tier typically handles the largest amount of the application logic/processing, with the clients handling only small pieces of logic such as basic input validation.  This idea describes the La Crosse Nextgen™ system well.

 

1.3 RAID Background

A Redundant Array of Independent (or Inexpensive) Disks, or RAID, provides a way to store data that can increase performance, provide redundancy, or both.  RAID can increase storage performance through striping – the act of dividing sequential data across multiple hard drives to spread the load and increase total throughput.  RAID can provide redundancy, or fault tolerance, through mirroring or parity.  Mirroring achieves redundancy through duplicating all writes to a second, backup drive – the “mirror.”  Parity achieves redundancy through computing checksums that can reconstruct data in the event of a lost drive.  Because writing data with parity information involves computations, it will always be a slower method to redundancy than mirroring.  RAID can be configured in many different levels, with each combining the options for performance and redundancy in its own unique way.  The most common RAID levels are 0, 1, 3, 5, and 10.  For the purposes of this discussion please note that the alias “RAID 10” is used to mean either a RAID 1+0 or RAID 0+1 configuration.  The differences between the 1+0 and 0+1 configurations are beyond the scope of this paper.  Both configurations are commonly referred to as RAID 10.

 

1.4 Database Management System Background

A DBMS combines the organization of data files; log files, data interfaces, monitoring tools, and security within a single application package.  A modern DBMS handles changes to data in a controlled, multi-step process involving logs to assure data integrity in case of disaster or system failure.  Updating, inserting, or deleting records results in a check on the validity of the change, a preliminary writing of an intention to change data to a log, the actual changing of the data files, and finally a confirmation that the data was successfully changed in the log.  As you can see, this is a very write-intensive process, divided between the log and the data files.  If the changes do not complete successfully or in their entirety, this process allows for an easy rollback to the pre-change state.

 

2.0 La Crosse Nextgen™ System Needs Assessment

 

2.1 The Application Logic Role of the Server

The Nextgen™ server will be running the Plex dispatch service, which acts as a “traffic cop” between the clients, the server application logic, and the DBMS.  The dispatch service takes requests from clients, calls the appropriate server functions, and passes information from the server functions back to the clients.  The calling and subsequent loading of the server functions is the primary disk-intensive task of this role, and it is always a read-only task.

 

2.2 The DBMS Role of the Server

After the appropriate server functions are called, but before these functions pass information back to the dispatcher, the server functions must retrieve data for processing or write data for storage, using the interfaces provided by the DBMS.  When using DBMS interfaces for data retrieval, the server is engaged in a read-only task.  However, when writing changes (inserting new records, changing existing records, deleting records) the server is engaged in read-write activity, with the activity very write-intensive towards the end.  As mentioned in section 1.4, records will be read to check the validity of the proposed change, and then records and entries will be written alternately to the log and data files.

 

3.0 RAID Level Explanations

 

3.1 RAID 0

RAID 0 uses disk striping with no redundancy.  It provides excellent performance.  Some people do not consider RAID 0 a “true” RAID because no redundancy is provided.

 

3.2 RAID 1

RAID 1 uses mirroring, the simplest way to achieve redundancy.  There are no performance benefits, as striping is not used.

 

3.3 RAID 3

RAID 3 uses striping for performance, and parity written to a dedicated drive for redundancy.  RAID 3 offers better performance than RAID 5 as block sizes increase.

 

3.4 RAID 5

RAID 5 also uses striping for performance and parity for redundancy.  However, RAID 5 also stripes its parity information across all available drives.  RAID 5 is excellent for smaller reading operations, but when writing larger blocks RAID 5 can be very slow.  When writing data, a RAID 5 controller must calculate how it will stripe the data itself, the parity information itself, and how it will stripe the parity information.

 

3.5 RAID 10

RAID 10 is a combination of RAID 0 and RAID 1 – where at least two disks are striped across, and at least two other disks are used as mirrors for redundancy.  Mirroring information for redundancy requires much less processing while writing than computing parity.  Striping provides excellent performance.

 

4.0 La Crosse Recommendations

 

4.1 RAID 5 for the OS and Application Channels

As mentioned in section 2.1, the application logic role of the server is primarily a read-only one in terms of disk usage.  A RAID level that offers striping for performance should be a primary concern, with redundancy a secondary concern.  RAID 5 and RAID 3 offer both at excellent cost.  RAID 5 handles the smaller reads associated with modern operating systems better.

 

4.2 RAID 10 for the Database Channels

As mentioned in section 2.2, the DBMS role of the server is very write-intensive.  The primary goal is to achieve the best write performance, while still maintaining redundancy.  RAID 10 fills this role perfectly.

 

The following links provide supporting information on RAID 10’s suitability for a DBMS:

4.3 Splitting of the DBMS Data and Log Files Between Two Separate Channels

Because the writing and logging of data in a DBMS are split between at least two separate files, and because these different writes happen so quickly as to be almost simultaneous, great performance gains are to be had by splitting the data and log files between their own separate channels.  This is very common in high performance DBMS arrangements.

 

4.4 General Channel Recommendations

In order of preference, but descending order of price:

4.4.1 Four RAID channels: one each for the OS, applications, DBMS data, DBMS log

4.4.2 Three RAID channels: one for the OS and applications, one each for the DBMS data and DBMS log

4.4.3 Two RAID channels: one for the OS and applications, one for the DBMS data and DBMS log

Note that running a multi-channel Storage Area Network (SAN) is often the easiest way to achieve these goals in terms of setup, maintenance, and cost assessment.

 

4.5 Hot-Swappable Drives

Hot-swappable drives are used to replace a failed drive within your array, without having to shut down the server. This requires supported hardware and software. This dramatically increases uptime for your server. For maximum uptime, La Crosse recommends all drive arrays contain hot-swappable hard drives.

 

4.6 True 100 Mb Connections to Full Clients

The connections from the server to the clients should not be overlooked, especially in the case of “full” clients (non-Terminal Server or non-Citrix arrangements).  La Crosse recommends true 100 Mb connections to all full clients.

 

5.0 Performance Benchmarks

 

The following are benchmarks La Crosse technical personnel have documented regarding this issue, as well as comments from clients operating Nextgen™ systems with RAID 10 drive arrays on their database volumes.

 

We benchmarked the following at a Nextgen™ customer site running a single RAID 5 array:

 

Invoiced a relatively complex contract

25 minutes

Refreshed the active call grid with 90 active calls

30 seconds

Refreshed the completed call grid with 15,755 completed calls

45 seconds

"Double clicked” from the service grid to change a service call

25 seconds

 

Following this test we transferred (with obvious permissions) the original customer’s database to a new Nextgen™ customer adhering to our published configurations.  We then went back to the original customer and executed an SQL trace for 5 minutes.  We were able to transfer the trace and execute it at the new customer’s site to simulate the database load of the original customer’s 65-user license.  While executing the trace we observed the following:

 

Invoiced a relatively complex contract

4 minutes

Refreshed the active call grid with 90 active calls

Essentially immediate

Refreshed the completed call grid with 15,755 completed calls

4 seconds

"Double clicked” from the service grid to change a service call

2 seconds

 

6.0 Customer Comments

 

Peter Casper - Office Technology Inc., Neenah, WI

“This box has a raid controller with 2 18 GB drives attached and is also attached to a SAN box via fiber. The internal drives are mirrored as are the boot (C:) drive containing only the operating system, SQL Server, antivirus, etc. On the SAN, we have a logical E: drive in a RAID 10 configuration that is dedicated to applications - Plex and NextGen, a logical F: drive in a RAID 10 configuration dedicated to SQL data files, and a logical G: drive in a RAID 10 configuration dedicated to SQL log files. This gives us the advantages mentioned in your white paper of splitting the I/O over essentially 4 separate controllers.

 

Another note, we had been hosting our GoldMine database on the SQL server also and last night I moved it to another SQL server because Goldmine was locking up for up to 5 minutes several times throughout the day. It's too early to tell if this solved the problem but I would be inclined to recommend putting other SQL apps on their own server anyway.  

 

The other thing that we did was replace our network infrastructure with new switches and new cat 5 cables to all of the direct attached workstations to ensure that they would communicate at 100Mb. This also included a 1Gb backbone between the servers. When this was completed, we noticed a dramatic increase in performance. For instance, a NextGen update used to take about 10 minutes per workstation and now it is usually done in under a minute.”

 

Mark Solomon - The Office Equipment Company, Rochester, NY

“Well what can I say?  It sounds good to me. It sounded good to me a year and a half ago when I built up the server.  It’s definitely the best configuration I've found for SQL.

 

Keep in mind that we ran SQL for our old system also, so in total we've been running SQL for about 4 years experience.”

 

Len Sandstrom - Wagers Business Systems, St. Paul, MN

“We have upgraded our Nextgen Servers to adhere to La Crosse specifications and I have documented our results.

 

Yes, speed has increased tremendously for our people.

 

The people that I did ask said it was many times faster for them. Sandy spends her time in parts doing inventory transfer. Denise spends her time in service closing tickets and billing. One of our service supervisors is also closing tickets.  All reported significant gains in productivity.

 

Our shipper who does order release writes the A/R Invoice Number on our order documents.  He used to write ARIN and wait and wait and wait for the number to be displayed before he could move on.  Now by the time he writes ARIN, the number is displayed.  This is all great news.  

 

Plex hasn't been a problem since we put the new server on line, so the performance of our new server is keeping the Plex service from halting.

 

This was obviously worth the investment."

 

 

La Crosse Management Systems’ published hardware specifications and configurations are available here:



Copyright © 2005. La Crosse Management Systems, Inc. All rights reserved.
All trademarks and trade names mentioned herein are the property of their respective owners.




la crosse system | computer hardware | nextgen | customer area | la crosse international | contact info & links