Secondary space is not a bad thing
Secondary space is for storing ( individual ) records that exceed the
Primary frame size, eg items that are larger than 4096 bytes
The actual item data ( ie the individual item exceeding 4096 bytes, or
8192 bytes in the case of 'F.LOCKING' above( I assume a Seperation of
2 was used when creating the 'F.LOCKING' file ) is held in the
Secondary space
The Primary space used for such ( large ) items simply holds a
'pointer' to the 'out of group' data, so the 'Primary space'
requirement for large items is minimal, and the actual data for the
item is efficiently held 'out of group'
The 'thing to compare', when deciding whether the file needs resizing,
is the 'Groups' ( '250001' in the case of the
'FBNK.EB.CONTRACT.BALANCES' file )
with the current 'Primary file space: Total Frames' ( '259220' in the
case of the 'FBNK.EB.CONTRACT.BALANCES' file )
If the 'Primary file space: Total Frames is in excess of the 'Groups',
then the 'Primary file space' contains 'linked' frames
Meaning for each update / access of an item within any of the
'Groups' , with a 'linked' frame, instead of having a maximum of
'4096' bytes to scan in order to find the item within the Group,
at least 2 frames of data may be scanned in order to find the required
item
The higher the ratio of 'Total Frames ( in Primary space)' to the
'Groups' the higher the likelihood that there are more than just one
linked frame in each 'Group', eg for the 'FBNK.EB.CONTRACT.BALANCES'
file above
Groups : 250001
Frames in Primary Space : 259220
So there are at least 9219 linked Frames in Primary space, ie
approximately 4% of the Groups in the 'FBNK.EB.CONTRACT.BALANCES' file
have a 'linked' frame
[ which on the whole is not too bad ], but could be improved by
resizing this file with a modulo of 26501 ( say )
Pat.
--
Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines
IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24
To post, send email to jB...@googlegroups.com
To unsubscribe, send email to jBASE-un...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
--
Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines
IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24
To post, send email to jB...@googlegroups.com
To unsubscribe, send email to jBASE-un...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
One solution (as you said) is to do something like this:
IF MOD(COUNTER,1000) THEN CRT COUNTER
Another solution (depending on the technology involved, is simply
to minimize the window on a telnet client which is receiving
streamed output. You still incur transmission time but you don't
incur time in the UI to render text, which can also be
substantial.
HTH
Tony Gravagno
Nebula Research and Development
TG@ remove.pleaseNebula-RnD.com
Nebula R&D sells mv.NET and other Pick/MultiValue products
worldwide, and provides related development services
remove.pleaseNebula-RnD.com/blog
Visit PickWiki.com! Contribute!
http://Twitter.com/TonyGravagno
While the render time on a fairly weak terminal emulator, such as some of those popular with MV users (bit which I will restrain myself from knocking) can be an issue as it causes flow control delays, once the data has left the process and entered the socket layer on the transmitting process, it does not affect the speed of the running process. On earlier RS232 system then the effect depended on the hardware implementation. Later Reality systems used plan, which acted in a similar manner to sockets. However many systems had hardwired ports and the transmission time did affect things because the RS232 buffer was very small and would quickly fill up and block the process.
However, by far the more significant issue is the fact that even before the days of pre-emptive kernels, queuing yourself up for some IO meant that you lost your time slice and had to wait for the monitor to come back around and pick you up again. Pre-emptive scheduling helped this a little but even so, you have given up your time slice for no reason and this is the real issue. Minimizing the local telnet client will only [possibly] save you some local CPU cycles.
A crude benchmarking system could be created on dedicated hardware, which would give you an indication of the load on the CPU at any point in time by seeing how many single '*' characters the process could send to the screen in a given period of time (say a second or 5 seconds). Because the process would RQM as soon as the IO was dished up, then in order to queue the next '*' you had to wait for another time slice and that meant that the higher the load, the smaller the number of '*' sent to the screen.
Of course I know of nobody at all that has fallen for this, most especially not any ex-Microdata programmers who might have written a transaction journaling system and printed '*' the screen to indicate transactions being processed/restored/etc. Oh no, yes indeed, definitely didn't happen to any mate of mine and definitely not on the journal restore program.
Jim
HTH
--
IF MOD(COUNTER,1000) ELSE CRT COUNTER
otherwise you will be displaying every number except every thousandth ;-)
Dan
My responses can be fast, free, or debugged - pick two. :)
Thanks Dan.
T
On Mar 3, 1:22 am, Daniel Klein <danielklei...@gmail.com> wrote:
> It would be better to use ELSE, i.e.,
>
> IF MOD(COUNTER,1000) ELSE CRT COUNTER
>
> otherwise you will be displaying every number except every thousandth ;-)
>
> Dan
It would be better to use THEN, i.e.,
IF MOD(COUNTER,1000) = 0 THEN CRT COUNTER
Mike.
My responses are fast, free AND accurate ;-)
VK
On Mar 4, 2:08 am, Daniel Klein <danielklei...@gmail.com> wrote:
> Hey, if your good and you know it, why hide it...right, Jimi?
>
> Dan
>
> On Wed, Mar 3, 2010 at 3:26 PM, <FFT2...@aol.com> wrote:
> > In a message dated 3/3/2010 7:14:49 AM Pacific Standard Time,
Just use jrf.
However I feel that the algorithm has been tuned detrimentally in recent times, but it is the one that TEMENOS want you to use. But, start with jbase.markmail.org to search for older posts on this.
Jim
j
On Mar 4, 3:36 pm, "[Xze]" <bhdistort...@gmail.com> wrote:
> Unfortunatelly jrf is not suitable for the files that have separation 2, 4,
> 8
>
> That's why i'm trying to rely on jstat
>
> Thanks for the link, will give a try
>
> Xze
>
>
>
> On Thu, Mar 4, 2010 at 16:25, Jim Idle <j...@temporal-wave.com> wrote:
> > Just use jrf.
>
> > However I feel that the algorithm has been tuned detrimentally in recent
> > times, but it is the one that TEMENOS want you to use. But, start with
> > jbase.markmail.org to search for older posts on this.
>
> > Jim
>
> > *From:* jb...@googlegroups.com [mailto:jb...@googlegroups.com] *On Behalf
> > Of *[Xze]
> > *Sent:* Thursday, March 04, 2010 3:57 AM
> > *To:* jb...@googlegroups.com
>
> > *Subject:* Re: Resizing files based on jstat output
>
> > Thank you for your reply.
>
> > Actually, my task is as follows:
> > I'm checking with jstat every file on a regular basis (once per two weeks
> > or once per month). My next step is to apply a formula, something like
> > IF (Total.Frames.In.Primary* Frame.Size +
> > Total.Frames.In.Secondary*Frame.Size)/Record.Bytes > File.size
> > or whatever and to know whether this particular file requires resize or
> > not.
>
> > So, the question was what is that 'magic' formula and what is the formula
> > for new modulo, assuming that my file requires resize
>
> > Regards,
> > Xze
>
> > Groups = *1629 *, Frame size = 8192 bytes , Secondary Record Size = 16384
> > bytes
> > Restore re-size parameters : (none)
> > File size = 16457728 bytes , Inode = 2272742 , Device = Id
> > 9223372217243402242
> > Last Accessed Wed Mar 3 08:30:39 2010 , Last Modified Wed Mar 3 08:30:39
> > 2010
> > Backup = YES , Log = YES , Rollback = YES , Network = AUTO
>
> > Record Count = 24206 , Record Bytes = 10265821
> > Bytes/Record = 424 , Bytes/Group = 6301
> > Primary file space: Total Frames = *1950 *, Total Bytes = 9840132
> > Secondary file space: Total Frames = 56 , Total Bytes = 425689
>
> > jsh ~ -->jrf -ES*3261*,2 F.LOCKING
>
> > jsh ~ -->jstat -v F.LOCKING
> > File ../bnk.data/eb/F.LOCKING
> > Type=J4 , Hash method = 5
> > Created at Wed Mar 3 08:32:26 2010
> > Groups = *3261 *, Frame size = 8192 bytes , Secondary Record Size = 16384
> > bytes
> > Restore re-size parameters : (none)
> > File size = 27828224 bytes , Inode = 2295685 , Device = Id
> > 9223372217243402242
> > Last Accessed Wed Mar 3 08:32:27 2010 , Last Modified Wed Mar 3 08:32:27
> > 2010
> > Backup = YES , Log = YES , Rollback = YES , Network = AUTO
>
> > Record Count = 24206 , Record Bytes = 10265821
> > Bytes/Record = 424 , Bytes/Group = 3148
> > Primary file space: Total Frames = *3340 *, Total Bytes = 9840132