Hi, Thanks a lot!
OK, that's strange, usually FileDescriptor.sync isn't all that slow... Could you try using the MVStore storage engine? It is still experimental, and there is still a challenge to be solved (the Raspberry Pi doesn't have a real time clock, and the MVStore currently needs one to eventually free up disk space). But as an experiment, it would be interesting to know how it behaves, because the MVStore doesn't use FileDescriptor.sync. To try it, append ";MV_STORE=true" to the database URL. Please note the file format is not compatible, so best if you use a different database name as well. Could you please also run it with the profiler, and post the result? Regards, Thomas On Sunday, January 5, 2014, Famco wrote: > Hi Thomas, > > i could not manage to login with user="" > Buit maybe this dump from the profile helps: > Peter > > Profiler: top 5 stack trace(s) of 14109 ms: > 360/1578 (22%): > at java.io.FileDescriptor.sync(Native Method) > at org.h2.store.fs.FileDisk.force(FilePathDisk.java:406) > at org.h2.store.FileStore.sync(FileStore.java:403) > at org.h2.store.PageStore.writeVariableHeader(PageStore.java:950) > at org.h2.store.PageStore.setLogFirstPage(PageStore.java:944) > at org.h2.store.PageLog.openForWriting(PageLog.java:187) > at org.h2.store.PageStore.openForWriting(PageStore.java:380) > at org.h2.store.PageStore.openExisting(PageStore.java:366) > at org.h2.store.PageStore.open(PageStore.java:285) > at org.h2.engine.Database.getPageStore(Database.java:2277) > at org.h2.engine.Database.open(Database.java:610) > at org.h2.engine.Database.openDatabase(Database.java:236) > at org.h2.engine.Database.<init>(Database.java:231) > at org.h2.engine.Engine.openSession(Engine.java:56) > at org.h2.engine.Engine.openSession(Engine.java:160) > at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139) > at org.h2.engine.Engine.createSession(Engine.java:122) > at org.h2.engine.Engine.createSession(Engine.java:28) > at > org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) > at org.h2.Driver.connect(Driver.java:73) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at dbmanager.DatabaseManager.getNewConnection(DatabaseManager.java:55) > at dbmanager.DatabaseManager.checkDb(DatabaseManager.java:68) > at jac.JACstart.main(JACstart.java:45) > 233/1578 (14%): > at java.io.FileDescriptor.sync(Native Method) > at org.h2.store.fs.FileDisk.force(FilePathDisk.java:406) > at org.h2.store.FileStore.sync(FileStore.java:403) > at org.h2.store.PageStore.writeVariableHeader(PageStore.java:950) > at org.h2.store.PageStore.setLogFirstPage(PageStore.java:944) > at org.h2.store.PageLog.removeUntil(PageLog.java:705) > at org.h2.store.PageStore.checkpoint(PageStore.java:434) > at org.h2.store.PageStore.openForWriting(PageStore.java:383) > at org.h2.store.PageStore.openExisting(PageStore.java:366) > at org.h2.store.PageStore.open(PageStore.java:285) > at org.h2.engine.Database.getPageStore(Database.java:2277) > at org.h2.engine.Database.open(Database.java:610) > at org.h2.engine.Database.openDatabase(Database.java:236) > at org.h2.engine.Database.<init>(Database.java:231) > at org.h2.engine.Engine.openSession(Engine.java:56) > at org.h2.engine.Engine.openSession(Engine.java:160) > at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139) > at org.h2.engine.Engine.createSession(Engine.java:122) > at org.h2.engine.Engine.createSession(Engine.java:28) > at > org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) > at org.h2.Driver.connect(Driver.java:73) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at dbmanager.DatabaseManager.getNewConnection(DatabaseManager.java:55) > at dbmanager.DatabaseManager.checkDb(DatabaseManager.java:68) > at jac.JACstart.main(JACstart.java:45) > 26/1578 (1%): > at java.lang.ClassLoader.defineClass1(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:792) > at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) > at java.net.URLClassLoader.access$100(URLClassLoader.java:71) > at java.net.URLClassLoader$1.run(URLClassLoader.java:361) > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at org.h2.engine.DbObjectBase.getSQL(DbObjectBase.java:102) > at org.h2.schema.SchemaObjectBase.getSQL(SchemaObjectBase.java:38) > at org.h2.index.BaseIndex.getCreateSQL(BaseIndex.java:363) > at org.h2.table.RegularTable.addIndex(RegularTable.java:289) > at org.h2.store.PageStore.addMeta(PageStore.java:1692) > at org.h2.store.PageStore.readMetaData(PageStore.java:1594) > at org.h2.store.PageStore.recover(PageStore.java:1370) > at org.h2.store.PageStore.openExisting(PageStore.java:361) > at org.h2.store.PageStore.open(PageStore.java:285) > at org.h2.engine.Database.getPageStore(Database.java:2277) > at org.h2.engine.Database.open(Database.java:610) > at org.h2.engine.Database.openDatabase(Database.java:236) > at org.h2.engine.Database.<init>(Database.java:231) > at org.h2.engine.Engine.openSession(Engine.java:56) > at org.h2.engine.Engine.openSession(Engine.java:160) > at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139) > at org.h2.engine.Engine.createSession(Engine.java:122) > at org.h2.engine.Engine.createSession(Engine.java:28) > at > org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) > at org.h2.Driver.connect(Driver.java:73) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at dbmanager.DatabaseManager.getNewConnection(DatabaseManager.java:55) > at dbmanager.DatabaseManager.checkDb(DatabaseManager.java:68) > at jac.JACstart.main(JACstart.java:45) > 12/1578 (0%): > at org.h2.engine.DbObjectBase.getSQL(DbObjectBase.java:102) > at org.h2.schema.SchemaObjectBase.getSQL(SchemaObjectBase.java:38) > at org.h2.index.BaseIndex.getCreateSQL(BaseIndex.java:363) > at org.h2.table.RegularTable.addIndex(RegularTable.java:289) > at org.h2.store.PageStore.addMeta(PageStore.java:1692) > at org.h2.store.PageStore.readMetaData(PageStore.java:1594) > at org.h2.store.PageStore.recover(PageStore.java:1370) > at org.h2.store.PageStore.openExisting(PageStore.java:361) > at org.h2.store.PageStore.open(PageStore.java:285) > at org.h2.engine.Database.getPageStore(Database.java:2277) > at org.h2.engine.Database.open(Database.java:610) > at org.h2.engine.Database.openDatabase(Database.java:236) > at org.h2.engine.Database.<init>(Database.java:231) > at org.h2.engine.Engine.openSession(Engine.java:56) > at org.h2.engine.Engine.openSession(Engine.java:160) > at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139) > at org.h2.engine.Engine.createSession(Engine.java:122) > at org.h2.engine.Engine.createSession(Engine.java:28) > at > org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) > at org.h2.Driver.connect(Driver.java:73) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at dbmanager.DatabaseManager.getNewConnection(DatabaseManager.java:55) > at dbmanager.DatabaseManager.checkDb(DatabaseManager.java:68) > at jac.JACstart.main(JACstart.java:45) > 8/1578 (0%): > at org.h2.Driver.connect(Driver.java:73) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at dbmanager.DatabaseManager.getNewConnection(DatabaseManager.java:55) > at dbmanager.DatabaseManager.checkDb(DatabaseManager.java:68) > at jac.JACstart.main(JACstart.java:45) > 8/1578 (0%): > at org.h2.engine.Session.<init>(Session.java:77) > at org.h2.store.PageStore.<init>(PageStore.java:223) > at org.h2.engine.Database.getPageStore(Database.java:2269) > at org.h2.engine.Database.open(Database.java:610) > at org.h2.engine.Database.openDatabase(Database.java:236) > at org.h2.engine.Database.<init>(Database.java:231) > at org.h2.engine.Engine.openSession(Engine.java:56) > at org.h2.engine.Engine.openSession(Engine.java:160) > at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139) > at org.h2.engine.Engine.createSession(Engine.java:122) > at org.h2.engine.Engine.createSession(Engine.java:28) > at > org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) > at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) > at org.h2.Driver.connect(Driver.java:73) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at dbmanager.DatabaseManager.getNewConnection(DatabaseManager.java:55) > at dbmanager.DatabaseManager.checkDb(DatabaseManager.java:68) > at jac.JACstart.main(JACstart.java:45) > summary: > 42%: org.h2.store.fs > 19%: org.h2.engine > 12%: org.h2.store > 7%: org.h2.util > 3%: org.h2.table > > > > > Am Donnerstag, 2. Januar 2014 14:12:37 UTC+1 schrieb Famco: >> >> Hi, >> >> I am working on a home project with h2 on Raspberry Pi. I managed to get >> the h2 running and it seems to work good and pretty fast. Now I have some >> questions wich the manual doesnt answer: >> >> 1) the quickstart section on the homepage tells that using "jdbc:h2:~/test" >> should create the test database in the homedirectory. In fact the database >> exists (because it works!), but i cannot find the file on the raspberry pi. >> 2) should I use any special settings to avoid problems caused by an >> unexpected "powerdown" of the raspberry? >> >> Thank you in advance >> >> Famco >> > -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:_e({}, > 'cvml', 'h2-database%[email protected]');>. > To post to this group, send email to > [email protected]<javascript:_e({}, 'cvml', > '[email protected]');> > . > Visit this group at http://groups.google.com/group/h2-database. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/groups/opt_out.
