How does Exadata Smart Scan work at hardware level?
To understand Smart Scan at the hardware level, you have to look at how data physically moves from a disk platter or flash cell to the CPU.
In a traditional server, the bottleneck is the "Data Funnel." You have massive storage, but a narrow pipe (the network) and a busy brain (the Database CPU). Smart Scan flips this by turning the storage itself into a distributed processor.
Here is the hardware-level breakdown of how a Smart Scan executes.
When a Database Server node determines a query is a "Large Full Table Scan," it doesn't request blocks of data (the traditional way). Instead, it sends a small metadata packet over the 100Gbps RoCE network to the Storage Cells.
This packet contains:
The SQL query's WHERE clause (predicates).
The specific columns needed (SELECT list).
The mapping of which physical blocks to check.
Once the Storage Cell receives this instruction, its own dedicated Xeon or AMD CPUs take over.
Before touching the disk, the Cell CPU checks the Storage Index stored in its local RAM. This index tracks the minimum and maximum values of columns in 1MB chunks of data.
Hardware Save: If your query asks for Year = 2024 and the Storage Index says a 1MB chunk only contains 2010-2015, the hardware never even powers on the read head for that chunk. This is called I/O Pruning.
For the data it does need, the Cell's integrated controllers pull data from the NVMe Flash or SAS Disks into the Cell's local memory (DRAM). Because there are many Storage Cells in a rack, this happens in massive parallel across dozens of flash controllers simultaneously.
If the data is compressed using Hybrid Columnar Compression (HCC), the Storage Cell's CPUs handle the decompression right there in the cell's RAM. This prevents the Database Server's CPUs from wasting cycles unzipping data.
This is where the "Smart" happens. The Storage Cell CPU scans the raw data now sitting in its memory:
Row Filtering: It evaluates the WHERE clause. If a row doesn't match, it is dropped immediately.
Column Projection: It strips away any columns you didn't ask for. If your table has 200 columns but you only asked for Name and Balance, the other 198 columns are discarded in the Cell's RAM.
Instead of sending a 1GB block of raw table data over the network, the Storage Cell sends back only the filtered result set.
Traditional Hardware: Sends 1,000,000 rows $\rightarrow$ Database Server filters $\rightarrow$ 10 rows kept. (High Network Traffic)
Exadata Hardware: Storage Cell filters 1,000,000 rows $\rightarrow$ Sends only 10 rows. (Low Network Traffic)
| Feature | Traditional Storage (SAN/NAS) | Exadata Smart Scan |
| Processing Location | Database Server CPU only | Distributed across Storage CPUs |
| Network Traffic | High (Entire blocks sent) | Low (Only result rows sent) |
| I/O Efficiency | Reads every requested block | Skips blocks via Storage Indexes |
| Data Format | Raw blocks | Database-aware rows/columns |
At the hardware level, Smart Scan works by decentralizing the CPU workload. It utilizes the idle processing power of your storage servers to act as a "pre-filter." This ensures that the high-speed RoCE network and the Database Server CPUs are only handling data that actually matters to your application.