Jerry Held Senior Vice President of Server Technologies |
Jerry Held and Ken Jacobs in CoversationInterview by Clara Parkes DBMS, May 1997 |
Ken Jacobs Vice President of Product Strategy for the Server Technology Group |
After months of vague public announcements, Oracle finally lifted the veil a few inches to provide more detail on the long-awaited Oracle8. DBMS Executive Editor Clara H. Parkes paid a visit to Oracle headquarters in Redwood Shores, Calif., and talked with Jerry Held, senior VP of server technologies, and Ken Jacobs, VP of product strategy for the server technology group, about Oracle8 and its enhanced support for replication. What follows is an edited transcript of the interview.
DBMS: A lot of debate has gone on about Oracle8 and its object strategy compared to that of, for example, Informix. In recent weeks, however, Oracle has seemed to be diverting public attention from its object strategy. Why?
Ken Jacobs: Maybe it would be helpful to explain why we've been so tight-lipped and why you've perceived this change in emphasis. We are not trying to de-emphasize objects. The market has talked about Oracle8 and objects in the same sentence for a very long time, as if objects and Oracle8 are identical, that Oracle8 is about objects, and that objects at Oracle are only about the database. None of this is true. From a marketing point of view we felt it was necessary to start talking about the nonobject stuff in order to get some mind share for that part of the product. If we just started talking about objects, nobody would listen to anything else. We want them to understand the rest of the product.
We would not want to make the mistake of sitting here today to talk only about object-relational technology. So we are going to emphasize what we are doing to enhance the support for large high-end systems, in terms of partitions of large tables and indexes, improved backup and recovery systems, better scalability in terms of connectivity so that we can support tens of thousands of users connected to a single system, databases with hundreds of terabytes, higher availability... Things that are boring, they're not glitzy features but they are very, very important. We have new security features, new replication features -- you ought to know that we are doing some very innovative things in that space.
One of the problems with all systems today in the market that do replication -- including ours -- is that you have transactions running in parallel on the source, but they are applied sequentially on the target. You've got a whole bunch of things going on at once and you funnel it into one narrow funnel, and throughput is limited by how fast you can apply transactions on the other end. With Oracle8, we've got parallel propagation, so that for any given transaction you are able to figure out what prior transactions it depends on. It's a very cool idea that lets you get better throughput. We've done some other things to improve performance but there are also some functional enhancements in replication so that we can really, truly support mass deployment.
DBMS: Oracle has been criticized for its poor support of mobile clients in Oracle 7 version 7.3. Is that something that will be enhanced in Oracle8?
KJ: That criticism applies to all products in the market today. Really, there are none that work well when you have hundreds or thousands of users with laptops and their own little database, and they all need to get their own customers into it and periodically refresh it and update it and send the updates back. Nobody's brought up those results well.
We've done a couple of things. We've developed a replication API that works with Personal Oracle Light that allows us to replicate from Oracle 7 into a personal Oracle Light database. But another thing that we've done that's kind of a functional enhancement to the replication engine in Oracle8 is something we call -- with our typical lugubrious names -- Subquery Subsetting. Basically, you can define a replication data set so that it contains only those things that you are interested in, so that's all that gets copied down, and you can update it and send it back up. It used to be that you could replicate just a subset of data, but you couldn't update it and send it back. Now we've made it easier for these mass-deployment kinds of configurations. So even if you were running a full copy of Oracle in your laptop, we could replicate it. But the Personal Oracle Light implementation is quite interesting because it's lightweight.
DBMS: Will the Oracle8 replication features send and receive data from non-Oracle data sources?
KJ: Yes. This replication API that I talked about opens it up to that kind of thing. There will be more of that. We already do some through some of our third-party arrangements, and all of that of course will carry forward. But this kind of new architecture makes it even more feasible. We will ultimately be replicating to and from foreign data stores with our own technology.
DBMS: Will Oracle8 offer new replication-management tools?
KJ: Well, that's an area where we think we have tremendous advantage over the competition, even in Oracle 7 version 7.3. We created, as part of our Enterprise Manager, a product called Replication Manager that lets you configure replication just by drag-and-drop. You can create a map, put pictures of the databases on it, and manage it operationally. So that capability was there with Oracle 7.3. There was a legitimate complaint about the replication technology in 7.1.2 that it was very hard to use because it was all command-line. In 7.3 it's all GUI-ized.
Oracle8 has more support for the new features. There is an upgrade to the ease-of-use of the Enterprise Manager facility itself. We're also going to be Web-izing the Enterprise Manager product so that it's not just Windows-based. The Web is obviously very important -- you can't have a conversation without talking about it -- so there'll be a Java-based implementation of our Enterprise Manager that's all Web-ized.
DBMS: Will this be in Oracle8 or a future version?
Jerry Held: The Web client for Enterprise Manager, I believe, at least part of it, is in the first release of Oracle8. We were even thinking about putting it in a version of 7.3, but we decided not to. Everything we're doing is going to have the option of having a thin client, so essentially the entire Oracle stack, from server to tools and apps, is going to be optionally thin-client-based, so you can run the whole world from a browser. If the browser runs on a PC, fine; if it runs on an NC, even better.
DBMS: Let's talk about clustered failover for a moment. How are the primary and backup servers kept in synch in version 8?
KJ: For one thing, they are not primary and secondary -- they are both doing work at the same time. This is different from what people at Microsoft talk about when they talk about clusters, where you've got two machines that happen to have dual ported discs and you can use one or the other -- when one goes, use the other one. We're talking about actively doing transactional processing or queries that span all of the nodes of the cluster. So you should first understand that they are live.
Now, how they are kept in sync is important, because you have transactions changing data over here and transactions changing data over there. They do need to be aware of each other's changes if they are accessing the same data. But if they are accessing different data, no problem, they just access their own data. In fact, if it's read-only, there is nothing to do, it's all in synch. And frankly, a lot of the data in any database is read-only. In a data warehouse it's exclusively read-only. You know, in OLTP, a large fraction of data is read-only.
When you do need to coordinate the databases, Oracle uses what we call parallel cache management. You're able to keep track of where a given piece of data resides, so that if the user over here is interested in a piece of a data that has changed over there, you can use messaging technologies built around a distributed lock manager so that one node of the cluster writes that data out to disk so that another node can read it. We've done a lot of work in Oracle8 to improve this to allow faster failover, so that when one fails, another node notices it more quickly and covers for it more quickly; and client failover, so that if you as a user are connected to a node that happened to go down, you'll be automatically reconnected to one of the surviving nodes. All of that stuff is predicated on the fact that we have a single database that is totally accessible from all nodes. It's not as if this piece of the database is only visible to one node, and it's not as if this is a standby, all-or-nothing kind of thing.
DBMS: Do you have any new notification devices in Oracle8 to notify the administrator when a failover occurs?
KJ: There are some extensions to the Oracle Enterprise Manager. It has an event system of its own that notices when things are getting to be a problem and even takes some proactive action about it. So if a database is starting to become full, it can automatically add a file, for example, or run a script.
DBMS: What have you done to enhance user logins and overall connectivity in Oracle8?
KJ: We've done a number of things to improve the scalability of connectivity, so you can let more users connect to the system. Our goal here is twofold: It's to reduce the cost and improve the scalability of both client/server connections and multitier or n-tier or three-tier connections. So we want the traditional client connected to the server, to be able to put more users on, and also to make it easier and more scalable to use a TP monitor -- to achieve scalability.
We've done some things in terms of connectivity of multiplexing connections. There are actually at least three different ways that we're making more efficient use of connections. We have a product component of Net8, which is -- by the way -- the new name of SQLNet; SQLNet 2 evolves to Net8 in the next release. Net8 has a component called Connection Manager so that multiple users can be connected to a server and their sessions can be multiplexed over a single communications connection.
We also have something called connection pooling, which allows multiple users to share a connection over time (but a longer period of time). So if you're an email user, and you're sitting there scratching your head or you're typing, you're using the server but not communicating with it. Or say you're a data warehouse user and you've submitted a long-running query that's running but there is no traffic across the wire. Or you're in an OLTP environment and you're just not a high-frequency user. You might even use Connection Manager on a terminal in a hotel that rents cars -- I mean, how often does someone walk up and rent a car? So we can take those idle connections and reuse them for other users while maintaining the session belonging to that idle connection -- so we reuse or pool those connections.
The third thing that we do is also rather interesting. Say you've got a client connected to a server, and that server is connected to another server, so that you have kind of a workgroup and a central machine site, and the client wants to perform a distributed query -- to access data off that central server. Today on Oracle 7 each client has a connection all the way through; the central machine sees as many connections as there are clients connected to all of the departmental group servers. In Oracle8 we have this notion of what you'd call a shared database link that allows one server to talk to another server and share that distributed access for all of the clients. So that's a way of multiplexing.
We have done a number of other things to improve connectivity and scalability of connections. For fewer network messages, there's transparent prefetch when you're doing a query. When I ask you for a row, the server actually will return 10 rows, and it will get the next nine locally. You could do that programmatically in Oracle 7 -- in fact all the way back from many releases -- but I as the application programmer had to know that and ask for 10 rows at a time. Now, in Oracle8, if I ask for one row it will give me 10 and I'll get the next nine locally.