UHS Build 7668 – December 29 2014
This build is primarily focused on back-end system improvements and a few minor UI changes. I’m trying to get things to a point with UHS where I don’t really need to do much to maintain it as it feels like the clock is ticking. Unfortunately the only thing I can’t automate is the creation of empty databases for new leagues… DreamHost won’t allow that with their mysql API. Eventually I’ll find a way around it. I’m also looking at keeping league data fairly trim… I’ve had to change how much Play by Play data is kept from Unlimited to just two seasons… I’ve also had to make a similar change to SavePoints. The goal here is to allow leagues to grow to 100 seasons or more with a minimal impact on performance.
Deleting Old Play-by-Play data / Instant Replays / Further Data Trimming
On each Season Change, Play-by-Play reports older than the previous season will be deleted from your league’s database. The reports were previously available with the Instant Replay option, however, our usage records indicate this feature is seldom used and only in the current season. You will still see the Instant Replay option for games played in your Current and Previous Season.
This change is being made to keep leagues as trim as possible… as leagues get older they take up more space and get slower… we have seen the impact slow responses have as we’ve had to make a few hotfixes over the last few days to support our new Game Deletion functionality.
We have also made quite a few back-end table changes to continue to “trim the fat”. It is likely our next build will focus on further response improvements due to increased demand on UHS systems.
Roster / Line Error Checking
We have removed the cron job that runs each minute in favour of a Roster & Line check each time there is a page load for when GMs are using UHS. There will continue to be a Roster & Line check for all teams appearing in the COM’s Play Games page to ensure games cannot be run for teams with errors.
League Groups for the General Job
We are experimenting with creating separate jobs for leagues based on your league size. We’re going to group up all of our leagues based on 500 MB chunks. Leagues larger than this (typically older leagues) will be getting their own separate cron job. The thought here is that as UHS usage grows, we can scale as needed. We are only applying this to the General job… so things like Free Agency, Waivers, Trade Deadlines, Junior & Farm (automatic) Roster setting jobs will be affected. I’ve been seeing warnings that this job has been taking more time than usual and it’s a directly related to the number of leagues we have running. I’m hoping you all don’t see any negative impacts with this change… if things seem slower or you’re seeing waiver items not going through, please contact me.
If things go well, I might apply this to the AutoGM and Live Game Update jobs as well.
SavePoint Maximum Back to Five
Originally when SavePoints were introduced we had released it as Unlimited, however, we quickly had to change it to three SavePoints per league. Once we moved to our current host (which offers unlimited storage) we were able to remove the SavePoint cap. Over the past two – three years that we’ve been with DreamHost, UHS usage has gone through the roof. DH has not asked us to limit our storage, however, the recent performance issues high-lighted an area of concern regarding SavePoints.
We are adding the Five SavePoint limit back to the system to try and keep leagues lean and slim. At one point we were looking for a new host, however, storage cost played a huge factor in UHS remaining with DreamHost. Most of this build is focused on keeping UHS running reliably with minimal human intervention… my goal is to get UHS to a point where it can operate when I’m no longer able to.
Please be assured that your current SavePoints will not be deleted. If you have five or more SavePoints you just won’t be able to create any new ones until you delete enough of them so you can create a new one.
Idle League Handling
We’ve made some changes to our idle league policies. In order for a league to be idle there must be no activity for 30 days (previously 90 days). Additionally, UHS would send out FOUR warnings before deletion each of which came after 3 days of no activity. This is being changed a single warning once the league has gone idle. If there continues to be no activity after 4 days, the league will be deleted. Leagues that are older than a year will continue to be automatically protected from going Idle.
Additionally, newly created leagues that have no login activity will now be deleted after 4 days instead of 7.
Sim Engine Tweak
I’ve increased the factor that skill plays in determining a Pass or Skate outcome from 2.00 to 2.25. This will make it slightly more likely that the player’s skill is going to determine the outcome vs. random chance. It also means that playing highly-skilled teams will not yield quite as many upset victories as before. We will be monitoring team records as we continue on since the last thing we want is to go back to unbeatable teams.
Deleting & Deactivating Teams
Teams can no longer be deleted if they have games present in the Schedule table regardless of what season it is. Additionally, Deactivating Teams will now result in a check for scheduled games for the team in the current season. If there are none, deactivation will go ahead.
Waiver Claims
Since the inception of UHS, teams could make claims on players placed on waivers under the right circumstances. According to NHL rules, this is not allowed. Going forward teams placing their players on waivers will not be able to make a claim on them.
Mass Coach Scouting
The Mass Coach Scouting option will only appear if there are more than 4 coaches available for scouting. This was changed as it was possible to scout a single coach at a reduced rate.
Trade Request Checks
Trade Request Checks will now only happen when Pro teams are playing in the Regular Season.
Automatic Draft Lists
GMs now have an option to automatically create a draft list based on the average skill of each eligible player. For goalies, this skill is calculated at Total / 9 while players are calculated at Total / 11.
Debug Deletion Job
We’ll be running a daily job to delete debug files that are older than one week. If you have experienced any errors or need us to look at the debug file for a game you’ve simmed, please let us know ASAP. If you take longer than a week, we won’t be able to look at the debug file. Typically errors are reported same or next day, so we keeping months worth of debug files didn’t do anything except waste storage (~250 GB).
Season Change Messaging
The Pre-Season to Regular Season advance screen has been changed to remove the old Junior player warning as it is no longer valid. A warning has been added concerning Player Training and Lawyers since these features cannot be modifed in the Regular Season and beyond. This was actually inadvertantly released with a hotfix on December 26 2014.
Bug Fixes
– Fixed an issue where setting the Max Farm Skill Age to All Ages would still show “Use Max Age Protected” in the General Settings, however, All Ages was in fact being applied.
– Fixed an issue where Player and Prospect scouting reports were not being shown properly in the Current Scouting page.
– Fixed an issue that would allow a Commissioner to over-write a GM’s draft pick if both COM and GM are accessing the Entry Draft at the same time.
– Fixed an issue where Upcoming Games would all show up as Pending even if there was no live game scheduled.
– Fixed an issue where the AutoGM would not place Forwards into key positions to fill gaps in C, LW, RW. This resulted in Game Roster errors despite having enough players to ice a team.
Hot Fixes
– Fixed an issue where AutoGMs would sometimes not move players down to the farm team if the league was in Season 1. Released as hotfix on December 2 2014.
– Fixed an issue where Teams edited to Farm or Junior would still hold draft picks and prevent entry drafts from moving forward. Released as hotfix on December 8 2014.
– Fixed an issue where searching for coaches would always return no results. Released as hotfix on December 12 2014.
– Fixed an issue where an error for updating LeagueData would appear when attempting to create schedules. Released as hotfix on December 15 2014.
– Fixed an issue where the Total Games field was not being updated when selecting the number of games per Div, Conf while creating a schedule. Released as hotfix on December 15 2014.
– Fixed an issue where Live Mode games that were Queued were not properly saving player, goalie or game stats, however, team standings were okay. Released as hotfix on December 16 2014.
– Fixed an issue where the RetireEarly setting was not being loaded. This resulted in pre-mature retirements and retired player/coach deletions. Released as hotfix on December 17 2014.
– Added the text ‘early’ for player & coach early retirements. Released as hotfix on December 17 2014.
– Fixed an issue where Live Mode games that were Queued were storing the incorrect GameID. Released as hotfix on December 17 2014.
– Fixed an issue where Fixing (Deleting) lines from the Play Games screen would result in an error. Released as hotfix on December 19 2014.
– Fixed several issues where Live Games (Queued or otherwise) were taking an excessively long time to run. Released as hotfix on December 20 2014.
– Fixed an issue where leagues could move from the Off-Season without having teams assigned to a conference or division. This resulted in teams not getting an entry in the TeamStandings table. Released as a hotfix on December 26 2014.