Holidays file enhancements


#1

Hi,

The discussion here: Wrong holidays file makes scheduler infinite loop triggered this.

Background: Holidays file has information about prime/non-prime windows for days of the week for a site. Right now, there’s no documented behavior for what happens if data for any of the days is missing or if the data is inconsistent. The general use case, as well as the theme of the prime-time feature in PBS, seems to be to assume prime time if data is insufficient, so it seems like a good idea to officially enforce this behavior.

Design doc: https://pbspro.atlassian.net/wiki/spaces/PD/pages/1046151225/Holidays+file+missing+days+will+be+treated+as+ALL+PRIME

Please provide feedback. Thanks!


#2

Thanks @agrawalravi90! After this change, would an “out of date” holiday’s file (e.g., a “YEAR 2018” file in use in 2019) cause the scheduler to behave as though all time is prime time?

The current documentation seems ambiguous on this and it seems like this is a good time to define the behavior. The current docs state both “If there is no YEAR line in the holidays file, primetime is in force at all times”, and “You must specify the year, otherwise primetime is in force at all times, and PBS will not recognize any holidays”. Emphasis mine. Does “the year” mean “the CURRENT year”. Is an out of date YEAR the same a NO YEAR?

I would actually like to see a completely commented out holidays file (include example configuration) on a default PBS installation. Since most sites do not actually have prime/non-prime queues or make meaningful scheduling policy differentiation between prime/non-prime time, what we do today causes unnecessary simulation work for the scheduler in terms of simulating the (inconsequential) daily transitions between prime/non-prime. The holidays we do include are U.S.-centric, and even then I believe most U.S. sites making serious use of prime/non-prime time likely modify this to match their company calendar.

Prior to the change proposed in this post it would have been incorrect to have an empty holidays file, but now it seems like a good idea. Thoughts from anyone on this?

P.S., If we did this I’d further propose issuing the current “The holiday file is out of date; please update it.” scheduler log message IFF the holidays file has an out of date “YEAR” line, not if there is NO “YEAR” line (logging that with a default-black holidays file would be annoying).


#3

I was just logging in to request exactly what ScottC describes, let’s ship an “empty” holidays file to reduce the work/modifications required by the vast majority of our customers that do not use prime/non-prime in their scheduling policies.


#4

Thanks @scc and @smgoosen, I’ve updated the design, please let me know if it looks okay now.


#5

Thanks. Is there a specific reason we cannot support paying attention to weekday/saturday/sunday information without a year?

What happens if there is a year but it is in the past and there is weekday/saturday/sunday information present?

Maybe it does not need to be in the EDD, but do you agree about when the “The holiday file is out of date” message should / should not be logged?


#6

Then scheduler will honor prime/non-prime windows according to the weekday/saturday/sunday information, but it will log the “holidays file out of date” log message.

AFAIK, that’s just how the holidays feature has always behaved.


#7

Sounds good, thanks.


#8

My only comment is that we switch from ‘’ to ‘#’ for comments. I took the format of a common holidays file back when I originally wrote the scheduler (UNICOS 8). It used '’ as a comment. Now that UNICOS is decades forgotten, we should use a more common comment character.


#9

Gone, but not forgotten…

image

:wink: