... and at this point I'd be thinking "static file". Distributed, if
necessary. 

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Charles Stevenson
Sent: Friday, April 24, 2009 12:19 AM
To: [email protected]
Subject: Re: [U2] UV 10.1.22; Dynamic File question

Allen Egerton wrote:
> The situation is that I'm potentially adding a million records to a
> dynamic file.  That's not hypothetical, it's a real life scenario.  And
> I don't want to wait while the file splits multiple times over the
> course of the add.  I don't have that large a window.  I want to force
> the file to expand the weekend before so that when I add the records the
> file isn't rebuilding.
>
> The file's already dynamic, so setting Minimum.Modulus doesn't seem to
> do me much good unless I can figure out how to force it to split to that
> minium.modulos.  And there's the crux of my question.  How can I force
> it to split?
Allen,
Only doing CONFIGURE.FILE . . . MINIMUM.MODULUS  does not make the file 
grow.  It just tells UV that if & when the file ever grows that big, 
don't let it shrink smaller. You need to be sneakier.
Here are 2 ways reserving space on DATA.30,  & one for OVER.30.

1.  Do it this way if you can't have any downtime,  but can sneak 
writing one bogus little record.

Tinker with MERGE.LOAD & SPLIT.LOAD then repeatedly write a fake record, 
so that each write triggers a split until you get to the size you want.
Let's say you want min mod of 10,000 and your current mod is 1,000
CONFIGURE.FILE YOURFILE   MINIMUM.MODULUS 10000   MERGE.LOAD 1  
SPLIT.LOAD 2
run this:
   open "YOURFILE" to F else stop
   for i  = 1000 to 10000  ;* you need 9000 =10,000-1,000 splits
      write '' F, 'dummy'
      delete F, 'dummy'
   next i

Now set MERGE.LOAD & SPLIT.LOAD TO where you want them (usually 50 & 80).
Until you load your real data you may be well below MERGE percentage,  
but merges will not happen because of minimum.modulus parameter..


2. Use resize if you can get exclusive use of the file.  (I don't think 
"CONCURRENT" works with dynamic files.  but I'm wary with static too.)
RESIZE will allow you to set the minimum modulus, but maybe not using 
the syntax as documented. 
And syntax differs according to acct flavour and OS (and UV rel?)
If RESIZE does nOt recognize MINIMUM.MODULUS on the command line,  then 
specify the mod explicitly, like you would a static hashed file.  That 
will become the minimum.modulus and the file will be sized accordingly.

      RESIZE YOURFILE 30 10000 4  [SEQ.NUM]  (syntax different in Pick 
flavour)

will resize the file,  type 30, setting MINIMUM.MODULUS TO 10000  and 
reserve the disk space in DATA.30, setting the current modulus to 10000 too.
(Of course, if the file is already larger than that, the current modulus 
will be larger than 10000.)

3. Neither of the above will reserve room in OVER.30.   If you know what 
your data will be like, then you know how much overload you'll need.
If you have the luxury of being able to create bogus data, you could 
write many large records so that OVER.30 grows.  Then delete all the 
bogus large records.
Other han that,  I don't know a way to make OVER.30 grow.
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to