Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Parallelserver: What to think about?

Re: Parallelserver: What to think about?

From: Billy Verreynne <vslabs_at_onwe.co.za>
Date: Tue, 26 Jan 1999 11:28:25 +0200
Message-ID: <78k1vf$l8i$1@hermes.is.co.za>


Timo Feickert wrote in message <916822725.99419_at_services>...
>we are developing a standard client/server app, accessing oracle (7 or
>ms-sql) via odbc (over sql-net).

No comments about using ODBC. I'm trying hard to be nice today. ;-)

>one of our customers is thinking about purchasing oracle
"parallel-server
>(enterprise edition)" and asks whether this is supported. are there any
>"specialities" we should take into account from the client point of view
or
>is the type of server edition totally transparent to the client - as it
>should be?

First off, the customer will need to run OPS (Oracle Parallel Server) on a special hardware to make use of the parallel server. In a nutshell you have 2 or more physical machines/nodes, each with own memory, disks and operating system, running a OPS instance. Each of the OPS instances "services" the same logical database (or SID). The database is distributed over disks that are "shared" between the physical machines. Then it gets more complex, but that's not what your question is about.

Fist off, how do you connect to an OPS - what instance do you use? Depends on a couple of things. Certain OPS configurations runs on what is called distributed TCP. In such a situation you have a single "virtual" IP address to connect to. The server operating system (on the primary node) uses load balancing to determine to which physical machine/node to connect you too. In this case you have no idea to which machine and Oracle database instance you're going to connect too. Works nice for the data warehousing environment as a certain amount of load balancing can be done.

This is however not ideal in many OLTP OPS configuration. Imagine a heavily utilised capture application running against two different nodes. OPS now needs to handle lock contention (same database) between two database engines on different nodes. Not a good thing. So in the OLTP environment you usually partition the -application- (don't confuse this with database/data partitioning) across OPS instances. One instance may be used for entering invoice data. Another instance may be used for the product maintenance. And so on. This can get very complex and is one of the reason IMHO that OPS has not really taken off in the OLTP environment.

As you can see, in this case it is very important that you do connect to the right database instance in order for contention to be handled locally within a single db engine.

Last point I can think off. OPS and PQ (parallel query) usually goes hand in hand. Another great feature of OPS is the ability for your application to run a complex SQL query against a single node. OPS will then break this query up into simpler steps and distribute the workload of the query to the PQ processes on all the nodes. Imagine having 8 PQs running on 11 nodes. I did a 170 million rows in less than 2 hours like that! :-)

With PQ and OPS you can use the PARALLEL hint to specify across how many instances and PQ's (degrees) a query should be run across. Yes, there are defaults for this per table, but often you'll find it better to built this into the client SQL.

The bottom line is that you need to be very careful in saying "our product abc supports Oracle Parallel Server". OPS is a different and more complex beast than just Oracle. And you can not simply ignore the complexities of OPS at application level and hope the server sorts it out. Running your product against two different instances at the same time may just trash the OPS completely. Not running the product against multiple instances may be suicide as you can increase the performance of your app by a 100 times and kick competitive products in the nuts.

So IMHO it must be a long term decision whether or not you want to "certify" your product for Parallel Server or not (in the situation where OPS is actually used across multiple nodes and not installed and used on a single node like "standard" Oracle).

regards,
Billy Received on Tue Jan 26 1999 - 03:28:25 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US