4. How does it look like? (part 2)
Source: http://oraclefromguatemala.blogspot.ro/2013/04/lossaboresycoloresdeoracleexadata.html
S
S S
S
DB DB DB
DB
X28 Full
Rack
5. How does it look like? (part 3)
The Exadata rack, available at SCC.
Oracle 11.2
3 cell/storage servers
2 DB servers
Eth + IB switches
+ KVM
Just a quarter RAC!
14. What’s Wrong on Non-Exadata?
HDD
SAN
NAS
ORACLE Instance IO Subsystem
IO traffic
Optimization?
1. Bigger pipe
2. Less IO traffic
15. Exadata Architecture – The Big Picture
Cell Server 1 Cell Server 2 Cell Server 3
DB Server1 DB Server2
iDB / RDS
Oracle Linux
Oracle 11.2
ASM
Oracle Linux
cellsrv
DB side
Storage side
17. DEMO 1 - Magic Switch: ON/OFF
640mil rows
Magic OFF
Magic ON
select count(*) from vanzari
where valoare < 100;
cell_offload_processing
~10x
faster
18. Smart Scan Magic
DB Node
Cell Node 1 Cell Node 2 Cell Node 3
select sum(valoare)
from vanzari where
tara = ‘RO’;
ASM
IDB protocol
Get blocks from
VANZARI
Info about the
query.
Direct path read?
Column projection
Predicate filtering
Storage indexes
Filtereddata
19. Column Projection
● Instead of returning whole Oracle blocks, the storage layer
will pump in just the needed column values.
● The IO traffic is reduced.
● For JOINs, besides columns from the SELECT list, the ones
from the join are also transferred.
YES, “SELECT *” when just some columns are
needed isn’t a good idea on Exadata too!
21. Predicate Filtering
● Instead of pushing full Oracle blocks from the storage to the
Oracle instance, only those records matching the predicate
will be pumped in to the wire.
● The IO traffic is reduced (the filtering is done on the storage
side)
● Does work for joins too using bloom filters, but on the storge
servers.
22. Storage Indexes Explained
VANZARI
table
1MB 1MB
1MB1MB1MB1MB1MB1MB 1MB
1MB1MB1MB1MB1MB
1MB 1MB 1MB1MB1MB1MB1MB
min max min max
Storage 1
Storage 2
Storage 3
select count(*)
from vanzari where
vanzari <= 1000;
Perfect for:
=, <, >, BETWEEN,
<=, >=, IN,
IS NULL, IS NOT NULL
24. Do You Want to Drop all DB Indexes?
Think twice!
● There are many scenarios where SI can’t be used (e.g.
get the MIN or MAX for a column)
● SI is a transient in-memory structure. Restart a storage
server and you lost all storage indexes on that server
● The decision to create a SI is fully automated and it
depends on the workload.
● A SI can’t be used to enforce a PK constraint
● SI are limited to only 8 columns/table
● No integration between SI and CBO
● There’s no such thing as functional SI.
● A SI can’t be used for FK columns to avoid locking
issues
28. HCC: Hybrid Columnar Compression
Compression
Type
Description Expected
Ratio
QUERY LOW LZA compression algorithm. Low CPU
and low compression.
4x
QUERY HIGH ZLIB (gzip) compression. 6x
ARCHIVE LOW ZLIB (gzip) but with a higher
compression level.
7x
ARCHIVE HIGH BZIP2 compression. CPU intensive,
high compression rate.
12x
29. HCC Pitfalls
● Only tables can be compressed. Indexes are not included.
● Exadata inter-operability only. Pay attention when restoring
HCC data on a non-exadata machine..
● Not good for OLTP.
● May consume a lot of CPU (for compression, but for de-
compression too).
● It’s not a true columnar model, so wasn’t really designed
having the performance idea in mind
31. IO Resource Manager
● Tight integration with Database Resource Manager
● Provides IO prioritization
● Can be enforced across different databases hosted on the
same Exadata machine
● A very important component for consolidated/shared
architectures
● In old versions of Exadata, only physical disks were
managed by IORM. Flash disks were not handled by IORM.
However, this is not true starting with 11.2.3.3.0.
● Workload optimization: low_latency, high_throughput,
balanced, auto
35. Things I don’t Like
● The Exadata official documentation was not public
accessible. It’s fixed now via a patch: Patch 10386736:
Storage Application for the Grid Environment 11.2.3.2.0 for
Linux x86-64 - DOCUMENTATION FOR EXADATA 11.2
● It’s a closed engineered product. However, according to Kevin
Closson, Exadata was originally intended to be an open
hardware stack.
● The lack of good integration of CBO with Exadata storage
(Bug 10248538: OPTIMIZER COST MODEL NOT EXADATA-
AWARE)
● Big room for performance instability (storage indexes, flash
cache, direct path read etc.)
● The huge price