> >> 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/

Reply via email to