Thread: [OJB-developers] RE: Referantial Integrity under ODMG
Brought to you by:
thma
From: Thomas M. <tho...@ho...> - 2002-02-22 20:22:48
|
Hi Florian > Hi Thomas, > > > > The first bug is on the to do list for quite a long time (item 32). > > The ODMG implementation just does not handle RI correctly right now! > > So this is really a bug and not something I am doing wrong. > As I am digging > further into the code I think I've found an explanation for > the problem. > PersistenceBroker maintains a Hashtable of objects to be > inserted, updated > in a transaction. The ojb.odmg.TransactionImpl holds a ObjectEnvelopeTable that maintains a Hashtable of all Objects locked to a Transaction. (The PersistenceBroker is not involved in these issues. I guess this was a typo?) >Because the Hashtable returns the objects > in random order > there is no guarantee that the objects are inserted/updated > in the same > order as they are queued into PersistenceBroker. If we > inserted/updated the > objects in the correct order (i.e. the order that they were > put into the > queue) the problem could be solved. Then there needs to be > just a minor > modification so that references are stored in > PersistenceBroker before the > "root" object and collections afterwards. > > Does this make sense or is this a completely wrong approach. > You are on the right way! The Objects in the table are stored without proper ordering with respect to referential integrity dependencies. The solution is simple: We have to compute a depency graph for all objects locked to the tx. We can use the ClassDescriptor information to compute this graph. My idea (we already had some discussions regarding this issue) was to have a comparator based on this depency graph. The comparator can be used to sort the elements of the table before the broker is called to store objects. One important note: for insert we have to store master objects first and detail objects later. For deleting it's just inverse: first delete detail objects, then master objects ! <snip> > This at least avoids the exception. I now think that the > problem has further > consequences as it is in bindSelect(PreparedStatement, Identity). The > relevant code looks as follows: > > public void bindSelect(PreparedStatement stmt, Identity > oid) throws > java.sql.SQLException > { > int i = 0; > try > { > for (i = 0; i < oid.getPrimaryKeyValues().length; i++) > { > stmt.setObject(i + 1, oid.getPrimaryKeyValues()[i]); > } > [...] > > The problem is when oid.getPrimaryKeyValues()[i] returns > null. In this case > the Informix driver needs the JDBC-Type of the value to bind. > The call would > then be > stmt.setObject(i+1, oid.getPrimaryKeyValues()[i], Types.XXX) > > In bindInsert for example the type of the parameter can be > resolved, the > call looks like: > stmt.setObject(i+1, val, JdbcAccess.getSqlTypeAll(cld, i)); > > If we had the type in bindSelect, the type could be passed to > setObject, but > we simply do not have this information here. I think we would > be on the safe > side if we always set the type of the object explicitly. > Sometimes JDBC > drivers do not know how to map an object to a SQL type and we > could support > it there. > The jdbc type info can be obtained from the respective ClassDescriptor by: JdbcAccess.getSqlTypeAll(cld, i) The ClassDescriptor cld could be obtained by: ClassDescriptor cld = broker.getClassDescriptor(oid.getObjectsClass()); > > Of course this is a hack, but I have no idea how to avoid such > > situations in a bulletproof way... > > I think this could be worth a try, but it either requires in > depth knowledge > of OJB internals or an architectural change in Identity, so I > fear I cannot > be of any help there. > Maybe the Referential Integrity problem is easier to start with, as it does not require so much in depth OJB know how. I will provide a fix for the second problem in the next release. So you can concentrate on RI ;-) > > hth, > > > > Thomas > > > > best regards, > Florian > > PS: Wofur steht eigentlich hth? > AFAIK HTH means: hope that helped! (oder auf deutsch: hier werden Sie geholfen) cu, Thomas |
From: Florian B. <bf...@fl...> - 2002-02-22 21:10:05
|
> The ojb.odmg.TransactionImpl holds a ObjectEnvelopeTable that maintains a > Hashtable of all Objects locked to a Transaction. > > (The PersistenceBroker is not involved in these issues. I guess this was > a typo?) Well, not really a typo, just got things wrong ;-) > I will provide a fix for the second problem in the next release. > So you can concentrate on RI ;-) Great, so I'll look further into the RI issue. What I think I could do is the following: 1.) Maintain the order of write locks. This would make it possible for the user to control this order and therefore resolve RI violations by inserting objects in a proper order. Especially when OJB doesn't know about a RI this would be good 2.) Change the order how dependent objects are inserted/updated/deleted. Referenced objects are always the master, collections are always the detail to an object. Currently I cannot think of a case where this could be different. This would save us from calculating a sophisticated dependency graph I think. best regards, Florian |
From: Thomas M. <tho...@ho...> - 2002-02-23 09:58:39
|
Hi Florian, <snip intro> > > Great, so I'll look further into the RI issue. What I think I could do is > the following: > > 1.) Maintain the order of write locks. This would make it possible for the > user to control this order and therefore resolve RI violations by inserting > objects in a proper order. Especially when OJB doesn't know about a RI this > would be good Mmh. This is a good idea. But I think it is conflicting with the hashtable concept. The hashtable is used to allow quick lookup of locked objects during a tx. > 2.) Change the order how dependent objects are inserted/updated/deleted. > Referenced objects are always the master, collections are always the detail > to an object. Currently I cannot think of a case where this could be > different. > This is exactly the depency graph I'm talking about! By analysing the ReferenceDecsriptors and the CollectionDescriptors it is possible to determine which object has to be inserted first etc. cu, Thomas > This would save us from calculating a sophisticated dependency graph I > think. > > best regards, > Florian > > > > > |
From: Florian B. <bf...@fl...> - 2002-02-23 12:27:15
|
Hi Thomas, <snip> > > Mmh. This is a good idea. But I think it is conflicting with the > hashtable concept. The hashtable is used to allow quick lookup of locked > objects during a tx. I think I have found a solution for this that is able to tell the order of the added objects while maintaining the speed of the hashtable for lookups. Only removing objects from the table would be more expensive. > > 2.) Change the order how dependent objects are > inserted/updated/deleted. > > Referenced objects are always the master, collections are always the > detail > > to an object. Currently I cannot think of a case where this could be > > different. > > > > This is exactly the depency graph I'm talking about! > By analysing the ReferenceDecsriptors and the CollectionDescriptors it > is possible to determine which object has to be inserted first etc. So this is easy. TransactionImpl.register already resolves References and Collections, just the order has to be changed. I just added the RI test case to CVS and I hope I can commit the fix today. <snip> best regards, Florian |
From: Thomas M. <tho...@ho...> - 2002-02-23 15:17:39
|
Hi Florian wrote: > > I think I have found a solution for this that is able to tell the order of > the added objects while maintaining the speed of the hashtable for lookups. > Only removing objects from the table would be more expensive. > great news! removing of objects is not an issue! >> > > So this is easy. TransactionImpl.register already resolves References and > Collections, just the order has to be changed. > Right! Sorry, I forgot to mention that register() can be used as a sample. > I just added the RI test case to CVS and I hope I can commit the fix today. > I just loaded your stuff from CVS and there is only one failure for the delete TestCase. The changes look quite straightforward. thanks, Thomas |
From: Florian B. <bf...@fl...> - 2002-02-23 15:54:51
|
Hi, > I just loaded your stuff from CVS and there is only one failure for the > delete TestCase. > The changes look quite straightforward. The failure within the delete testcase looks like it exposes another problem. If the foreign key ist part of the details primary key, the objects are retrieved correctly and the deletion works. If the foreign key is not part of the primary key the query doesn't return the correct objects. In the test case there are five different objects associated to a master object, but the query returns the same object five times, therefore there is still a fk constraint violation, because four objects remain related to the master object. lg, Florian, der trotz strahlendem Sonnenschein in Wien herumhackt... |
From: <ri...@ya...> - 2002-02-27 06:38:35
|
Hi, These are the messages I get when I run the OJB "tests" target with a = MySql database (after following the steps in = http://objectbridge.sourceforge.net/rdbms-support.html. Yeah, I ran the = target twice :-) C:\Java\ojb-0.7.343>build tests Buildfile: build.xml init: prepare: tests: [move] Moving 1 files to C:\Java\ojb-0.7.343\src\test\setup using switches: -HSQLDB, -ORACLE, -MS_ACCESS, -INSTANTDB, -DB2, = -POSTGRESQL, +MY SQL, -INFORMIX . [move] Moving 1 files to C:\Java\ojb-0.7.343\src\test\setup [copy] Copying 1 files to C:\Java\ojb-0.7.343\build\test\setup [java] [BOOT] INFO: DB url: jdbc:mysql://localhost:3306/ojbtest [java] [BOOT] INFO: Driver: Mark Matthews' MySQL Driver [java] [BOOT] INFO: Version: 2.0.11 [java] [BOOT] ERROR: General error: Unknown table 'blob_test' [java] java.sql.SQLException: General error: Unknown table = 'blob_test' [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] [BOOT] ERROR: Syntax error or access violation: You have an = error in your SQL syntax near 'LONGVARBINARY, CLOB_VALUE_ LONGVARCHAR )' at line = 1 [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] java.sql.SQLException: Syntax error or access violation: You = have an error in your SQL syntax near 'LONGVARBINARY, CLOB_VALUE_ LONGVARCHAR = )' at lin e 1 [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] [BOOT] ERROR: General error: Unknown table 'ojb_nrm' [java] java.sql.SQLException: General error: Unknown table = 'ojb_nrm' [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] [BOOT] ERROR: Invalid argument value: Too big column length = for colu mn 'OID_' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] java.sql.SQLException: Invalid argument value: Too big = column length for column 'OID_' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] [BOOT] ERROR: General error: Unknown table = 'ojb_dlist_entries' [java] java.sql.SQLException: General error: Unknown table = 'ojb_dlist_entri es' [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] [BOOT] ERROR: Invalid argument value: Too big column length = for colu mn 'OID_' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] java.sql.SQLException: Invalid argument value: Too big = column length for column 'OID_' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] [BOOT] ERROR: General error: Unknown table = 'ojb_dset_entries' [java] java.sql.SQLException: General error: Unknown table = 'ojb_dset_entries' [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] [BOOT] ERROR: Invalid argument value: Too big column length = for colu mn 'OID_' (max =3D 255). Use BLOB instead [java] at java.lang.Thread.run(Thread.java:484) [java] java.sql.SQLException: Invalid argument value: Too big = column length for column 'OID_' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] [BOOT] ERROR: General error: Unknown table = 'ojb_dmap_entries' [java] java.sql.SQLException: General error: Unknown table = 'ojb_dmap_entrie s' [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] [BOOT] ERROR: Invalid argument value: Too big column length = for colu mn 'KEY_OID' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) [java] java.sql.SQLException: Invalid argument value: Too big = column length for column 'KEY_OID' (max =3D 255). Use BLOB instead [java] at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown = Source) [java] at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Connection.execSQL(Unknown Source) [java] at org.gjt.mm.mysql.Statement.executeUpdate(Unknown = Source) [java] at = org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source ) [java] at ojb.broker.util.SampleThread.run(ScriptTool.java:541) [java] at java.lang.Thread.run(Thread.java:484) BUILD SUCCESSFUL Total time: 14 seconds ------------------------------------------------------------ I'm going to run the "performance" target tomorrow. I just wanted to = understand why are all these exceptions about. Looks like MySql support is broken with the defaults of the = src\test\setup\db-setup.sql file=20 After the "successful" tests target, I tried to run the junit target and = received 2 failures: ... <snip> ... [junit] .[DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platfor mMySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [junit] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [junit] .[DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platfor mMySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [junit] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [junit] F [junit] Time: 53.888 [junit] There were 2 failures: [junit] 1) = testEscaping(test.ojb.broker.PersistenceBrokerTest)junit.framewor k.AssertionFailedError: after inserting an object it should be equal to = its re-r ead pendant expected:<Single quote 'article > but was:<Single quote = 'article> [junit] at = test.ojb.broker.PersistenceBrokerTest.testEscaping(Persistenc eBrokerTest.java:494) [junit] 2) = testTimestampLock(test.ojb.broker.OptimisticLockingTest)junit.fra mework.AssertionFailedError: Should throw an Optimistic Lock exception [junit] at = test.ojb.broker.OptimisticLockingTest.testTimestampLock(Optim isticLockingTest.java:205) [junit] [junit] FAILURES!!! [junit] Tests run: 46, Failures: 2, Errors: 0 [junit] BUILD FAILED C:\Java\ojb-0.7.343\build.xml:299: Java returned: -1 ---------------------------------------------------------- I found an sql script to create the OJB internal tables for MySql in the = sourceforge.net OJB forums while ago, and that is the schema I have been = using before trying the new steps in the documentation. This is the = first time I try to run the "tests" target. Besides the versioning = tables, it looks like the schema hasn't changed, has it? Here is the script: http://sourceforge.net/forum/message.php?msg_id=3D1457503 I'll try to run the junit target against this schema, and post the = results. Aditional info: MySql database version: 3.23.46 mm.mysql JDBC driver version: 2.0.11 Thanks in advance, Ricardo Arguello |
From: Florian B. <bf...@fl...> - 2002-02-27 10:03:42
|
Hi Ricardo, You can easily fix these yourself by editing the file src/test/setup/db-setup.sql. For the table blob_test change the type of the column BLOB_VALUE_ to LONGBLOB and of the columne CLOB_VALUE to LONGCLOB. For the tables ojb_nrm, ojb_dlist_entries, ojb_dset_entries the type of the column OID_ should be changed to BLOB. For ojb_dmap_entries the type of the column KEY_OID should be BLOB. Concerning the testEscaping testcase. Just looked this up in the mysql docs and there it says that the behaviour is expected. For VARCHAR columns trailing spaces get stripped, see also http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Col umn_types. Informix' behaviour is the same. best regards, Florian |
From: <ri...@ya...> - 2002-02-27 17:52:37
|
Florian, I fixed the db-setup.sql file, as you suggested, but kept getting = errors. So, I added these type changes to those you suggested: In OJB_DMAP_ENTRIES: VALUE_OID to BLOB In OJB_DMAP_ENTRIES: KEY_OID to BLOB VALUE_OID to BLOB In BLOB_TEST: CLOB_VALUE_ to LONGTEXT (LONGCLOB, as you suggested, doesn't seem to be a valid MySql type, so I = tried using LONGTEXT for the CLOB_VALUE_ in the BLOB_TEST column) The tests target now runs fine! The junit target gives me the same 2 failures I previously reported. Thomas, these changes to the db-setup.sql file should be included in the = distribution... I'll run the performance target now... I'll keep you guys informed. Thanks, Ricardo Arguello ----- Original Message -----=20 From: "Florian Bruckner" <bf...@fl...> To: "ojb" <obj...@li...> Sent: Wednesday, February 27, 2002 5:03 AM Subject: RE: [OJB-developers] "tests" target results against MySql > Hi Ricardo, >=20 > You can easily fix these yourself by editing the file > src/test/setup/db-setup.sql. >=20 > For the table blob_test change the type of the column BLOB_VALUE_ to > LONGBLOB and of the columne CLOB_VALUE to LONGCLOB. >=20 > For the tables ojb_nrm, ojb_dlist_entries, ojb_dset_entries the type = of the > column OID_ should be changed to BLOB. >=20 > For ojb_dmap_entries the type of the column KEY_OID should be BLOB. >=20 > Concerning the testEscaping testcase. Just looked this up in the mysql = docs > and there it says that the behaviour is expected. For VARCHAR columns > trailing spaces get stripped, see also > = http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#= Col > umn_types. Informix' behaviour is the same. >=20 > best regards, > Florian >=20 >=20 > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers > |
From: <ri...@ya...> - 2002-02-28 00:57:07
|
Hi, These are the results for the performance target against MySql. ------------------------------------------------------------------------ C:\Java\ojb-0.7.343>build performance Buildfile: build.xml init: prepare: main-opt: tests: [move] Moving 1 files to C:\Java\ojb-0.7.343\src\test\setup using switches: -HSQLDB, -ORACLE, -MS_ACCESS, -INSTANTDB, -DB2, = -POSTGRESQL, +MY SQL, -INFORMIX . [move] Moving 1 files to C:\Java\ojb-0.7.343\src\test\setup [copy] Copying 1 files to C:\Java\ojb-0.7.343\build\test\setup [java] [BOOT] INFO: DB url: jdbc:mysql://localhost:3306/ojbtest [java] [BOOT] INFO: Driver: Mark Matthews' MySQL Driver [java] [BOOT] INFO: Version: 2.0.11 performance: [ojb] [BOOT] INFO: OJB.properties: = file:/C:/Java/ojb-0.7.343/build/test/oj b/OJB.properties [ojb] .[performance] INFO: [ojb] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [ojb] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [ojb] [performance] INFO: inserting 10000 Objects: 98902 msec [ojb] [performance] INFO: updating 10000 Objects: 105662 msec [ojb] [performance] INFO: querying 10000 Objects: 114755 msec [ojb] [performance] INFO: querying 10000 Objects: 89769 msec [ojb] [performance] INFO: fetching 10000 Objects: 12819 msec [ojb] [performance] INFO: deleting 10000 Objects: 79975 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 94426 msec [ojb] [performance] INFO: updating 10000 Objects: 108806 msec [ojb] [performance] INFO: querying 10000 Objects: 111200 msec [ojb] [performance] INFO: querying 10000 Objects: 36563 msec [ojb] [performance] INFO: fetching 10000 Objects: 11797 msec [ojb] [performance] INFO: deleting 10000 Objects: 80415 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 94056 msec [ojb] [performance] INFO: updating 10000 Objects: 105441 msec [ojb] [performance] INFO: querying 10000 Objects: 111100 msec [ojb] [performance] INFO: querying 10000 Objects: 41520 msec [ojb] [performance] INFO: fetching 10000 Objects: 12618 msec [ojb] [performance] INFO: deleting 10000 Objects: 79564 msec [ojb] [ojb] Time: 1,393.023 [ojb] [ojb] OK (1 tests) [ojb] [jdbc] [BOOT] INFO: OJB.properties: = file:/C:/Java/ojb-0.7.343/build/test/oj b/OJB.properties [jdbc] .[performance] INFO: [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: inserting 10000 Objects: 36923 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: updating 10000 Objects: 38866 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: querying 10000 Objects: 88227 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: querying 10000 Objects: 88548 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: fetching 10000 Objects: 4847 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: deleting 10000 Objects: 35721 msec [jdbc] [performance] INFO: [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: inserting 10000 Objects: 35912 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: updating 10000 Objects: 38846 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: querying 10000 Objects: 85974 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: querying 10000 Objects: 87145 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: fetching 10000 Objects: 4947 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: deleting 10000 Objects: 34670 msec [jdbc] [performance] INFO: [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: inserting 10000 Objects: 36373 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: updating 10000 Objects: 38866 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: querying 10000 Objects: 86404 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: querying 10000 Objects: 85663 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: fetching 10000 Objects: 4958 msec [jdbc] [DEFAULT] WARN: problems with platform = ojb.broker.platforms.Platform MySQLImpl: ojb.broker.platforms.PlatformMySQLImpl [jdbc] [DEFAULT] WARN: OJB will use PlatformDefaultImpl instead [jdbc] [performance] INFO: deleting 10000 Objects: 35411 msec [jdbc] [jdbc] Time: 874.658 [jdbc] [jdbc] OK (1 tests) [jdbc] BUILD SUCCESSFUL Total time: 38 minutes 9 seconds ------------------------------------------------------------------------ The results show that direct JDBC is 62.7% faster than OJB (against = MySql): [ojb] Time: 1,393.023 [jdbc] Time: 874.658 I think I found my problem.... :-( Greetings, Ricardo Arguello |
From: Thomas M. <tho...@ho...> - 2002-02-28 15:38:02
Attachments:
doc.zip
|
Hi Ricardo, <snip> Your performance results look really bad. To give you an impression that this is not typical for OJB I have attached a zipped html document containing 3 tables. The tables contain: 1. your testresults 2. my test against MS Access 3. my test against HSQLDB The Result for HSQLDB are a bit distorted as HSQBL does most things inmemory. That's why it is so fast. But that's also why the OJB version is not that much slower (in absolute numbers) but the ratio is still 45% For MS-Access you see a more "classic" OJB effect. Native JDBC is not very fast. OJB is slower. But at a very reasonable ratio: 19% My experience with DB2 and ORACLE are similar, but I currently have no numbers available. That's why I'm really shocked by your tests. I have only a few possible explanations: 1. There have been changes between 0.7.314 (the version I used) and 0.7.343 (your version) that had major impacts on performance. I had some few runs on my machine that show that this isn't the case. 2. The JDBC driver. People have often told me how fast MySql is. But when I see the results of your native JDBC tests I think it's rather slow... Maybe that other internal problems of the MYSQL JDBC driver lead to such exorbitant results. Maybe OJB uses certain features that are not well supported. Maybe it's a good idea to share experiences with other MYSQL / OJB users to share their findings and insights. Everyone is invited to post his performance test results! I am a bit surprised about the bad performance for primary key based look up (querying1 and 2). Are you sure there is a primary key defined for the table ? 3. OJB has become slow. As you can see from my tables OJB is not "slow" in general. OJB has been carefully performance tuned in the past. But we have implemented a lot of new features that almost all have performance impacts. After finishing all 1.0 features I want to have a complete code walkthrough to implement performance improvements. > > > The results show that direct JDBC is 62.7% faster than OJB (against MySql): > > [ojb] Time: 1,393.023 > [jdbc] Time: 874.658 > > > I think I found my problem.... > > :-( > Mh, as mentioned above I don't believe that OJB is the only problem. I'd like to discuss about aceptable performance. Which factor would be acceptable for you. (For me even the native JDBC variant is definitely too slow). 20%, 40% ? It's absolutely clear that an O/R layer (regardless which concrete product) *will allways* be slower as handcoded JDBC. You get a lot of programming ease and pay it with performance. Period. Of course we will work hard to minimize this overhead. I have written the performance testsuite to make people aware of the performance impact they have for their specific environment. I'm planning to provide a document on the performance TestSuite to help people understand all the numbers. best regards, Thomas |
From: Jakob B. <jbr...@ho...> - 2002-03-02 19:38:21
Attachments:
ojb-perform.txt
|
hi, here are my performance results against mysql and ms-access. where do you get the jdbc-results from ? jakob ----- Original Message ----- From: "Thomas Mahler" <tho...@ho...> To: "Ricardo Argüello" <ri...@ya...> Cc: "Florian Bruckner" <bf...@fl...>; "ojb" <obj...@li...> Sent: Thursday, February 28, 2002 4:20 PM Subject: Re: [OJB-developers] "performance" target results against MySql > Hi Ricardo, > > <snip> > > Your performance results look really bad. To give you an impression that > this is not typical for OJB I have attached a zipped html document > containing 3 tables. > The tables contain: > 1. your testresults > 2. my test against MS Access > 3. my test against HSQLDB > > The Result for HSQLDB are a bit distorted as HSQBL does most things > inmemory. That's why it is so fast. But that's also why the OJB version > is not that much slower (in absolute numbers) but the ratio is still 45% > > For MS-Access you see a more "classic" OJB effect. Native JDBC is not > very fast. OJB is slower. But at a very reasonable ratio: 19% > > My experience with DB2 and ORACLE are similar, but I currently have no > numbers available. > > That's why I'm really shocked by your tests. > > > I have only a few possible explanations: > 1. There have been changes between 0.7.314 (the version I used) and > 0.7.343 (your version) that had major impacts on performance. I had some > few runs on my machine that show that this isn't the case. > > 2. The JDBC driver. People have often told me how fast MySql is. But > when I see the results of your native JDBC tests I think it's rather slow... > Maybe that other internal problems of the MYSQL JDBC driver lead to such > exorbitant results. > Maybe OJB uses certain features that are not well supported. > > Maybe it's a good idea to share experiences with other MYSQL / OJB users > to share their findings and insights. Everyone is invited to post his > performance test results! > > I am a bit surprised about the bad performance for primary key based > look up (querying1 and 2). Are you sure there is a primary key defined > for the table ? > > 3. OJB has become slow. As you can see from my tables OJB is not "slow" > in general. OJB has been carefully performance tuned in the past. > But we have implemented a lot of new features that almost all have > performance impacts. > > After finishing all 1.0 features I want to have a complete code > walkthrough to implement performance improvements. > > > > > > > > The results show that direct JDBC is 62.7% faster than OJB (against MySql): > > > > [ojb] Time: 1,393.023 > > [jdbc] Time: 874.658 > > > > > > I think I found my problem.... > > > > :-( > > > > > > Mh, as mentioned above I don't believe that OJB is the only problem. > > I'd like to discuss about aceptable performance. Which factor would be > acceptable for you. > (For me even the native JDBC variant is definitely too slow). > 20%, 40% ? > > It's absolutely clear that an O/R layer (regardless which concrete > product) *will allways* be slower as handcoded JDBC. > > You get a lot of programming ease and pay it with performance. Period. > Of course we will work hard to minimize this overhead. > > I have written the performance testsuite to make people aware of the > performance impact they have for their specific environment. > > I'm planning to provide a document on the performance TestSuite to help > people understand all the numbers. > > best regards, > > Thomas > |
From: Thomas M. <tho...@ho...> - 2002-03-03 14:40:13
|
Hi Jakob, thanks for your My-SQL crosscheck! Your measurements look much more coherent than Ricardos. Jakob Braeuchi wrote: > hi, > > here are my performance results against mysql and ms-access. > where do you get the jdbc-results from ? > I think you are not using the latest build.xml. As of 0.7.343 it contains additional stuff under the performance target. (The tests should be executed 3 times and there should be executed a [ojb] and a [jdbc] version. Please send me your complete test results again! Thomas > jakob > > ----- Original Message ----- > From: "Thomas Mahler" <tho...@ho...> > To: "Ricardo Arg=FCello" <ri...@ya...> > Cc: "Florian Bruckner" <bf...@fl...>; "ojb" > <obj...@li...> > Sent: Thursday, February 28, 2002 4:20 PM > Subject: Re: [OJB-developers] "performance" target results against MyS= ql > > > >>Hi Ricardo, >> >><snip> >> >>Your performance results look really bad. To give you an impression th= at >> this is not typical for OJB I have attached a zipped html document >>containing 3 tables. >>The tables contain: >>1. your testresults >>2. my test against MS Access >>3. my test against HSQLDB >> >>The Result for HSQLDB are a bit distorted as HSQBL does most things >>inmemory. That's why it is so fast. But that's also why the OJB versio= n >>is not that much slower (in absolute numbers) but the ratio is still 4= 5% >> >>For MS-Access you see a more "classic" OJB effect. Native JDBC is not >>very fast. OJB is slower. But at a very reasonable ratio: 19% >> >>My experience with DB2 and ORACLE are similar, but I currently have no >>numbers available. >> >>That's why I'm really shocked by your tests. >> >> >>I have only a few possible explanations: >>1. There have been changes between 0.7.314 (the version I used) and >>0.7.343 (your version) that had major impacts on performance. I had so= me >>few runs on my machine that show that this isn't the case. >> >>2. The JDBC driver. People have often told me how fast MySql is. But >>when I see the results of your native JDBC tests I think it's rather >> > slow... > >>Maybe that other internal problems of the MYSQL JDBC driver lead to su= ch >>exorbitant results. >>Maybe OJB uses certain features that are not well supported. >> >>Maybe it's a good idea to share experiences with other MYSQL / OJB use= rs >>to share their findings and insights. Everyone is invited to post his >>performance test results! >> >>I am a bit surprised about the bad performance for primary key based >>look up (querying1 and 2). Are you sure there is a primary key defined >>for the table ? >> >>3. OJB has become slow. As you can see from my tables OJB is not "slow= " >>in general. OJB has been carefully performance tuned in the past. >>But we have implemented a lot of new features that almost all have >>performance impacts. >> >>After finishing all 1.0 features I want to have a complete code >>walkthrough to implement performance improvements. >> >> >> >>> >>>The results show that direct JDBC is 62.7% faster than OJB (against >>> > MySql): > >>> [ojb] Time: 1,393.023 >>> [jdbc] Time: 874.658 >>> >>> >>>I think I found my problem.... >>> >>>:-( >>> >>> >> >> >>Mh, as mentioned above I don't believe that OJB is the only problem. >> >>I'd like to discuss about aceptable performance. Which factor would be >>acceptable for you. >>(For me even the native JDBC variant is definitely too slow). >>20%, 40% ? >> >>It's absolutely clear that an O/R layer (regardless which concrete >>product) *will allways* be slower as handcoded JDBC. >> >>You get a lot of programming ease and pay it with performance. Period. >>Of course we will work hard to minimize this overhead. >> >>I have written the performance testsuite to make people aware of the >>performance impact they have for their specific environment. >> >>I'm planning to provide a document on the performance TestSuite to hel= p >>people understand all the numbers. >> >>best regards, >> >>Thomas >> >> >> >>----------------------------------------------------------------------= -- >> >>hardware : amd duron 750 , 392 mb ram >>os: win2k >>jdk: 1.4.0 >>ojb: 0.7.343 >> >>db: mysql 3.23.49 >>jdbc: mm.mysql driver 2.0.11 >> >>[BOOT] INFO: OJB.properties:=20 file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 19348 msec >>[performance] INFO: updating 10000 Objects: 19548 msec >>[performance] INFO: querying 10000 Objects: 25386 msec >>[performance] INFO: querying 10000 Objects: 24465 msec >>[performance] INFO: fetching 10000 Objects: 2072 msec >>[performance] INFO: deleting 10000 Objects: 12328 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 17525 msec >>[performance] INFO: updating 10000 Objects: 18807 msec >>[performance] INFO: querying 10000 Objects: 24305 msec >>[performance] INFO: querying 10000 Objects: 22973 msec >>[performance] INFO: fetching 10000 Objects: 1833 msec >>[performance] INFO: deleting 10000 Objects: 12188 msec >> >>Time: 201.891 >> >>OK (1 tests) >> >> >>db: ms-access 2000 >>jdbc: jdbc-odbc bridge of jdk 1.4.0 >> >>[BOOT] INFO: OJB.properties:=20 file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[DEFAULT] WARN: problems with platform=20 ojb.broker.platforms.PlatformMsAccessImpl:=20 ojb.broker.platforms.PlatformMsAccessImpl >>[DEFAULT] WARN: OJB will use PlatformDefaultImpl instead >>[performance] INFO: inserting 10000 Objects: 20048 msec >>[performance] INFO: updating 10000 Objects: 27380 msec >>[performance] INFO: querying 10000 Objects: 19808 msec >>[performance] INFO: querying 10000 Objects: 18717 msec >>[performance] INFO: fetching 10000 Objects: 2784 msec >>[performance] INFO: deleting 10000 Objects: 16473 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 20860 msec >>[performance] INFO: updating 10000 Objects: 28251 msec >>[performance] INFO: querying 10000 Objects: 18366 msec >>[performance] INFO: querying 10000 Objects: 241 msec >>[performance] INFO: fetching 10000 Objects: 2724 msec >>[performance] INFO: deleting 10000 Objects: 17625 msec >> >>Time: 194.67 >> >>OK (1 tests) >> |
From: Jakob B. <jbr...@ho...> - 2002-03-03 16:12:02
Attachments:
ojb-perform.txt
|
hi, i used the version from the cvs-repository but started the tests from eclipse. here are the latest results. jakob ----- Original Message ----- From: "Thomas Mahler" <tho...@ho...> To: "Jakob Braeuchi" <jbr...@ho...> Cc: "Ricardo Argüello" <ri...@ya...>; "ojb" <obj...@li...> Sent: Sunday, March 03, 2002 3:40 PM Subject: Re: [OJB-developers] "performance" target results against MySql Hi Jakob, thanks for your My-SQL crosscheck! Your measurements look much more coherent than Ricardos. Jakob Braeuchi wrote: > hi, > > here are my performance results against mysql and ms-access. > where do you get the jdbc-results from ? > I think you are not using the latest build.xml. As of 0.7.343 it contains additional stuff under the performance target. (The tests should be executed 3 times and there should be executed a [ojb] and a [jdbc] version. Please send me your complete test results again! Thomas > jakob > > ----- Original Message ----- > From: "Thomas Mahler" <tho...@ho...> > To: "Ricardo Argüello" <ri...@ya...> > Cc: "Florian Bruckner" <bf...@fl...>; "ojb" > <obj...@li...> > Sent: Thursday, February 28, 2002 4:20 PM > Subject: Re: [OJB-developers] "performance" target results against MySql > > > >>Hi Ricardo, >> >><snip> >> >>Your performance results look really bad. To give you an impression that >> this is not typical for OJB I have attached a zipped html document >>containing 3 tables. >>The tables contain: >>1. your testresults >>2. my test against MS Access >>3. my test against HSQLDB >> >>The Result for HSQLDB are a bit distorted as HSQBL does most things >>inmemory. That's why it is so fast. But that's also why the OJB version >>is not that much slower (in absolute numbers) but the ratio is still 45% >> >>For MS-Access you see a more "classic" OJB effect. Native JDBC is not >>very fast. OJB is slower. But at a very reasonable ratio: 19% >> >>My experience with DB2 and ORACLE are similar, but I currently have no >>numbers available. >> >>That's why I'm really shocked by your tests. >> >> >>I have only a few possible explanations: >>1. There have been changes between 0.7.314 (the version I used) and >>0.7.343 (your version) that had major impacts on performance. I had some >>few runs on my machine that show that this isn't the case. >> >>2. The JDBC driver. People have often told me how fast MySql is. But >>when I see the results of your native JDBC tests I think it's rather >> > slow... > >>Maybe that other internal problems of the MYSQL JDBC driver lead to such >>exorbitant results. >>Maybe OJB uses certain features that are not well supported. >> >>Maybe it's a good idea to share experiences with other MYSQL / OJB users >>to share their findings and insights. Everyone is invited to post his >>performance test results! >> >>I am a bit surprised about the bad performance for primary key based >>look up (querying1 and 2). Are you sure there is a primary key defined >>for the table ? >> >>3. OJB has become slow. As you can see from my tables OJB is not "slow" >>in general. OJB has been carefully performance tuned in the past. >>But we have implemented a lot of new features that almost all have >>performance impacts. >> >>After finishing all 1.0 features I want to have a complete code >>walkthrough to implement performance improvements. >> >> >> >>> >>>The results show that direct JDBC is 62.7% faster than OJB (against >>> > MySql): > >>> [ojb] Time: 1,393.023 >>> [jdbc] Time: 874.658 >>> >>> >>>I think I found my problem.... >>> >>>:-( >>> >>> >> >> >>Mh, as mentioned above I don't believe that OJB is the only problem. >> >>I'd like to discuss about aceptable performance. Which factor would be >>acceptable for you. >>(For me even the native JDBC variant is definitely too slow). >>20%, 40% ? >> >>It's absolutely clear that an O/R layer (regardless which concrete >>product) *will allways* be slower as handcoded JDBC. >> >>You get a lot of programming ease and pay it with performance. Period. >>Of course we will work hard to minimize this overhead. >> >>I have written the performance testsuite to make people aware of the >>performance impact they have for their specific environment. >> >>I'm planning to provide a document on the performance TestSuite to help >>people understand all the numbers. >> >>best regards, >> >>Thomas >> >> >> >>------------------------------------------------------------------------ >> >>hardware : amd duron 750 , 392 mb ram >>os: win2k >>jdk: 1.4.0 >>ojb: 0.7.343 >> >>db: mysql 3.23.49 >>jdbc: mm.mysql driver 2.0.11 >> >>[BOOT] INFO: OJB.properties: file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 19348 msec >>[performance] INFO: updating 10000 Objects: 19548 msec >>[performance] INFO: querying 10000 Objects: 25386 msec >>[performance] INFO: querying 10000 Objects: 24465 msec >>[performance] INFO: fetching 10000 Objects: 2072 msec >>[performance] INFO: deleting 10000 Objects: 12328 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 17525 msec >>[performance] INFO: updating 10000 Objects: 18807 msec >>[performance] INFO: querying 10000 Objects: 24305 msec >>[performance] INFO: querying 10000 Objects: 22973 msec >>[performance] INFO: fetching 10000 Objects: 1833 msec >>[performance] INFO: deleting 10000 Objects: 12188 msec >> >>Time: 201.891 >> >>OK (1 tests) >> >> >>db: ms-access 2000 >>jdbc: jdbc-odbc bridge of jdk 1.4.0 >> >>[BOOT] INFO: OJB.properties: file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[DEFAULT] WARN: problems with platform ojb.broker.platforms.PlatformMsAccessImpl: ojb.broker.platforms.PlatformMsAccessImpl >>[DEFAULT] WARN: OJB will use PlatformDefaultImpl instead >>[performance] INFO: inserting 10000 Objects: 20048 msec >>[performance] INFO: updating 10000 Objects: 27380 msec >>[performance] INFO: querying 10000 Objects: 19808 msec >>[performance] INFO: querying 10000 Objects: 18717 msec >>[performance] INFO: fetching 10000 Objects: 2784 msec >>[performance] INFO: deleting 10000 Objects: 16473 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 20860 msec >>[performance] INFO: updating 10000 Objects: 28251 msec >>[performance] INFO: querying 10000 Objects: 18366 msec >>[performance] INFO: querying 10000 Objects: 241 msec >>[performance] INFO: fetching 10000 Objects: 2724 msec >>[performance] INFO: deleting 10000 Objects: 17625 msec >> >>Time: 194.67 >> >>OK (1 tests) >> _______________________________________________ Objectbridge-developers mailing list Obj...@li... https://lists.sourceforge.net/lists/listinfo/objectbridge-developers |
From: Thomas M. <tho...@ho...> - 2002-02-28 15:39:13
|
Hi Ricardo, <snip> > > Thomas, these changes to the db-setup.sql file should be included in the distribution... > I don't run MySql. Thus I can't verify The MYSql DDL others contribute. If you have a completely patched db-setup.sql that allows to pass all JUnit tests please send it to me. I will integrate it into the OJB distro. Thanks, Thomas |