Conversations with Oracle Innovators

Q&A with Cameron Purdy

Cameron PurdyOracle Innovator

Oracle Coherence
Oracle Coherence is an in-memory data grid solution that allows customers to manage large amounts of work by tying multiple computers together, thus improving productivity and reliability. Even if one computer crashes, the rest of the system keeps running and no information is lost.

Vice President of Development
Location: Burlington, Massachusetts
Product: Oracle Coherence

Q: Why is Oracle Coherence innovative?

A: It helped to create a market, which is now pretty big and growing. In technical terms, it was the first software to do what's called dynamic partitioning in a shared-nothing architecture. It makes it possible to manage large amounts of work without any centralized coordinating computer, using peer-to-peer technology. It was also able to share the work and responsibility across those computers dynamically. As you add servers, it automatically adjusts to spread out some of the work to those new servers. If a server dies, it consolidates the work to the remaining servers so it's balanced; the servers equally share the work for the entire system.

Q: How is it unique?

A: It was the first product of its kind. It was quite successful and broadly adopted, and we have many large-scale production deployments of the software that use literally hundreds of servers working together. The biggest Web sites, the largest banking systems, run our software. It has the lead in the market because of its early innovation.

Q: How do you define innovation?

A: Innovation has two fundamental parts. The first is being able to listen, understand, and appreciate the problem someone is facing. The second is the creativity that comes from piecing together ideas and concepts in order to form a picture of a solution. In software, a lot of what we do is built on other people's ideas, or technology that has come before us. A lot of the creativity is recognizing, in the problems being presented to us, the patterns that represent the same types of problems solved by previous generations of technology. The problems and challenges are far more challenging and complex than the ones faced before. We're trying to take the entire library of what we've learned stretching back 50 years or more in software, looking at that library of solutions and seeing how to solve dramatically more complicated problems using combinations of simpler solutions that have already been constructed.

Q: What's the most innovative project or product you've ever worked on?

A: The problem domain we set out to address with Oracle Coherence was pretty dramatic. We encountered many companies facing the same set of challenges, almost all of which were driven by the massive scalability requirements that came from having to deliver applications over the internet to any number of end users. In a single software generation, we went from having systems that supported thousands of concurrent users to millions of concurrent users. The increase in demand within just a few years on applications developers and what they had to support was dramatic. At the same time, these applications were all new, being created mostly from scratch because the internet was an entirely new technology platform, and there were new languages like Java. The requirements were off the scale compared to what applications developers used to have to solve.

Q: What would you call the enemy of innovation?

A: The first is complacency. A lot of people are satisfied with what they have. If you can convince yourself you're satisfied, you'll stop looking for a better solution. The other is an inability to listen and appreciate the complexity of a problem. Everyone wants to believe they have the answer before the question even gets asked. People don't take the time to listen and appreciate the individual complexity of each customer's problem and the nuances of their environments.

Q: How does Oracle work with its customers to become more innovative?

A: We often work hand in hand with our customers, particularly those who bring problems that we haven't solved before. The result is that we can help those customers solve their problems, and at the same time define what we need to be doing in the next generation of our software to make sure we stay on the cutting edge. If we're not continuing to innovate, then over time, what we do becomes irrelevant. There is a need for continuous innovation. Even more importantly, if our customers don't trust us to solve their unique problems, we won't even have the opportunity to see what those problems are.

Q: What innovative technology are you excited about?

A: Some of the fun innovation going on in our industry right now is around language. We're seeing a lot of work both in the .NET area as well as the Java area in terms of new languages sitting on top of a virtual machine infrastructure. One of the most recent ones I'm investigating is a language called Scala, which is a way of providing functional programming on top of a Java Virtual Machine.