Databases Reference
In-Depth Information
The N 2 Effect by Processor Type
Table 6.2
6.5 Use in OLTP Systems
Shared-nothing systems have been shown to produce tremendous scaling results when
the online transaction processing (OLTP) applications can be partitioned. There's a very
subtle change in the language “application partitioning.” Earlier in this chapter we dis-
cussed partitioning data on the server, but said nothing about the application. In the
case of OLTP transactions, the individual statement execution time is very short, and
the system load comes from the very high volume of concurrent transactions on the
server. In this case, the overhead of connecting to a given server and then broadcasting
requests to multiple nodes in order to find the required records, then flowing these
result sets back to a central node and so on, is far too much overhead per transaction. As
a result, applications that run efficiently on a single server, typically run worse on a
shared-nothing server if the application is moved to a shared-nothing server without
further modifications. However, the solution to this problem is to modify the applica-
tion so that the application connects to the node that holds the data required for the
request. This can only be done if two of the following three requirements are met:
1.
The data is partitioned by a column (or set of columns) that the application will
have values for at query time.
2.
If the application has access to the hashing function used by the database server
to distribute data to the correct partition.
3.
Data can be partitioned to provide excellent collocation, avoiding interserver
communication during joins.
Table 6.3
Scale of the Firestorm Benchmark
Search WWH ::




Custom Search