Home > Patterns and Practices > Transaction Cost Analysis

Transaction Cost Analysis

In one of the interviews I was asked about Transaction Cost Analysis
I decided to dig about it a bit. Googling a little led to this article (in the context of Commerce Server):
 
These were the steps outlined:
 

Compile a User Profile

Measure the Cost of Each Operation

Estimate Site Capacity

Calculate Site Capacity

Verify Site Capacity

 
It looks like a more structured way of what we were doing ad hoc in an earlier project.
We used to get IIS logs from the client which used to give an idea of the load and the usage patterns of a client (which is called user profile here).
 
Here’s what we used to do on the App Server side:
  • Use Microsoft Application Cener Test (ACT) to simulate this load on the dev servers
  • Measure the response times & resource utilization using performance counters, ACT API.
  • Find the optimum load under which response times are acceptable and beyond which response time / throughput degrades.
  • This is typically what load the server can handle. At this point we need to add further servers if we need to handle more load and need to keep response times within available limits.
  • Some amount of extrapolation needs to be done using the data to match this dev environment with the production environment. (This is something which was not scientific about what we used to do, I dont know how this is done usually).
  • ACT is really a powerful tool when it comes to simulating user loads.
  • These ACT scripts can be used to verify if the system will survive the guillotine in production.
I dont how DB servers are sized using this? Of course performance counters on the DB Server while the ACT scripts is being played will help. But beyond that I dont really know hwo this is done on the DB server side.
 
May be we were doing the most of it, but I didn’t know that this is TCA / Capacity Planning. Next time I’ll be able to put this into words in a better way. A definite learning.
 
Capacity Planning is what i just described above.
Sizing is doing this in the earlier stages of the project, when we really dont have the working system.
 
Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: