From: ADVAX::"mcnc!VM1.NoDak.EDU!toon%NEWS.SARA.NL" 27-APR-1991 13:01:20.21 To: Multiple recipients of list ANU-NEWS CC: Subj: NEWGRPFILE/NEWITMFILE can create non-fragmented NEWS.GROUPS/NEWS.ITEMS Received: by ADVAX.DECnet (utk-mail11 v1.5) ; Sat, 27 Apr 91 13:00:47 EDT Received: from mcnc by ge-dab.GE.COM (5.61/GE-DAB 1.15) with UUCP id AA08621 for ; Sat, 27 Apr 91 12:27:39 -0400 Received: from VM1.NoDak.EDU by mcnc.mcnc.org (5.59/MCNC/3-21-91) id AA08710; Thu, 25 Apr 91 20:08:09 -0400 for ARISIA.DNET.ge.com!EVERHART Message-Id: <9104260008.AA08710@mcnc.mcnc.org> Received: from NDSUVM1.BITNET by VM1.NoDak.EDU (IBM VM SMTP R1.2.1MX) with BSMTP id 4180; Thu, 25 Apr 91 19:07:51 CDT Received: from NDSUVM1.BITNET by NDSUVM1.BITNET (Mailer R2.07) with BSMTP id 7587; Thu, 25 Apr 91 19:07:50 CDT Date: Thu, 25 Apr 91 14:59:02 GMT Reply-To: mcnc!VM1.NoDak.EDU!toon%NEWS.SARA.NL Sender: ANU-NEWS Discussion From: mcnc!VM1.NoDak.EDU!toon%NEWS.SARA.NL Subject: NEWGRPFILE/NEWITMFILE can create non-fragmented NEWS.GROUPS/NEWS.ITEMS To: Multiple recipients of list ANU-NEWS In article <9104232236.AA18459@jatz.aarnet.edu.au>, G.Huston@AARNET.EDU.AU write s: > Bill Glass sent me the following - I thought the response may be of > interest to the full list:... > > [Observations about GLOBAL_BUFFERS RMS parameter of news ISAM > files by Bill and Geoff deleted...] > > HOWEVER newitmfile and newgrpfile are not really very "nice" programs - the > file they create is created using a very minimal set of RMS parameters - > they are fragmented and totally untuned, as they are the result of a heap > of $PUT operations. (well not quite totally untuned as the $PUTS are in > ascending order of primary key) Well, they don't HAVE to be fragmented. I just added the following lines to newgrpfile (and the corresponding code to newitmfile ...): grpfab_1.fab$l_alq = 3*grpfab.fab$l_alq/4;/* Use 75 % of original allocation */ ... grpfab_1.fab$w_deq = grpfab.fab$l_alq/8; /* and a reasonable extend qty */ ... while ( !((status = sys$create(&grpfab_1)) & 1) && grpfab_1.fab$l_fop & FAB$M_CTG) { printf("Can't create %s contiguous (%d blocks); trying contiguous-best-try. grpfab_1.fab$l_fna, grpfab_1.fab$l_alq); grpfab_1.fab$l_fop &= ~FAB$M_CTG; grpfab_1.fab$l_fop |= FAB$M_CBT; } ... In words: Try to allocate three quarters of the original file size in advance; first try Contiguous, then (if it fails) Contiguous-Best-Try. Works for me ... -- Toon Moene, SARA - Amsterdam (NL) Internet: TOON@SARA.NL /usr/lib/sendmail.cf: Do.:%@!=/