<br><br>
<div class="gmail_quote">On Feb 2, 2008 10:57 AM, Glen Beane <<a href="mailto:glen.beane@gmail.com">glen.beane@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br><br>
<div class="gmail_quote">
<div>
<div></div>
<div class="Wj3C7c">On Feb 2, 2008 4:36 AM, Garrick Staples <<a href="mailto:garrick@usc.edu" target="_blank">garrick@usc.edu</a>> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>On Sat, Feb 02, 2008 at 02:45:51AM -0500, Glen Beane alleged:<br></div>
<div>
<div></div>
<div>> I've just checked in some changes into trunk that increase the PBS_JOBBASE<br>> constant from 11 to 61. This allows for 64 char .JB and .SC files on<br>> pbs_server/pbs_mom<br>><br>> the previous 14 char limit was too small when you combine large job sequence<br>
> nubmers and large job arrays - we just couldn't hash those 11 characters<br>> enough to make the neessary number of unique file names.<br>><br>> This should help the job arrays scale much better.<br>><br>
> .JB files with the old size for their jobbase array are automatically<br>> upgraded when pbs_server starts<br>> we used a similar auto upgrader from 2.1.x to 2.2.0. the only down side is<br>> if you upgrade to 2.3.x you wouldn't be able to recover your jobs if you<br>
> downgrade back to 2.2.x (they will be renamed as .BD files I think)<br><br><br></div></div>If we changed:<br> if (version == 0x00020200)<br> {<br> return upgrade_2_2_X(pj, fds);<br> }<br> else<br> {<br> return upgrade_2_1_X(pj, fds);<br>
}<br> }<br><br>To something like:<br> switch (version) {<br> 0x00020100: upgrade_2_1_X(pj, fds);<br> 0x00020200: upgrade_2_2_X(pj, fds);<br> default:<br> }<br> return;<br><br>Then we could get upgrades from any point in the past to the current struct?<br>
</blockquote></div></div>
<div>this would work:</div>
<div> switch (version) {
<div class="Ih2E3d"><br> 0x00020200: upgrade_2_2_X(pj, fds);</div></div>
<div> break;<br> default: upgrade_2_1_X(pj, fds);<br> }<br> return;</div>
<div> </div>
<div>there is no version 00020100 - there was no version number in the ji_qs struct at that point.</div>
<div> </div>
<div>upgrade_2_1_X upgrades anything from 2.1.X and earlier (I chose version numbers that couldn't match the first int in the old ji_qs struct without a version) to the new 00020300 version.</div>
<div> </div>
<div>upgrade_2_2_X goes from 00020200 to 00020300</div>
<div> </div>
<div>you don't need to call both upgrade funcs<br></div>
<div> </div>
<div> </div></div></blockquote></div>
<div> </div>
<div>by the way, I did test upgrading 2.1-fixes -> trunk and 2.2-fixes -> trunk<br></div>