Table size

Joakim Schramm joakim at astrocalc.com
Thu Jun 1 20:20:43 CDT 2006


 

> -----Original Message-----
> From: valentina-bounces at lists.macserve.net 
> [mailto:valentina-bounces at lists.macserve.net] On Behalf Of 
> Ruslan Zasukhin
> Sent: 01 June 2006 19:23
> To: valentina at lists.macserve.net
> Subject: Re: Table size
> 
> On 6/1/06 7:33 PM, "Joakim Schramm" <joakim at astrocalc.com> wrote:
> 
> >> In case data small, i.e. You need small db you can reduse 
> this Using 
> >> db.SegmentSize
> >> 
> > So what does a "cluster" mean in real, I were do things 
> start and end 
> > for what goes into 1 cluster? 1 field = 1 cluster or? In 
> such case why 
> > 32KB default, or wait this cluster also hold field data so 
> when record 
> > added discsize do not grow until whole cluster is full and 
> start new 
> > one (adding new 32 * 177 = 5664KB to disc file)?
> > 
> > In practical sense this mean 32KB segment can hold 4096 
> 8byte fields 
> > before discsize changes? Just trying to understand...
> > 
> > from COM docs:
> > 
> > inSegmentSize The size of one cluster in the database file; 
> default 32KB.
> 
> Please read WIKI , Vkernel manual about how Valentina keep 
> internal files
> 

Well I had read both pdf and wiki, but it didn't give answer I looked for. I
was after a more not too deep "technical" description, giving a bit more
details of what causes a new segment to be created. The only thing I find on
the subject is as below which basically says that "V can create big empty
DB's based on segment size" but noting about what causes a segment to be
created to start with and how each segment is related to specific parts of
my on db's structure. I can Guess "RB-Tree" may contain the answer or part
of it, but I am not a database techie and have no clue what RB-Tree is
although I can think of it being some "db specification" used inside of
Valentina. 

Basically I just wanted to know if my "assumptions" was correct or in what
way they wasn't?

>From kernel.pdf:

Choosing a database segment size on creation* Each database volume contains
the map of internal files (based on RB-Tree). Each internal file has one or
several segments.* This parameter also specifies how many disk space will
allocate each logical file when it must be expanded. * On default Valentina
create database volumes with segment size 32Kb. This parameter should not be
smaller of 4K and not big sense set it bigger of 32Kb or may be 64Kb.*
Smaller segment size will produce more segments in a logical file. So deep
of RB-Tree will be higher, what can reduce performance of random access
operation. * Note that empty Valentina database can allocate many disk space
right after creation. The more fields the more allocated space.

Regards,

Joakim



More information about the Valentina mailing list