Category Archives: architecture
Below is the definition of these two terms and the difference between them
Raw speed of your application in terms of a single user. How long does a single application-level operation take?
When we talk about performance of an operation such as clicking on the confirm button for booking a flight ticket, we are interested in the end-to-end time required to complete that operation. In other words, the clock starts ticking when the user clicks the button and stops ticking when the user sees the information delivered.
The challenge to deal with large audiences and high demand is termed as the problem of scalabilty. More specifically, we say that a Web appli cation can scale if it continues to be available and functional at consistent speeds as the number of users and requests continues to grow, even to very high numbers. Note that this definition has nothing to do with performance. As long as a slow application continues to provide consistent performance in the wake of rising demand, it is classified as scalable!
Although scalability is commonly defined strictly as a measurement of resiliency under ever-increasing user load, nobody expects a single instance of an application server on a single machine to accommodate millions of users. Often people consider how well an application can scale up” by describing how effective it is to add resources, such as more CPUs, more memory, or more disks. An application is considered to scale up well if it requires additional resources at a low rate.
I came through this interesting video where Andres Kutt as a architect at Skype talks about his learnings while being a part of the architecture team. His presentation is categorized in two sections – technical and non technical learnings. He starts off mentioning that non-technical learnings are more important then technical ones :). Some of the highlights are
The Data Access Handbook explains two major reasons a database driver can degrade the performance.
- The architecture of the driver is not optimal.
- The driver is not tunable. It does not have runtime performance tuning options that allow you to configure the driver for optimal performance. The type of options that we are talking about are ones that you can adjust to match your application and environment. For example, if your application retrieves large objects, look for a driver option that allows you to configure how much active memory the driver uses to cache a large object.
This post details on the different database driver architectures.
Four distinct architectures exist for database drivers: bridge, client-based, database wire protocol, and independent protocol. Choose a database driver that is implemented with an architecture that provides the best performance for your application.