Monday, September 29, 2008

Fastest Database machine

The Oracle Exadata server is claimed to be the fastest hardware capable of running Oracle databases. The machine is developerd by HP and Oracle and is specially tuned to run Oracle databases. Oracle states the following: "Exadata delivers outstanding I/O and SQL processing performance for data warehousing applications by leveraging a massively parallel architecture to enable a dynamic storage grid for Oracle Database 11g deployments."

According to Oracle the main problem with current architectures is that they are unaware of the fact that they are housing a database. When having, for example a hundred terabyte plus, database this will reside on a large amount of disks which are coupled to your server(s) via Host Bus Adapters to your storage area network. The way traditional HBA's are handling the IO load is not optimal for a very large datasets. The Exadata server makes use of a massively parallel architecture to enable more pipes, also the pipes are made wider to transport more data. Also the storage part is SQL aware and will only 'ship' the data needed by the requesting SQL statement. Those improvements will provide a architecture in which you pipes are not filled with data you do not need and the system van make use of more and wider pipes to the server so you will lose the bottlenecks of I/O in your architecture.

The Exadata server makes use of InfiniBand interconnect to connect the storage to the server. You can check the InfinBand speeds on this wiki page. InfiniBand is a switched fabric communications link primarily used in high-performance computing. Its features include quality of service and failover, and it is designed to be scalable. The InfiniBand architecture specification defines a connection between processor nodes and high performance I/O nodes such as storage devices. It is a superset of the Virtual Interface Architecture.

Oracle and HP have chosen to make the ExaData solution robust by making use of disk mirroring provided via Automatic Storage Management (ASM), and hot swappable Exadata disks, ensure the database can tolerate the failure of individual disk drives. Data is mirrored across cells to ensure that the failure of a cell will not cause loss of data, or inhibit data accessibility. This massively parallel architecture delivers unbounded scalability and high availability.

The SQL processing optimization is done by function shipping of SQL statements. A statement is offloaded from the database server tier and shipped to the storage tier. By doing this the CPU time is not used on the database server, the statement is executed on the storage tier and only the result is shipped back to the database server. Meaning a where statement is executed on the storage tier and only the filtered results are send back. In a traditional way all the data would be send to the database server and the filtering would be done on the database server. By working like this you will have less CPU time on the database server which enables the database to handle more calls and there will be less raw data-traffic.

By doing this online transaction processing and real-time query operations on life data sets will have a huge benefit. Because you will have more than one 'cell'/ 'storage bay' with its own CPU and all the disks in a cell will work in parallel you will be able to run large numbers of very complex queries without having to compromise on the performance of your system. To make optimal use of the ExaData architecture a Oracle 11g database should be used.

Oracle database 11G is equipped with iDB in the kernel. iDB stands for the Intelligent Database protocol and is build on the industry standard Reliable Datagram Sockets protocol RDSv3. The protocol runs over InfiniBand. ZDP (Zero-loss Zero-copy Datagram Protocol), a zero-copy implementation of RDS is used to eliminate unnecessary copying of blocks. Multiple network interfaces can be used on the database servers and Exadata cells. This is an extremely fast low-latency protocol that minimizes the number of data copies required to service I/O operations. iDB is used to ship SQL operations down to the Exadata cells for execution and to return query result sets to the database kernel. Instead of returning database blocks.

Reliable Datagram Sockets is a open standard under GPL license and is maintained by The OpenFabrics Alliance. Oracle is running a couple of projects on RDS, for example you can check this oss.oracle.com site on the performance and testing results of RDS.

1 comment:

SQL-Doctor said...

I think you mean Sun not HP as Oracle's partner in Exadata.