[sqlite] memory issue with large amount of inserts

2008-02-01 Thread zqzuk

Hi, I am using SQLite 3.5.4, my application has encountered a memory
management issue which I think is caused  by sqlite. I have searched the
forum and found this thread describing most similar situation as mine

http://www.nabble.com/Memory-Usage-to13798003.html#a13850915

My application is accessing sqlite through JAVA on local machine, windows xp
sp2, there are 4 threads accessing 4 *different* databases at the same time,
each doing 2 million inserts to *different* databases.

I have noticed that after about 3 hours, the system slowed down
dramatically, such that processing every 1000 records(then 1000 inserts)
took now 20 mins - 1 hr instead of sever seconds at the very beginning. I
then checked the resource monitor and found all of my 2 gb memory has been
used. 

I searched this forum and found talks about similar issues but solutions
seem to be re-compiling sqlite in C using new parameters, but I am using
JAVA and would like to know whether there is alternative/equivalent
solution? And also the above thread I quote mentioned that closing/reopen
connection can free up resources that sqlite occupy, i would take this as a
simple but dirty workaround?


Please may I have you suggestions , many thanks!

-- 
View this message in context: 
http://www.nabble.com/memory-issue-with-large-amount-of-inserts-tp15225948p15225948.html
Sent from the SQLite mailing list archive at Nabble.com.


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Solaris bus error

2008-02-01 Thread Ken
Dan 
I thought the test was from async3.test...  But I'm probably wrong.

I got the info from ddd and asked it to tell me the contents of ppLock which 
was 0.

Here is the output directly from gdb as you requested.

print *ppLock
$1 = (struct lockInfo *) 0x0

gdb) info threads
  4 process 262671  0xfef9fa58 in _lwp_sema_wait () from /usr/lib/libc.so.1
  3 process 197135  0xfef9cf4c in door_restart () from /usr/lib/libc.so.1
  2 process 131599  0xfef9f3a8 in _signotifywait () from /usr/lib/libc.so.1
* 1 process 66063  0x00049750 in findLockInfo (fd=4, ppLock=0x1345ad,
ppOpen=0x1345a9) at ../sqliteSrc/sqlite-3.5.5/src/os_unix.c:670

Let me know if you need anything else.

Dan <[EMAIL PROTECTED]> wrote: 
On Feb 1, 2008, at 6:37 AM, Ken wrote:

> Recompiled without the -O2 flags:
>
> #0  0x00049750 in findLockInfo (fd=4, ppLock=0x1345ad,  
> ppOpen=0x1345a9)
> at ../sqliteSrc/sqlite-3.5.5/src/os_unix.c:670
> 670   *ppLock = pLock;
>
> *ppLock is Null

Hi Ken,

This doesn't look quite right to me. In the debugger you can
do "print *ppLock" and it doesn't complain?

The test case you were running (async.test) uses more than one
thread, so maybe the one we're looking at is not the one that
caused the problem.

Can you try running [info threads] in the debugger, and then
see if you can get a stack trace for another thread? Thanks.

Dan.




>
> Ken  wrote: Core/backtrace info:
>
>
> (gdb) core-file core
> Core was generated by `/home/ixion/LIB/sqlite3test/.libs/ 
> testfixture ../sqliteSrc/sqlite-3.5.5/test/qu'.
> Program terminated with signal 10, Bus error.
> Reading symbols from /home/ixion/LIB/sqlite3test/.libs/ 
> libsqlite3.so.0...done.
> Loaded symbols for /home/ixion/LIB/sqlite3test/.libs/libsqlite3.so.0
> Reading symbols from /usr/lib/libpthread.so.1...done.
> Loaded symbols for /usr/lib/libpthread.so.1
> Reading symbols from /usr/local/lib/libtcl8.5.so...done.
> Loaded symbols for /usr/local/lib/libtcl8.5.so
> Reading symbols from /usr/lib/libdl.so.1...done.
> Loaded symbols for /usr/lib/libdl.so.1
> Reading symbols from /usr/lib/libsocket.so.1...done.
> Loaded symbols for /usr/lib/libsocket.so.1
> Reading symbols from /usr/lib/libnsl.so.1...done.
> Loaded symbols for /usr/lib/libnsl.so.1
> Reading symbols from /usr/lib/libm.so.1...done.
> Loaded symbols for /usr/lib/libm.so.1
> Reading symbols from /usr/lib/librt.so.1...done.
> Loaded symbols for /usr/lib/librt.so.1
> Reading symbols from /usr/lib/libc.so.1...done.
> Loaded symbols for /usr/lib/libc.so.1
> Reading symbols from /usr/local/lib/libgcc_s.so.1...done.
> Loaded symbols for /usr/local/lib/libgcc_s.so.1
> Reading symbols from /usr/lib/libmp.so.2...done.
> Loaded symbols for /usr/lib/libmp.so.2
> Reading symbols from /usr/lib/libaio.so.1...done.
> Loaded symbols for /usr/lib/libaio.so.1
> Reading symbols from /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so. 
> 1...done.
> Loaded symbols for /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
> Reading symbols from /usr/lib/libthread.so.1...done.
> Loaded symbols for /usr/lib/libthread.so.1
> #0  0x000345d4 in findLockInfo (fd=567296, ppLock=0xd1995,  
> ppOpen=0xd1991)
> at ../sqliteSrc/sqlite-3.5.5/src/os_unix.c:671
> 671   if( ppOpen!=0 ){
> (gdb) backtrace
> #0  0x000345d4 in findLockInfo (fd=567296, ppLock=0xd1995,  
> ppOpen=0xd1991)
> at ../sqliteSrc/sqlite-3.5.5/src/os_unix.c:671
> #1  0x000355b4 in unixOpen (pVfs=0x8a96c,
> zPath=0xc0380 "/home/ixion/LIB/sqlite3test/chocolate/banana/ 
> vanilla/file.db", pFile=0xd196d, flags=262, pOutFlags=0x)
> at ../sqliteSrc/sqlite-3.5.5/src/os_unix.c:2268
> #2  0x000340bc in sqlite3OsOpen (pVfs=0x2102,
> zPath=0xc0380 "/home/ixion/LIB/sqlite3test/chocolate/banana/ 
> vanilla/file.db", pFile=0xd196d, flags=262, pFlagsOut=0x)
> at ../sqliteSrc/sqlite-3.5.5/src/os.c:112
>
> ppOpen  os_unxi.c/671 is not !=0 but *ppOpen is 0...
>
>
> James Dennett  wrote: > -Original Message-
>> From: Ken [mailto:[EMAIL PROTECTED]
>> Sent: Thursday, January 31, 2008 2:55 PM
>> To: sqlite
>> Subject: [sqlite] Solaris bus error
>>
>>
>> After addressing the -lrt sched yield on solaris.
>>
>> make test resulted in:
>>
>> async3-1.0... Ok
>> async3-1.1...make: *** [test] Bus Error (core dumped)
>>
>> Any ideas?
>
> Getting a stack trace out of that core file with a debugger would seem
> to be the next step, and seeing the full text output if there is any
> more.
>
> -- James
>
>
>
>
> James Dennett  wrote: > -Original Message-
>> From: Ken [mailto:[EMAIL PROTECTED]
>> Sent: Thursday, January 31, 2008 2:55 PM
>> To: sqlite
>> Subject: [sqlite] Solaris bus error
>>
>>
>> After addressing the -lrt sched yield on solaris.
>>
>> make test resulted in:
>>
>> async3-1.0... Ok
>> async3-1.1...make: *** [test] Bus Error (core dumped)
>>
>> Any ideas?
>
> Getting a stack trace out of that core file with a debugger would seem
> to be the next step, and seeing the full text output if there is any
> 

Re: [sqlite] memory issue with large amount of inserts

2008-02-01 Thread Jonas Sandman
I guess it's not as simple as that you're application is hogging the
Java VM so much that the garbage collector is never running? You can
always force it to run explicitly if so...

/Jonas

On Fri, Feb 1, 2008 at 1:46 PM, zqzuk <[EMAIL PROTECTED]> wrote:
>
>  Hi, I am using SQLite 3.5.4, my application has encountered a memory
>  management issue which I think is caused  by sqlite. I have searched the
>  forum and found this thread describing most similar situation as mine
>
>  http://www.nabble.com/Memory-Usage-to13798003.html#a13850915
>
>  My application is accessing sqlite through JAVA on local machine, windows xp
>  sp2, there are 4 threads accessing 4 *different* databases at the same time,
>  each doing 2 million inserts to *different* databases.
>
>  I have noticed that after about 3 hours, the system slowed down
>  dramatically, such that processing every 1000 records(then 1000 inserts)
>  took now 20 mins - 1 hr instead of sever seconds at the very beginning. I
>  then checked the resource monitor and found all of my 2 gb memory has been
>  used.
>
>  I searched this forum and found talks about similar issues but solutions
>  seem to be re-compiling sqlite in C using new parameters, but I am using
>  JAVA and would like to know whether there is alternative/equivalent
>  solution? And also the above thread I quote mentioned that closing/reopen
>  connection can free up resources that sqlite occupy, i would take this as a
>  simple but dirty workaround?
>
>
>  Please may I have you suggestions , many thanks!
>
>  --
>  View this message in context: 
> http://www.nabble.com/memory-issue-with-large-amount-of-inserts-tp15225948p15225948.html
>  Sent from the SQLite mailing list archive at Nabble.com.
>
>
>  -
>  To unsubscribe, send email to [EMAIL PROTECTED]
>  -
>
>

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] memory issue with large amount of inserts

2008-02-01 Thread zqzuk

just to add that I am using transaction, and the batch size is 2000



zqzuk wrote:
> 
> Hi, I am using SQLite 3.5.4, my application has encountered a memory
> management issue which I think is caused  by sqlite. I have searched the
> forum and found this thread describing most similar situation as mine
> 
> http://www.nabble.com/Memory-Usage-to13798003.html#a13850915
> 
> My application is accessing sqlite through JAVA on local machine, windows
> xp sp2, there are 4 threads accessing 4 *different* databases at the same
> time, each doing 2 million inserts to *different* databases.
> 
> I have noticed that after about 3 hours, the system slowed down
> dramatically, such that processing every 1000 records(then 1000 inserts)
> took now 20 mins - 1 hr instead of sever seconds at the very beginning. I
> then checked the resource monitor and found all of my 2 gb memory has been
> used. 
> 
> I searched this forum and found talks about similar issues but solutions
> seem to be re-compiling sqlite in C using new parameters, but I am using
> JAVA and would like to know whether there is alternative/equivalent
> solution? And also the above thread I quote mentioned that closing/reopen
> connection can free up resources that sqlite occupy, i would take this as
> a simple but dirty workaround?
> 
> 
> Please may I have you suggestions , many thanks!
> 
> 

-- 
View this message in context: 
http://www.nabble.com/memory-issue-with-large-amount-of-inserts-tp15225948p15226252.html
Sent from the SQLite mailing list archive at Nabble.com.


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] SQLite 3.5.5 on OpenBSD running on HPPA (HP9000) make test

2008-02-01 Thread drh
Rob Sciuk <[EMAIL PROTECTED]> wrote:
> Dear DRH,
> 
> I post the previous (FreeBSD/Ubuntu) and this *ONLY* to exercise the new
> 3.5.5 bits given the wholsale changes.  I hope you find them useful, but
> AFAICT, 3.5.5 looks pretty good from a perf/stability standpoint.
> 
> In the obscure machine/OS category, I lit this up on an HP9000 K200 
> running not HP-UX, but rather OpenBSD 4.2 (heh heh).  Build was 
> uneventful, and testfixture ran to completion with the following output.
> 

We do not understand the async3 problem and cannot reproduce it.
All the other issues have been fixed in CVS HEAD.

--
D. Richard Hipp <[EMAIL PROTECTED]>


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] SQLite 3.5.5 on OpenBSD running on HPPA (HP9000) make test

2008-02-01 Thread Rob Sciuk


Dear DRH,

I post the previous (FreeBSD/Ubuntu) and this *ONLY* to exercise the new
3.5.5 bits given the wholsale changes.  I hope you find them useful, but
AFAICT, 3.5.5 looks pretty good from a perf/stability standpoint.

In the obscure machine/OS category, I lit this up on an HP9000 K200 
running not HP-UX, but rather OpenBSD 4.2 (heh heh).  Build was 
uneventful, and testfixture ran to completion with the following output.


$ uname -a
OpenBSD hppa.controlq.com 4.2 xyzzy#0 hppa
$ make test | grep -v Ok | tee test.output.HPPA

./testfixture ../test/quick.test
async3-1.0...
Error: error deleting "chocolate/banana/vanilla/file.db": permission denied
async3-1.1...
Error: table abc already exists
async3-1.2.2...
Expected: [1 {database is locked}]
 Got: [1 {attempt to write a readonly database}]
async3-1.3.2...
Expected: [1 {database is locked}]
 Got: [1 {attempt to write a readonly database}]
async3-1.4.2...
Expected: [1 {database is locked}]
 Got: [1 {attempt to write a readonly database}]
async3-1.5.2...
Expected: [1 {database is locked}]
 Got: [1 {attempt to write a readonly database}]
async3-1.6.2...
Expected: [1 {database is locked}]
 Got: [1 {attempt to write a readonly database}]
async3-1.7.2...
Expected: [1 {database is locked}]
 Got: [1 {attempt to write a readonly database}]
bind-4.4...
Error: floating point value is Not a Number
bind-4.5...
Expected: [null real real]
 Got: []
btree-2.1.1...CURSOR 485C3688 rooted at1(rw) currently at 1.0 eof
PAGE 1:  flags=0x09  frag=0   parent=0
cell  0: i=913..1023  chld=0nk=2020 nd=1792 payload=*** This is a very 
PAGE 2:  flags=0x08  frag=0   parent=0

PAGE   1 addr=42205894 nRef=2
Skipping crash5 tests: not compiled with -DSQLITE_MEMDEBUG...
lock4-1.3...
Error: database is locked
Skipping malloc5 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc6 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc7 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc8 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc9 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocA tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocB tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocC tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocD tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocE tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocF tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocG tests: not compiled with -DSQLITE_MEMDEBUG...
printf-1.7.6...
Expected: [Three integers: (100) ( f4240) (3641100)]
 Got: [Three integers: ( 100) ( f4240) (3641100)]
printf-1.8.6...
Expected: [Three integers: (9) (3b9ac9ff) (7346544777)]
 Got: [Three integers: ( 9) (3b9ac9ff) (7346544777)]
printf-1.9.7...
Expected: [Three integers: ( 0) (   0x0) ( 0)]
 Got: [Three integers: ( 0) ( 0) ( 0)]
Skipping safety tests since SQLITE_DEBUG is off
time with cache: 38383126 microseconds per iteration
time without cache: 145730273 microseconds per iteration
result=one 10 three 5 two 14
speed3-1.incrvacuum..  4612032 uS216.82417 row/s
speed3-1.normal... 9631095 uS103.83035 row/s
Incrvacuum: Read 1098, wrote 94
Normal: Read 10479, wrote 43
speed3-2.incrvacuum..  1803619 uS554.44082 row/s
speed3-2.normal... 3585545 uS278.89763 row/s
Incrvacuum: Read 2843, wrote 1
Normal: Read 10011, wrote 0
tcl-1.6...
Expected: [1 {syntax error in expression "x*"}]
 Got: [1 {invalid bareword "x"
in expression "x*";
should be "$x" or "{x}" or "x(...)" or ...}]
vtab6-2.2...
Expected: [1 2 3 {} 2 3 4 1 3 4 5 2]
 Got: [1 2 3 {} 2 3 4 {} 3 4 5 {}]
vtab6-2.4...
Expected: [1 2 3 {} {} {} 2 3 4 {} {} {} 3 4 5 1 2 3]
 Got: [1 2 3 {} {} {} 2 3 4 {} {} {} 3 4 5 {} {} {}]
vtab6-2.5...
Expected: [2 3 4 {} {} {} 3 4 5 1 2 3]
 Got: [2 3 4 {} {} {} 3 4 5 {} {} {}]
vtab6-2.6...
Expected: [1 2 3 {} {} {} 2 3 4 {} {} {}]
 Got: [1 2 3 {} {} {} 2 3 4 {} {} {} 3 4 5 {} {} {}]
vtab6-7.1...
Expected: [1 999 999 2 131 130 999]
 Got: [1 999 999 999 999 999 999]
vtab6-9.1.1...
Expected: []
 Got: [2 22 {}]
vtab6-9.2...
Expected: []
 Got: [2 22 {}]
22 errors out of 38217 tests
Failures on these tests: async3-1.0 async3-1.1 async3-1.2.2 async3-1.3.2 
async3-1.4.2 async3-1.5.2 async3-1.6.2 async3-1.7.2 bind-4.4 bind-4.5 lock4-1.3 
printf-1.7.6 printf-1.8.6 printf-1.9.7 tcl-1.6 vtab6-2.2 vtab6-2.4 vtab6-2.5 
vtab6-2.6 vtab6-7.1 vtab6-9.1.1 vtab6-9.2
All memory allocations freed - no leaks
Maximum memory usage: 14162418 bytes
Current memory usage: 0 bytes
*** Error code 1

Stop in /u0/sw/SQLite/sqlite-3.5.5/OpenBSD (line 568 of Makefile).

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Using LIKE to check the first digits?

2008-02-01 Thread Samuel R. Neff
If you need

LIKE 'abc%'

and for it to not be case insensitive, then LIKE is preferred.  Also, LIKE
is standard SQL so if you're writing SQL that has to run across different
vendors, you'd use LIKE.

Sam


---
We're Hiring! Seeking a passionate developer to join our team building Flex
based products. Position is in the Washington D.C. metro area. If interested
contact [EMAIL PROTECTED]
 
-Original Message-
From: P Kishor [mailto:[EMAIL PROTECTED] 
Sent: Thursday, January 31, 2008 9:28 PM
To: sqlite-users@sqlite.org
Subject: Re: [sqlite] Using LIKE to check the first digits?


if GLOB is so good, I am curious what are the instances in which one
would prefer

  col LIKE '123%'

over

  col GLOB '123*'


-
To unsubscribe, send email to [EMAIL PROTECTED]

-


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] SQLite 3.5.5 on OpenBSD running on HPPA (HP9000) make test

2008-02-01 Thread Rob Sciuk

On Fri, 1 Feb 2008, [EMAIL PROTECTED] wrote:

We do not understand the async3 problem and cannot reproduce it.
All the other issues have been fixed in CVS HEAD.



Actually, upon inspection, that may be an artifact of an earlier attempt 
to run the tests as root, the "chocolate" directory was, in fact owned by 
root.  I'm re-running the tests, having removed that directory, and I'll 
repost the results upon completion ...


Cheers,
Rob.

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] 3.5.5. Bus error on HPUX

2008-02-01 Thread Ken
I think this is probably a very simiilar issue as found on the solaris.
The error occurred during asyn3.test.
Here is the gdb output  

analyze-99.1... Ok
async3-1.0... Ok
async3-1.1...make: *** [test] Bus error (core dumped)
hermes:herm10:/home/ixion/LIB/sqliteSrc/tst>> ls core
core
hermes:herm10:/home/ixion/LIB/sqliteSrc/tst>> gdb .libs/testfixture
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "hppa2.0w-hp-hpux11.11"...
(gdb) core-file core
Core was generated by `testfixture'.
Program terminated with signal 10, Bus error.
warning: The shared libraries were not privately mapped; setting a
breakpoint in a shared library will not work until you rerun the program.

Reading symbols from /usr/lib/dld.sl...done.
Reading symbols from /home/ixion/LIB/sqliteSrc/tst/.libs/libsqlite3.sl.8...done.
Reading symbols from /usr/local/lib/libtcl8.5.sl...done.
Reading symbols from /usr/lib/libpthread.1...done.
Reading symbols from /usr/lib/libxnet.2...done.
Reading symbols from /usr/lib/libxti.2...done.
Reading symbols from /usr/lib/libm.2...done.
Reading symbols from /usr/lib/libc.2...done.
Reading symbols from /usr/lib/libdld.2...done.
#0  0x00031984 in sqlite3MinimumFileFormat ()
at ../sqlite-3.5.5/src/os_unix.c:2400
2400  memset(pFile, 0, sizeof(unixFile));
(gdb) info threads
* 3 system thread 29226  0x00031984 in sqlite3MinimumFileFormat ()
at ../sqlite-3.5.5/src/os_unix.c:2400
  2 system thread 29237  0x in ?? ()
  1 system thread 29234  0xc0055560 in __pthread_start ()
   from /usr/lib/libpthread.1
(gdb) print pFile
$1 = (sqlite3_file *) 0x4005787f
(gdb) print *pFile
$2 = {pMethods = 0x0}
(gdb)





Re: [sqlite] memory issue with large amount of inserts

2008-02-01 Thread zqzuk

I read pieces of information from other threads but I got more confused... I
think I d better ask this question first: how exactly does sqlite manage
memory usage, when does it attemp to release memory? Does page size/ number
of pages affect insert operations? Does transactional-insert lock up memory
and never release them?

Because from my application it seems that as more inserts have been done in
batches, memory consuption is increasing... I have tried close and reopen
the connection but with no help.

Any suggestions please, many thanks!




zqzuk wrote:
> 
> Hi, I am using SQLite 3.5.4, my application has encountered a memory
> management issue which I think is caused  by sqlite. I have searched the
> forum and found this thread describing most similar situation as mine
> 
> http://www.nabble.com/Memory-Usage-to13798003.html#a13850915
> 
> My application is accessing sqlite through JAVA on local machine, windows
> xp sp2, there are 4 threads accessing 4 *different* databases at the same
> time, each doing 2 million inserts to *different* databases.
> 
> I have noticed that after about 3 hours, the system slowed down
> dramatically, such that processing every 1000 records(then 1000 inserts)
> took now 20 mins - 1 hr instead of sever seconds at the very beginning. I
> then checked the resource monitor and found all of my 2 gb memory has been
> used. 
> 
> I searched this forum and found talks about similar issues but solutions
> seem to be re-compiling sqlite in C using new parameters, but I am using
> JAVA and would like to know whether there is alternative/equivalent
> solution? And also the above thread I quote mentioned that closing/reopen
> connection can free up resources that sqlite occupy, i would take this as
> a simple but dirty workaround?
> 
> 
> Please may I have you suggestions , many thanks!
> 
> 

-- 
View this message in context: 
http://www.nabble.com/memory-issue-with-large-amount-of-inserts-tp15225948p15231834.html
Sent from the SQLite mailing list archive at Nabble.com.


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Using LIKE to check the first digits?

2008-02-01 Thread Griggs, Donald
Regarding:

>>Indices won't help with LIKE unless the column as a NOCASE collation.
Use GLOB instead:
>>   ... WHERE number GLOB '1234*';
>>Note that "*" is the wildcard character with GLOB, not "%"
>>as in LIKE.  The above will use an index on the number column if it is
available.
===

Thus, Dr. Hipp answers that age-old question, 
  "What's not to like?"


This email and any attachments have been scanned for known viruses using 
multiple scanners. We believe that this email and any attachments are virus 
free, however the recipient must take full responsibility for virus checking. 
This email message is intended for the named recipient only. It may be 
privileged and/or confidential. If you are not the named recipient of this 
email please notify us immediately and do not copy it or use it for any 
purpose, nor disclose its contents to any other person.

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] db4o 500x faster than sqlite?

2008-02-01 Thread Kosenko Max


gerpux wrote:
> 
> I've heard that the guys at db4o said that, under certain
> circunstances, db4o is 500x faster than sqlite:
> Is this because of the jdbc driver?
> What would be a more realistic measure? (db4o is an object database,
> not a relational one)
> They are using the poleposition benchmark
> (http://polepos.sourceforge.net).
> Anybody knows if this benchmark is accurate for sqlite?

Hi.

"db4o OVER 500 TIMES FASTER THAN SQLITE"
http://www.db4o.com/about/news/newsletter/2007_11.aspx

Hm, interesting...Let's take a closer look.

What they are comparing is called Barcelona Circuit:
  "writes, reads, queries and deletes objects with a 5 level inheritance
structure"
  http://polepos.sourceforge.net/results/html/barcelona_write.html

500x times?
On 3 objects and 100 iterations db4o took 1.3 seconds and SQLite 710
seconds.
Do you believe in correct test?


So they have B0-B4 classes inherited from each other where B0 is a base one
for all.
Each has 1 integer field. B2 has an index on the field.

WRITE: 
  Creating N objects of class B4 and setting all their fields to values from
0 to N.
  Commiting all N objects together.

READ:
  Select all B4 objects at once.

QUERY:
  Get count of all objects.
  Find all B4 objects where B2.i = x. x is rising from 0 to N.
  Everything in 1 transaction.

DELETE:
  Delete all B4 objects in 1 transaction.


The evil is in details as we know...
First of all - settings:

DB4O
  no options provided

SQLITE:
  sqlite.autocommit=true
  sqlite.executebatch=false


Now take a look at the code (some run options seems like missing):

1. db4o - sync probably off (at least it's definetly not flushing every
transaction).
2. sqlite - sync 100% on.

3. db4o - wrapped with transactions (don't forget #1 - that means it's not
even flushing transactions)
4. sqlite - no transactions at all - each insert/update/delete is 100%
flushed separately

5. db4o - uses denormalized table - 1 table with 1 binary field with object
data + 1 index
6. sqlite - 5 normalized tables with 1 integer field each (+5 own indexes on
parentid and no indexes on item id??) + 1 index and separate insert/delete +
select makes 5 joins always

7. db4o uses internal cache of queries
8. sqlite prepared statements thrown after each cycle

9. db4o - uses 1 command for every step
10.sqlite statements executed one by one

11.db4o - uses fast cached count
12.sqlite - counts objects on each cycle

13.db4o - caches everything in memory and not using pages (reading chunks)
14.sqlite - small page size and small cache.

And don't forget, JDBC driver of SQLite makes additional overhead in
contrast. 

So I will do own tests to see what's the real difference. I'll try .NET
provider of SQLite and db4o.NET. 
And also I'll do the test on the DB size more than available RAM - 100K
objects not serious...

And will post back later with full code here and DB4O forum.
My prediction? I'll do it A LOT faster on SQLite than db4o.
-- 
View this message in context: 
http://www.nabble.com/db4o-500x-faster-than-sqlite--tp13484012p15231844.html
Sent from the SQLite mailing list archive at Nabble.com.


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] SQLite 3.5.5 make test on OpenBSD 4.2 on HPPA

2008-02-01 Thread Rob Sciuk


rerun, with chocolate directory removed prior to test run.

./testfixture ../test/quick.test
bind-4.4...
Error: floating point value is Not a Number
bind-4.5...
Expected: [null real real]
 Got: []
btree-2.1.1...CURSOR 4041F588 rooted at1(rw) currently at 1.0 eof
PAGE 1:  flags=0x09  frag=0   parent=0
cell  0: i=913..1023  chld=0nk=2020 nd=1792 payload=*** This is a very 
PAGE 2:  flags=0x08  frag=0   parent=0

PAGE   1 addr=4370A094 nRef=2
Skipping crash5 tests: not compiled with -DSQLITE_MEMDEBUG...
lock4-1.3...
Error: database is locked
Skipping malloc5 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc6 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc7 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc8 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping malloc9 tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocA tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocB tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocC tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocD tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocE tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocF tests: not compiled with -DSQLITE_MEMDEBUG...
Skipping mallocG tests: not compiled with -DSQLITE_MEMDEBUG...
printf-1.7.6...
Expected: [Three integers: (100) ( f4240) (3641100)]
 Got: [Three integers: ( 100) ( f4240) (3641100)]
printf-1.8.6...
Expected: [Three integers: (9) (3b9ac9ff) (7346544777)]
 Got: [Three integers: ( 9) (3b9ac9ff) (7346544777)]
printf-1.9.7...
Expected: [Three integers: ( 0) (   0x0) ( 0)]
 Got: [Three integers: ( 0) ( 0) ( 0)]
Skipping safety tests since SQLITE_DEBUG is off
time with cache: 39849317 microseconds per iteration
time without cache: 144188993 microseconds per iteration
result=one 10 three 5 two 14
speed3-1.incrvacuum..  4612508 uS216.80179 row/s
speed3-1.normal... 9956014 uS100.44180 row/s
Incrvacuum: Read 1098, wrote 94
Normal: Read 10479, wrote 43
speed3-2.incrvacuum..  1801945 uS554.95589 row/s
speed3-2.normal... 3599141 uS277.84407 row/s
Incrvacuum: Read 2843, wrote 1
Normal: Read 10011, wrote 0
tcl-1.6...
Expected: [1 {syntax error in expression "x*"}]
 Got: [1 {invalid bareword "x"
in expression "x*";
should be "$x" or "{x}" or "x(...)" or ...}]
vtab6-2.2...
Expected: [1 2 3 {} 2 3 4 1 3 4 5 2]
 Got: [1 2 3 {} 2 3 4 {} 3 4 5 {}]
vtab6-2.4...
Expected: [1 2 3 {} {} {} 2 3 4 {} {} {} 3 4 5 1 2 3]
 Got: [1 2 3 {} {} {} 2 3 4 {} {} {} 3 4 5 {} {} {}]
vtab6-2.5...
Expected: [2 3 4 {} {} {} 3 4 5 1 2 3]
 Got: [2 3 4 {} {} {} 3 4 5 {} {} {}]
vtab6-2.6...
Expected: [1 2 3 {} {} {} 2 3 4 {} {} {}]
 Got: [1 2 3 {} {} {} 2 3 4 {} {} {} 3 4 5 {} {} {}]
vtab6-7.1...
Expected: [1 999 999 2 131 130 999]
 Got: [1 999 999 999 999 999 999]
vtab6-9.1.1...
Expected: []
 Got: [2 22 {}]
vtab6-9.2...
Expected: []
 Got: [2 22 {}]
14 errors out of 38178 tests
Failures on these tests: bind-4.4 bind-4.5 lock4-1.3 printf-1.7.6 printf-1.8.6 
printf-1.9.7 tcl-1.6 vtab6-2.2 vtab6-2.4 vtab6-2.5 vtab6-2.6 vtab6-7.1 
vtab6-9.1.1 vtab6-9.2
All memory allocations freed - no leaks
Maximum memory usage: 14162418 bytes
Current memory usage: 0 bytes
*** Error code 1

Stop in /u0/sw/SQLite/sqlite-3.5.5/OpenBSD (line 568 of Makefile).

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Precompiled binaries for Windows Not Version 3.5.5

2008-02-01 Thread Zarko Popovski
I see also SQLite 5.5.4 version compiled, is there SQLite 3.5.5 precompiled
version for M$ Windows or if there is not drh. please compile it :)

On Feb 1, 2008 12:15 AM, Robert Wishlaw <[EMAIL PROTECTED]> wrote:

> Under the Precompiled binaries for Windows section of the downloads
> page, the sqlite-3.5.5.zip, sqlitedll-3.5.5.zip and
> tclsqlite-3.5.5.zip files contain 3.5.4 binaries from December 12,
> 2007.
>
> Robert Wishlaw
>
>
> -
> To unsubscribe, send email to [EMAIL PROTECTED]
>
> -
>
>


Re: [sqlite] Precompiled binaries for Windows Not Version 3.5.5

2008-02-01 Thread drh
"Zarko Popovski" <[EMAIL PROTECTED]> wrote:
> I see also SQLite 5.5.4 version compiled, is there SQLite 3.5.5 precompiled
> version for M$ Windows or if there is not drh. please compile it :)
> 

I fixed that problem this morning.  When did you last look?

--
D. Richard Hipp <[EMAIL PROTECTED]>


-
To unsubscribe, send email to [EMAIL PROTECTED]
-