> >> My test databases have 10000 to 20000 records. My program "gets" every
> >> record and locks it
> >
> > That does not say much,
>
> There's not much to say.
Record size for example so that a comparison to the DbCache size could be
done.
10000 locked records must really present extraordinary stress on the system.
I made for example this funny experience: (I shall abstract from unimportant
details)
1. Allocating 34000 blocks on the heap.
2. Sorting blocks by some criterion
3. Deallocating in the sorted order. The action could take 20-30 secs.
Correct alternative:
3. Sorting by the ptr value, i.e. as UInt32, and then the deallocation.
Takes 1-2 secs.
System overhead in case of DB records on NVFS systems must be much larger...
> I wish that were true. Below is an example that creates a 5MB database,
> closes it, opens it, writes to it, closes it, and does a reset. After
I actually observed and reported the same issue earlier. For me there is the
only logical explanation:
NVFS works in a separate thread, therefore asynchroneously. Hence, if you do
some changes and immediate reset, the changes will usually be lost.
I saw some mention from Dmitry Grinberg about NVFS thread - that would
perfectly fit together.
Advice of the type SysTaskDelay(xxx) is a bit obscuring the problem.
Moreover, it is not acceptable in case of frequent DB writes. But maybe you
can afford it.
With best regards,
Jan Slodicka
Resco, Palm Division
--
For information on using the PalmSource Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/