Exadata – Offloading / Smart Scan
One of the major features of Exadata is the ability to offload processing to a CellServer also referred to as Smart Scan.
Generally offloading/SmartScan is accomplished with three sub-features:
- Column Projection – filtering out on the cell server side only the columns that are specified in the SQL statement. With non-Exadata complete blocks are read from the database server which can include data that is not in the SQL statement.
- Predicate Filtering – filter on the cell server side only the rows that match the where clause predicates to the database server side.
- Storage Indexes – Reduce the amount of disk IO performed on the cell server side by using – in memory – storage indices. Note: this does not reduce the amount of data transferred from cell server to DB server – but can greatly reduce disk IOs and hence elapsed time.
Note: the first two – column projection and predicate filtering reduce the amount of data returned from the Cell Server to the DB server – and as a result can offload to the cell server some CPU consumption as well.
The interface between the DB Server and the Cell Server?
Oracle invented a protocol and set of processes they refer to as iDB without going into the details of the processes involved the underlying protocol and hardware used to get to cell servers talking to the DB servers and vice versa is bonded Infiniband with RDS.
Basically – RDS is Remote Datagram Sockets – a protocol that executes with very little OS overhead and little to no kernel involvement.
At the time of this writing I believe the limit is 72Gb/second per bonded pair of Infiniband interfaces.