[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance question

On Fri, 16 Feb 2001, Roy Ladner wrote:
> We're evaluating Ozone for a project here at NRL.  We are initially
> testing on a dataset of about 150 mb, but have a need to use Ozone with
> 30 to 70 Gb of data.  So far it looks promising.
> Can you point me to any documentation that might describe how best to
> adjust the cluster size, table size, etc. for best performance?

cluster size does not affect performance that much. But the size of the object
cache (JVM heap size) and the dimension of the B-tree caches are very
important. http://www.ozone-db.org/documentation_main.html should help you to
get started with this. You should always try to adjust cache and table sizes so
that the _working set_ of your data is kept 'in cache'. That is, all objects
of your working set of data should fit in memory and the B-tree tableBufferSize
should be <= the number of objects in your working set.

> Also, I have read in your documentation and email list about moving
> functionality into the server to improve performance.  Not sure I
> understand.  Can you  explain?  Is this simply a matter of opening a
> local database rather than an external one?  When we do that we notice
> an improvement of performance.

No. This has nothing to do with ExternalDatabase or LocalDatabase. _All_
database objects are executed inside the server. To avoid to much network
traffic all the business logic that accesses the database objects should be
implemented in the database objects itself. You can compare this with EJB entity
and session beans.

> The data structure we are using includes object references to other
> objects -- object A might reference objects B and C and C might
> reference D.  This is an oversimplification.  Object C, for example,
> might include a collection of 1000's object D's.  Since an application's
> interaction with the data is through interfaces, should these references
> be to the proxy objects rather than to the objects' implementation
> object?

I'm not sure if I understand you here. If A, B, C and D are database objects
(instance of OzoneObject) then you are _automaticalle working with proxies
rather than 'real' objects in the application code. The reference members
should be of the type of the remote interface of the database object (Car
instead of CarImpl).


> --
> Dr. Roy Ladner
> Naval Research Laboratory
> Digital Mapping, Charting and Geodesy Analysis Program
> Building 1005, Code 7440.2
> Stennis Space Center, MS  39529
> voice: (228) 688-4679
> fax: (228) 688-4853
> email: rladner@nrlssc.navy.mil
> URL: http://dmap.nrlssc.navy.mil/dmap/3d.html
Falko Braeutigam                              mailto:falko@smb-tec.com
SMB GmbH                                        http://www.smb-tec.com