Andrew Holdsworth Director, Real World Performance Oracle Corporation Aris Prassinos Distinguished Member of Technical Staff Motorola James Haluska Systems Engineering Manager Motorola High Performance with Oracle Database on Linux 10g on Linux at Motorola Biometrics Business Unit Topics • • • • • Introduction to Motorola’s application Application and database metrics Software stack Server and storage choices Standardizing on 10g: features of interest to Motorola • Best practices for high performance with 10g on Linux Motorola Printrak BIS • The Printrak Biometrics Identification Solution (BIS) is an integrated suite of applications implemented by the Motorola Biometrics Business Unit that allow for the capture, processing, search and storage of fingerprints, palmprints, facial images and other biometric data. • Motorola develops and remotely manages Biometrics Identification Systems for its customers. Motorola Printrak BIS Data • BIS databases store a variety of data • • • • • Fingerprints, palmprints, facial images Signatures Text descriptions of persons fingerprinted Customer business process workflows Also support storing documents such as job applications and criminal investigation reports Motorola Printrak BIS Sample Screen Example BIS Deployment • Used by a foreign country to provide biometric identification supporting: • • production of new civilian identification documents for all citizens identification of criminals by law enforcement agencies • System stores two types of biometric data: • • Civil: index fingerprints and one front facial image Criminal: tenprint, palm, latent (crime scene) and up to ten facial images • Biometric data is submitted for a one-to-many search where the images are compared against some or all of the existing images in the database. • 1500 remote fingerprint and mugshot capture stations. Application Metrics Hourly Throughput Submission Type Submissions / hr Tenprint + 4-Finger / Thumb slaps Latent 2-Finger Palm Latent Palm Facial Image Size 187 700K (WSQ) 19 307K (PGM) 1875 2 X 45K (WSQ) 187 620K (WSQ) 19 307K (PGM) 300 59K (JPEG) Database size: 6TB BIS Software Stack • J2EE Architecture • Developed on Oracle8i on HP Tru64 • Now standardized on Oracle Database 10g on Red Hat Enterprise Linux 3.0 (i.e., Advanced Server) on Intel (Itanium or Xeon) • Database editions used: • Standard Edition One (SE 1) for most deployments • Enterprise Edition (EE), no Partitioning, when EE features required, e.g., Advanced Replication • EE with Partitioning when necessary for performance BIS Deployments: Current Server Choices •Large Systems (> 4 TB) •HP Integrity rx2600 •Dual Itanium 2 1.4 GHz •1.5 MB L3 cache •3 GB RAM •Medium Systems (1-4 TB) •HP Integrity rx2600 •Single Itanium 2 1.4 GHz •1.5 MB L3 cache •3 GB RAM •Small Systems (< 1 TB) •HP Proliant DL380 G4 •Single Xeon 3.4 GHz •1 MB L3 cache •3 GB RAM BIS Deployments: Storage • Direct attached PCI-SCSI RAID with HP SmartArray 5304 Controller • 256 MB battery backed write back cache • ext3 file system • RAID5 for datafiles • Three dedicated RAID1 arrays for redo logs 1 and 2 as well as archived logs • 128 MB stripe size • Stripe and Mirror Everything (SAME) not used; workload is read intensive and the chosen configuration gave good performance at a lower price 10g Features Critical to BIS • LOBs: primary data storage technology • Java Stored Procedures: for enhancing the capabilities of Motorola’s workflow engine • Text: for searching inside documents • XDB: for managing XML data • Advanced Replication: for redundancy Database Configuration for BIS • Locally managed tablespaces with automatic segment space management • Multiple block sizes (16K for LOB tablespaces, 8K for others) • Automatic undo management • Automatic shared memory management • Automatic PGA memory management • Fast start checkpointing • Automatic statistics collection • Async I/O with one DBWR per CPU and no I/O slaves • Hash partitioning for high throughput Lessons Learned • Participation in the 10g Beta Program gave a headstart in incorporating new features • 10.1.0.2 was very high quality; didn’t have to wait for a patchset • Self-managing features allowed for high performance on low-end servers without excessive tuning • Very happy with performance improvements in LOBs in 10g • Only wish Itanium releases didn’t lag other releases • Overall: moving to Linux went very smoothly! Best Practices for 10g on Linux • Run RHEL 3.0, SuSE 8 or equivalent, or higher • • • Scales better for SMPs I/O scaling much improved Fewer limitations on number of I/O devices • Configure I/O appropriately • • Ensure HBAs, switches and arrays are in balance with CPUs For DSS applications, have at least 2 GB/s of I/O bandwidth for every 4 Intel (Xeon or Itanium) CPUs • Turn on Async I/O • Be aware of backplane limitations on cheap servers • 64-bit is not always better; analyze the pros and cons of 32-bit