Real World Performance, Exadata Storage & ACE Session…

Today was a very full day…

Real-World Database Performance Techniques and Methods
Real-World Database Performance Roundtable

I went to the primer session on Tuesday and both sessions today. I don’t think there was anything particularly new to me here, but listening to the experiences of a team like that helps you crystallize things in your mind. The three sessions were well presented and the last session, which was a Q&A session, through up a few interesting things.

Take-home messages in no particular order:

  • It all boils down to the SQL and the cardinality of the steps in the execution plan. If the optimizer gets the correct cardinality for each step it should make the correct decision. If it doesn’t it will make a bad decision. When you spot a problem SQL you need to find out why it make that bad decision.
  • Debug methodically. If only a fraction of your SQL performs badly, making global changes to the database is a very bad idea. Fix the problems, don’t tamper with the whole system.
  • You have to decide if your aim is to have predictable execution plans or to let execution plans evolve over time. Either choice comes with issues. To make plans predictable, use SQL Profiles, hints, check high/low values, avoid histograms and don’t be too quick to gather new stats. If you want plans to evolve, gather stats regularly and accept that plans will change over time. Identify poorly performing SQL when it arises and figure out why it is going wrong.
  • Tune 3rd party apps, and Oracle Apps the way the vendor recommends, even if it doesn’t make sense to you. Some applications are quite fussy and doing what you think is correct may be the wrong move.
  • Your aim should be to spread I/O evenly across all disks. ASM will do this for you.
  • In Oracle 11g, you should gather statistics with the auto sample size, unless you know of a specific reason not to. Don’t make random decisions on sample size.
  • The team always use 8K block sizes because that’s what the majority of the database testing is done against and what the majority of people use.
  • Partitioning: Global stats tend to give predictable execution plans, but that’s not always a good thing. Partition stats give a more accurate picture, but won’t always result in predictable execution plans. You have to decide which you want.
  • High/low values are important stats. Don’t default to extreme values that make high/low values unrepresentative as this affects the optimizer.

There’s a lot of information in the slides, so check them out when they come online. The main message is you should be methodical and consistent. Nothing new in that. ๐Ÿ™‚

Oracle’s New Database Accelerator: Query Processing Revolutionized
Oracle’s New Database Accelerator: A Technical Overview

These two sessions were renamed to include the Exadata name. I didn’t record the new names, but I guess that will be obvious when you see the list of presentations.

Take-home messages:

  • The exadata storage server is also known as a storage cell.
  • You can buy the storage cells on their own and use them to build your own database system, or buy the preconfigured database machine.
  • The system is only supported on Linux at the moment, but other platforms will follow. I assume this means databases on other platforms plugging into the same Linux storage appliances.
  • The storage cells are single purpose. They are for holding database files only. If you want a shared filesystem for any other file types you need to use something else. So you guys who want to use it to store MP3s and pr0n better store it in BLOBs in the database. ๐Ÿ™‚
  • The iDB protocol (like iSCSI) presents storage to ASM. No OS config (LUNs mount points) is necessary. At its simplest, you can consider each storage cell as a single disk when viewed from ASM.
  • Storage cells don’t talk to each other, only to the database. The cells are aware of the database state and the database knows about the cells because of ASM.
  • Multiple databases can use the same storage cell.
  • The storage is presented to the database as shared-everything, but it has elements of shared-nothing architecture. Because the presentation to the database is unchanged, it is suitable for use with any existing application without change.
  • There is an EM plugin and several tools, but for the most part it needs no management. It is essentially a storage appliance (their words), but it can do some clever stuff.
  • Because of the presentation of storage cells to ASM, adding new storage cells is like adding disks. It triggers an ASM rebalance.
  • Normal ASM mirroring (2 or 3-way) is present, but it makes sure it mirrors to different cells, not just different disks in a cell, so it can tolerate a disk or a cell failure.
  • The storage cells should not need a software upgrade to work with new versions of Oracle, but if new offload features require changes, you may be restricting the offload functionality by not upgrading the cell server software. This was likended to the ASM compatibility modes in 11g.
  • Resource management information is passed from the database to the storage cells so I/O is prioritized to match the database resource management.
  • When you offload processing to the storage cell, only the relevant column information is returned. As a result, this won’t be stored in the buffer cache, but it is possible to cache it in the SQL result cache.
  • Up to 6 of the prebuilt database machines can fit together by just cabling them. You only need to worry about extra infiniband switches if you want more than 6. I can see this being a big problem for me… Not! ๐Ÿ™‚
  • It is designed for intensive query work, like warehouses. The performance of insert, update and delete operations is just like any other block storage device. That’s what the guy said, but I guess it was a glib statement. I would assume it is still faster than most storage devices due to the wicked network bandwidth.

This list represents many of the points made in the two talks, but I’ve started to read some of the stuff on Kevin Closson‘s blog, and the related links and it’s making me a bit nervous about my random ramblings. I’m going to leave this list here to remind me of what I heard, but you really need to check out the white papers.

There were some neat slides explaining the cell server software and the way the project evolved.

The biggest surprise to me was how few people were actually at these sessions. I blogged previously to say I was underwhelmed by the announcement, but I was still curious. It seems not many other people were. ๐Ÿ™

After hearing a bit more about the kit I can see why some people are really excited by it. It is very clever, but I still think it is pretty irrelevant to grunt DBA/Developers like me. Of course, I reserve the right to get excited by it at a later date and back track on all my cynical rantings. When they are in the bargain section at PC World I will race to the shop to buy one, but until then I guess I’ll be stuck with crappy old disks. ๐Ÿ™‚

Oracle ACE Director Birds-of-a-Feather Tips and Techniques Panel

This was my only real job at OpenWorld and I was pretty nervous going in to it. When you present a formal session you are talking about a specific area and you have an idea of what questions might come up. Sitting on a panel without access to Google and no time to compose your thoughts is a whole different ball game. Luckily the verbal diahorea gene that runs in my family was expressed in full effect and I managed to do more than my fair share of talking. Thanks to Lewis for setting this up. Thanks to the other guys on the panel for answering the questions that would have stumped this chump. Most of all thanks to the attendees for turning up and asking questions. I hope you got something out of it. ๐Ÿ™‚

I think I’ll let the events of the last few days sink in, then write a summing up post tomorrow.

Cheers

Tim…

Oracle Keynote Aftermath…

I think I’m in the minority when I say I was a little underwhelmed by the keynote yesterday. I’m sure there are many positive points about Oracle Exadata Storage and HP Oracle Database Machine, but it all seems a little irrelevant to me. I hear what Kevin Closson is saying and it sounds cool, but for me this is like discussing the merrits of a Lamborghini when I’m actually going to buy a Renault Clio.

I guess only time will tell how this will affect a grunt DBA/Developer like myself…

Cheers

Tim…

Tuesday at OpenWorld…

Despite feeling under the weather I managed to get in a pretty full day…

Oracle VM Scalability and Manageability with HP

Takehome messages:

  • Paravirtualization (PVM) works at near base hardware speed.
  • Hardware virtualization (HVM) is significantly slower than paravirtualization.
  • HVM can have up to 8 LUNs, while PVM can have up to 26 LUNs.
  • Oracle VM scales well. In the test shown, 5 VMs give better throughput than 1 large VM.
  • Live migration speed is dependent on the size of the SGA, how quickly its contents are dirtied and the speed of your network.

Deploying High Availability in Virtualized Environments with Oracle VM

Takehome messages:

  • Do any NIC binding and multipath configuration in Dom0 so it is available for all VMs on the server.
  • Clustered active/passive with automatic failover can be configured using Oracle clusterware.
  • Deploy servers in pools, each pool having a master. The VMs are not affected by the VM Manager being down as the master servers can still communicate.
  • OVM 2.1.2 can now have VM Manger database on an external server, not on the OVM Server box.

Some of this talk passed me by as it was dealing with such large amounts of hardware I was starting to get server-envy. ๐Ÿ™‚

Current Trends in Real-World Database Performance

This session was an introduction to the two session I’m down to see on Thursday. Nothing new hear, really just a primer. Even so, it was easy listening.

Top 10 Things You Wanted to Know About Automatic Storage Management but Were Afraid to Ask

I don’t use ASM much, so I expected there to be some new stuff here for me. As it happened, the session was a basic primer. It seemed to go down quite well with the audience, many of who I expect are just venturing into the world of ASM. I suppose I should have written down the 10 things so I could post them, but I couldn’t be bothered. I don’t think anything was mentioned that was not already in my 10g and 11g ASM articles. There are also some whitepapers on OTN.

That was it for the talks…

I bumped into Slavik Markovich of Sentrigo towards the end of the day. He used his Jesus phone to get me directions to the Oracle ACE dinner. Nice one!

I was a bit late for the Oracle ACE dinner, but I was glad I made it. It was a good night and I got to talk to a few new people. Big thanks to the ACE program for making the effort!

Cheers

Tim…

Cancelled my Unconference session…

I’ve decided to pull out of my unconference session. The main reason for this is I started to feel a little unwell last night. I got back to the hotel at 19:00, threw up and went straight to bed. I was hoping it was just because I was over-tired, but this morning I have a runny nose and dodgy throat. I’m now on Theraflu, which is similar to Lemsip, and I’m going to play it by ear today. If I feel rough I will head back to the hotel early.

The events, or lack of, last night meant I missed the OTN Night and InstallFest. I’m not sure if I will be up to this evenings stuff. I guess we’ll see.

I place the blame firmly on the recycled air in the aeroplane and the number of people I’ve shaken hands with. ๐Ÿ™‚ I’m going to stop touching people… ๐Ÿ™‚

Cheers

Tim…

Oracle, Open Source and Virtualization…

Due to other commitments, I only made it to 2 presentations today…

Executive Panel: Oracle and Open Source:

The session was a seeded question and answer session to highlight Oracles commitment to “Free” software downloads, Open Source and Open Standards. If you follow the subject areas, I guess you know the score. The standout points for me were:

  • InnoDB and BerkeleyDB are have continued investment.
  • The linux kernel community is really happy with the work being done by Oracle. Oracle are not considered an evil empire by the inner circle.
  • The new Windows drivers for Oracle VM are currently in use within Oracle. No fixed release date, but they are on their way, so Windows performance under Oracle VM should improve when this is released. The were expected some time ago, but Microsoft have revised a bunch of APIs, so they had to be rewritten.
  • Oracle VM has supported Live Migration of VMs since it was released, but this is a manual process. Something similar to VMwares automated VMotion will be introduced at some point, but it will probably be under the control of Enterprise Manager/Grid Control, not part of the Oracle VM product itself. The impression I got was that this is a feature they want, not one that is in development, so don’t hold your breath.
  • Oracle are continuing to invest in a variety of Open Source products and Open Standards. Obviously they have their own interests at heart, but being open source means it is helping the Open Source community generally. If Linux get’s better, Oracle benefit, but so does everyone else.

Oracle Database in a server virtualization environment

A general run through current support/certification of virtualization by Oracle. Standout points include:

  • In addition to Oracle VM, Oracle support a variety of hardware partitioning and OS partioning methods provided by the big UNIX vendors. There was a URL of a certification matrix on OTN, but I can’t find it now. ๐Ÿ™
  • Oracle support dynamic resource configuration in single instance databases. So you can alter the number of CPU’s and amount of memory allocated to a VM and Oracle will notice and work with it. Some of this was possible since 9i, but there were issues. It’s now solid for 10.2.0.4 (+ patches) and 11.1.0.7.
  • Oracle support RAC on Oracle VM, but the configuration is quite limited at the moment. The RAC must be 10.2.0.4 on OEL 5.1 or above and be running on OVM 2.1.2. In addiiton it must be paravirtualized and is only supported in static mode, so there are no dynamic changes to CPU or memory and no live migrations. I assume over time some of these restrictions will be lifted and 11g support will be added.

As far as best practices go, I guess most of it was pretty standard:

  • Don’t overcommit resources. You can’t expect good performance if you have 1 core running 5 VMs.
  • Standard CPU, memory, I/O and network sizing/thoughout considerations still apply.
  • RAC should use dedicated NICs, not shared ones.
  • NIC bonding best done at hypervisor level (Dom0), not at the VM level.
  • All VMs, especially RAC, need time synchronization (NTP).
  • Use native physical devices and multipath or NFS. This will perform much better than virtual disks.
  • Oracle still recommend consolidation of databases, rather than many small databases/instances. Only split things into multiple VMs, database or instances when it is necessary, otherwise you are wasting resources.
  • Expected performance will depend on platform, application type, workload type and resource allocation.

The licensing issue will no doubt catch many people out. Oracle doesn’t recognize software virtualizations ability to limit processing to specifc processors or cores, so by default you must license the Oracle software for all cores on the system when using software virtualization. Those platforms which support hard partitioning (big UNIX vendors) can use per-core licensing. If you plan on using a server just for VMs running the database, this is fine, but if you want to run half database and half app server you will be buying double the CPU licenses that you are using. Bummer. ๐Ÿ™

Update: A talk this morning says pinning the VMs to specifc cores is within the spirit of the licensing agreement. Nice to see a consistent message… Not! ๐Ÿ™‚

Cheers

Tim…

OpenWorld Unconference Session…

Update: I had to change the time slot… ๐Ÿ™‚

I’ve signed up to do an Unconference session on Wednesday 10:00 in Overlook C. The session is called, “Virtualization: What is it and why should you care?

It will be about 30 minutes presentation, then a discussion. It’s an overview session and not product-specific. Hopefully it will generate some interest. ๐Ÿ™‚

Cheers

Tim…

Oracle ACE Directors Meeting…

Today was the Oracle ACE Directors meeting from 10:00-16:00.

Database:

As far as the database was concerned, I was hoping we would get a sneak preview of the much hailed “Big Announcement” planned for Larry Ellison’s keynote speech on Wednesday. Unfortunately all attempts to draw something out of Mark Townsend resulted in phrases like, “Wait until Wednesday!”

This is certainly increasing the intensity of speculation. I just hope it lives up to the hype. At least it’s hype about the database I suppose. ๐Ÿ™‚

There wasn’t much on a technical level I’ve not already covered as part of my 11g OCP notes, but there were a few things that helped me understand the bigger picture of what Oracle 11g is trying to achieve. It just puts things into context a bit, rather than thinking of things as individual features.

Other snippets include:

  • The 11.1.0.7 patchset comes with a little something extra. The Graphical Explain Plan Monitor from Grid Control is now part of Enterprise Manager. Mark did a demo of this feature and it looks really neat.
  • The 11gR2 beta program is just about to start. I was kinda expecting an announcement about 11gR2 during the conference, but it seems this is a little way off yet.
  • There were a multitude of, “we may or may not be announcing this feature this week”, statements. I’m not sure what can be published, so I’ll just point you to Lewis Cunningham, who has already listed some of them. ๐Ÿ™‚

Middleware and Apps

As far as the middleware and applications were concerned, I’ve come away feeling more confused than when I went in. The recent aquisitions mean there are a whole bunch of overlapping products and it is not always clear which you should pick. All products will eventually have a smooth transition to 11g Fusion Middleware, but that is some way off. Currently, it feels safer to keep your head in the sand and wait for 11g Fusion Middleware. That said, I think what they will end up with will be a killer app server… probably…

I’m feeling relatively in the swing of the SF timezone, which is a big improvement from last year. So it’s out to meet the bloggers later. A couple of years ago this was a small affair. It seems like this year half the conference will turn up. ๐Ÿ™‚

Cheers

Tim…

OCA PL/SQL Developer and stuff…

Today has been a bit of a rare day…

I hurt my back last night at Karate. I managed to get in on a cancellation at my osteopath, so off I went this morning to get everything straightened out.

I left the osteopath just in time to get to the Prometric test center down the road to sit the “Program with PL/SQL (1Z0-147)” exam, which I passed. The exam was pretty easy, but then I have been doing this stuff for 14 years. I sat the “Introduction to Oracle: SQL and PL/SQL (1Z0-001)” as part of my Oracle 7.3 OCP, so I guess I’m now an “Oracle PL/SQL Developer Certified Associate”.

The reason for doing this is I quite fancy doing the “Oracle Database 11g: Advanced PL/SQL” exam, currently in beta, to get the “Oracle Advanced PL/SQL Developer Certified Professional”. The OCA PL/SQL Developer is a prerequesite. I’ve been teaching most of the content of the “Oracle Database 11g: Advanced PL/SQL” this year so it shouldn’t be a problem. I just don’t know if I’ll have time before I hit the road, and the beta period will be over by the time I get back…

What made the whole day a bit more problematic, was I had a Diabetes clinic appointment today and I wasn’t allowed to eat before it, so I was really hungry. My appointment was at 15:30 and I hadn’t eaten since about 17:00 the previous day. Back pain and hunger aren’t the normal things you expect to deal with during an exam. Never mind, it’s sorted now… ๐Ÿ™‚

By the way, I might be doing a couple of talks at the Swedish Oracle User Group in December (10th-11th). Nothing definite at the moment. I’ve been invited, but it’s all in the ether. The world tour continues… ๐Ÿ™‚

Cheers

Tim…

Oracle Certified Profesional (OCP) Database 11g…

I passed the Oracle Database 11g: New Features for Administrators (1Z0-050) exam today. It’s a bit of a relief because I feel like I’ve been preparing for this exam forย a year. My first OCP revisionย article was written about 1 year ago, when I was hoping to be ready for the beta exam. Unfortunately, all the presentations and teaching I’ve been doing this year proved to be a bigger distraction than I’d hoped, which meant I missed the deadline for the beta exam, and overshot the start of the production exam by about 6 months. ๐Ÿ™‚

Well, now the exam is over it presents me with some new issues.

1) There are some gaps in my revision notes that need filling. I did a lot of reading during the preparation, and pulled out the areas and facts I thought were most important.ย Based on the events of today,ย this didn’tย necessarily match up with the contents of the exam. It didn’t affect me, as I had done the additional reading, but as it stands I think it’s touch-and-go whether my revision notes alone will get someone through the exam. This means I’m going to have to go through and revise a few of the articles to fill the gaps.

2) There are a couple of OCP revision articles I’ve not published yet. I got a little impatient and sat the exam before I had finished prettying them. They will follow shortly, conferences permitting.

Like all the OCP exams, this is just the first steps towards learning this release…

Cheers

Tim…

PS. I suppose it’s a little premature to call myself an OCP 11g. I guess that’s not official until Oracle send through the certificate. ๐Ÿ™‚

PPS. Before anyone asks, I used the Oracle manuals to prepare for the exam, so I can’t give certification guide suggestions…