![]() | |
#11
| |||
| |||
|
|
Our application embeds a Java ODBMS and we need a pretty good price point in order to keep the costs down and the margins higher. |
#12
| ||||
| ||||
|
|
Corey Brown wrote: Our application embeds a Java ODBMS and we need a pretty good price point in order to keep the costs down and the margins higher. Hi Corey, judging from our customer database, you have also been experimenting with db4o. Since you still seem to be looking for other solutions, would you mind posting a short comment what you liked and disliked about our product? |
|
Thanks. I fully agree with Michael Wein: Please ignore the distracting postings that have nothing to contribute to this group. I also found Paul DeWolf's explanation of Objectivity's OIDs very interesting. Thanks Paul! Here is how db4o does it: A db4o ID is a physical pointer to a physical pointer. We do not use any paging at all. Since the physical pointers use comparatively little memory, it's possible to cache them. Objects are immediately written to the database file when they are modified ( ObjectContainer#set() ). Upon transaction commit, the second level pointers of all modified objects are redirected to the newly written object data. To make this system completely fail safe, the database file is set to "commit mode" and a list of all the pointers that are about to be rewritten is written to the database file. If the VM or the computer breaks down at any point in time, commit is resumed when the database file is reopened. |
|
Our ID- and file-system does not scale as nicely for huge databases as the one that Objectivity or Versant uses but direct object access will be faster for "small" databases up to 1 GB, since less indirections are needed. |
| Cheers, Carl -- Carl Rosenberger db4o - database for objects - http://www.db4o.com |
#13
| |||
| |||
|
|
Having worked both with Versant and objectivity, I never had problems with Versant's LOID concerning performance or even scalability (remember that they are 64 bit splitted into 48 bit object and 16 bit database IDs). But the same also holds for objectivity ;-) I believe that in reality it is very easy to work with both realisations (probably objectivity's is a little bit harder to live with because of its page server concept). |
|
Thank you for the very detailed and precise description of OIDs! Please ignore Bob and other trolls. |
|
On Wed, 17 Dec 2003 20:03:17 GMT, Paul DeWolf wrote: Versant's problem (in my opinion) is that there's a single centralized logical to physical indirection, which leads to performance and scalability limitations. Having worked both with Versant and objectivity, I never had problems with Versant's LOID concerning performance or even scalability (remember that they are 64 bit splitted into 48 bit object and 16 bit database IDs). But the same also holds for objectivity ;-) I believe that in reality it is very easy to work with both realisations (probably objectivity's is a little bit harder to live with because of its page server concept). Thank you for the very detailed and precise description of OIDs! Please ignore Bob and other trolls. -- Michael Wein |
#14
| |||||||
| |||||||
|
|
Hi Carl, nice to hear from you again. Yes, we have experimented with db4o and we find your product very easy to use and quite robust. There are only two short comings for us at this point, the lack of scalability beyond a safe 1GB boundary |
|
and the lack of a set of "smart" collections. |
|
I know you're going to be very successful in the PDA and embedded system markets. |
|
- How do you control the clean up of the objects that have already been written out, if the resumed commit fails? |
|
Does the transaction log take care of deleting the "newer" versions of the objects during the recovery phase? |
|
- During the fix up stage, is the physical location of the object changed and the old version removed? |
|
How do you fix up the other objects that refer to the updated objects? |
#15
| |||
| |||
|
|
On Wed, 17 Dec 2003 20:03:17 GMT, Paul DeWolf wrote: Versant's problem (in my opinion) is that there's a single centralized logical to physical indirection, which leads to performance and scalability limitations. Having worked both with Versant and objectivity, I never had problems with Versant's LOID concerning performance or even scalability (remember that they are 64 bit splitted into 48 bit object and 16 bit database IDs). But the same also holds for objectivity ;-) I believe that in reality it is very easy to work with both realisations (probably objectivity's is a little bit harder to live with because of its page server concept). Thank you for the very detailed and precise description of OIDs! Please ignore Bob and other trolls. |
#16
| |||
| |||
|
|
Thanks for the excellent write up on Objectivity's OID implementation. It's been a fairly long time since I had a look at Objectivity or Versant for that matter, so my remaining knowledge on both databases has become quite rusty. I've been concentrating on small embedded Java ODBMS implementations for the last few years and find them very acceptable for most of the work that we have been doing. Does Objectivity have a product that works in this space? Not just a Java binding for your enterprise offering, but a true 100% Java ODBMS? |
|
We played with Poet's J2 (FastObjects) implementation a little while ago but couldn't come to grips with the pricing structure. Our application embeds a Java ODBMS and we need a pretty good price point in order to keep the costs down and the margins higher. Thanks again for the refresher course Paul :-) :-) |
#17
| |||
| |||
|
|
"Michael Wein" <MichaelWein (AT) web (DOT) de> wrote in message news:95c3m0t13f5y.1iio4q0eevnhs.dlg (AT) 40tude (DOT) net... On Wed, 17 Dec 2003 20:03:17 GMT, Paul DeWolf wrote: DeWolf is already in my twit filter so I have not read his full post. If you prefer to listen to twits give longwinded dispositions on inconsequentials, by all means, ignore me and listen to DeWolf. |
|
A physical pointer is a physical pointer even if it points to a physical pointer. |
#18
| |||
| |||
|
|
If there really was a mathematical model that represented real life, the equations would not converge on a single solution. |
![]() |
| Thread Tools | |
| Display Modes | |
| |