The wspec directory

Sadly this file is only just started, but at least its started.

The intention is to document the various files in the wspec subdirectory of an acedb database.

cachesize.wrm

A user said (and Jean replied):

> I have created a new acedb database from scratch using 4.9z code. When I 
> start it I get a popup: "The cache1 is full do you want write access"
> 
> I'm guessing it's because I have 2 large sequence objects
> 
> In cachesize.wrm I have:
> CACHE1 = 4000
> CACHE2 = 4000
> DISK =  4000
> 
> Presumably I can alter the above to fix this?
> 
> 1) Is there a way of estimating what to set this to

well, if you get a warning, you may wish to increase
the values are in kb, so here you ask for
4M of cache 1 and cache 2
this is very little on todays computer

my own human genome config has
CACHE1 = 60000    // Size of first cache, as used in w5/blocksubs.c
CACHE2 = 100000     // Size of second cache, as used in w5/objcache.c

so 60M and 100M

If you are interested in understanding the gloomy details:
the minimal cache 1 size is
size of biggest obj, normally the ?Text disctionary and the size
of that is given in the graphic interface
main-acedb-window-> admin button right mouse menu-> program status
in that window : right mouse button ->  number of obj per class

plus about 1 kb per object you which to have in the cache
so at minimum 1000 * 1 k = 1M

but all this is really irrelevant, 
just see how big your machine is a put at least 10 M 10 M
i do not know why you got so small numbers (4M/4M) to begin with


> 2) Do I have to recompile and/or re-read the data

No, 
in fact acedb adapts itself automatically
if the cache is smaller than the biggest object the cache is
simply doubled, the limit you give is an indication not a
hard limit

if the cache is full objects get deleted
however if they have been updated/modified, they should not
be deleted, so the program asks you to get write access so it 
can save the changes

so my guess is that you got this message while changing the
data, is that correct ?


> 3) If i have to re-read data will it dump correctly in it's current state

you do NOT need to dump reload

but if you did, the cache size would not prevent dumping.

By the way, if some day you get a disk error, those happen
sometimes on machines running over NFS on a heavy network
it is nearly guaranteed that you can still open the dabase
dump and reload. This works because acedb keeps shadow copies
of previous states of the database, so the dump normally does does not
need to access the corrupted block which is normally detected during a
write operation.

By the way again, acedb runs much faster (factor 3 to 10) off a local
disk relative to off an NFS mounted disk

> 3) What are the consequences of doing nothing

you may get the warning often
but the largest effect is that too small a cache, and yours is very
small, just good for a demo database, slows the program because
there will be more disk access

please how did you inherit such a config
where did you get your wspec directory from ?

by the way also, i suppose you know that the same code may
work on several databases with totally different schemata
and cache sizes etc, each database has its own wspec config dir