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

Re: 3 basic questions



Hi,

> I am trying to evaluate Ozone for use in my application and I have a few questions that don't seem to be covered in the documentation.
> 
> 1. I am wondering if anyone has done any testing, any benchmarking that shows how Ozone performs as the number of persisted objects increases?
> I know this depends on the number of factors, from hardware to object complexity, but I'd be interested in any benchmarks or any experiences that people can share.

The ozone package contains the OO1 and OO7 benchmarks (directory $OZONE_HOME/samples). You should check
them out to get some benchmark result. 
 
> 2. This question is about object design and the loading of objects from the DB.
> The application I am writing has a component that fetches web documents, stores them (with the help of something like ozone), and then performs some other actions on those documents.
> Each web server can have lots (hundreds, thousands, or tens of thousands) of web documents associated with it.
> I am trying to figure out how to design my objects so that they don't cause duplication of data (e.g. all documents from the same web server have the same host name associated with them) in order to slow the growth of the database of web documents.
> 
> My concrete questions in regards to this problem and Ozone are:
> - If I have an object such as WebServer which has an attribute that is a list of all documents associated with this web server (e.g. /index.html, /foo/bar.html, etc.) what happens when I retrieve a particular WebServer object from the Ozone database?
> - Does this list of web documents also get loaded?  That would be a problem as the list could be quite large and loading it would require lots of RAM).
> - If, in this case, the whole list would get loaded, how do you suggest I design this in order to minimize redundancy and memory consumption?

If you use the normal Java collections then, yes, the complete collection gets loaded into the memory
since ozone works with Java serialization. The solution are persistent collection, e.g. a linked list
where each list node is a database object. Then the list nodes are loaded and removed on demand. That
slows down the performance but save memory.

> 3. How does one retrieve a specific object from an Ozone database?
> For example, say that my objects stored in Ozone DB have a 'creationDate' attribute and a method such as this:
> public Date getCreationDate();
> 
> How would I go about retrieving the object with the oldest creationDate attribute?
> 
> Also, is it possible to retrieve an object or a set of objects based on the exact attribute value (e.g. all cars made in 1974)?
> 
> Similarly, is it possible to retrieve an object or a set of objects bases on the range of values (e.g. all cars made between 1974 and 1984)?

At the moment there is no query language for ozone. You always have 
to start at the named root objects and than traverse the path to
the objects you need as you would do it in a usual Java program.

Best Regards,
Gerd

--
________________________________________________________________
Gerd Mueller                                    gerd@smb-tec.com     
SMB GmbH                                  http://www.smb-tec.com
----------------------------------------------------------------------
Post a message:         mailto:ozone-users@ozone-db.org
Unsubscribe:            mailto:ozone-users-request@ozone-db.org?body=unsubscribe
Contact administrator:  mailto:ozone-users-owner@ozone-db.org
Read archived messages: http://www.ozone-db.org/
----------------------------------------------------------------------