Difference between revisions of "Darkcanuck/RRServer/Updates"

From Robowiki
Jump to navigation Jump to search
(full = 646)
(Now on Github)
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Darkcanuck/RRServer/Navigation}}
 
{{Darkcanuck/RRServer/Navigation}}
 +
 +
 +
== 13-Nov-2011:  "Now on Github" ==
 +
* Source code is now hosted on GitHub:  https://github.com/darkcanuck/rumbleserver
 +
** Now you can file bugs, patches and questions more easily, with less chance of getting lost in the ever-expanding RoboWiki!
 +
** You can either use git or mercurial (via hg-git extension) instead of SVN.
 +
** Credit goes to [[User:PEZ | PEZ]] for the idea and for the first successful pull request.
 +
* I will try to keep the SVN repository up-to-date as well;  current revision is 123.
 +
* Other changes:
 +
** Increased API query limits
 +
** Added hooks for a data integrity script I'm running to fix bad pairing data (from old uploads circa 2009)
 +
** Changes to database fields for eventual reporting of win% stats (will take a while to generate)
 +
 +
 +
== 12-Jul-2011:  ''Improved priority battles'' ==
 +
* SVN Revision 118
 +
* After testing a revised priority battle scheme over the past few days, I've rolled out the final version:
 +
** Only 1 priority battle sent to the client per upload (was 10 before)
 +
** Missing pairings have top priority, then single battle pairings, followed by bots needing a score update after the participants list has changed
 +
** Otherwise, there is a 50% chance of getting a low battle pairing, otherwise the client chooses (random)
 +
** Seems to be working fine for new bots, has also filled in a lot of low battle count pairings for older bots
 +
* Added a mechanism to prevent sending any priority battles for recently retired bots.  This has always been problematic, this should help bots retire more swiftly.
 +
* Removed the 4-hour time limit for retirement, since this change and SVN rev 110 makes retirement & activation low-cost.
 +
* Removed support for 1.6.1.4 clients now that all uploaders have moved to the faster 1.7.3.0.
 +
* Now uses the improved flag gifs supplied by [[User:Chase-san | Chase-san]]
 +
* I've also taken the liberty of patching the 1.7.3.0 rumble client jar to fix a few quirks:
 +
** Discards priority battles for bots not in the current participants list
 +
** Removes duplicate priority battles received from the server (common when a bot is missing only 1-2 pairings)
 +
* I'll submit the client changes to Sourceforge, but you can grab a compiled version from the server:
 +
** http://darkcanuck.net/rumble/patches/1.7.3.0/roborumble.jar
 +
 +
 +
== 06-Jul-2011:  ''Modern rumble clients welcome'' ==
 +
* SVN Revision 114
 +
* Finally supports an up to date Robocode client version:  1.7.3.0
 +
* All contributors are encouraged to update their clients, 1.6.1.4 client support will be removed soon.
 +
 +
 +
== 06-Feb-2010:  ''Concurrency revisited'' ==
 +
* SVN Revision 110
 +
* Fixed (for good) concurrency problems when new results were uploaded while another client was removing the same bot.
 +
* Normalized database means retirement and reactivation are lightning fast now (but uploads may be a bit slower).
 +
* Participants table converted to InnoDB to remove delays from table locking.
 +
* Some older fixes since the last posting include faster LRP plotting, some APIQuery tweaks and improved flagged battle removal.
 +
 +
 +
== 16-Aug-2009:  ''TwinDuel and more!'' ==
 +
* SVN Revision 101
 +
* Added the "twinduel" game type and rankings
 +
* [[Darkcanuck/RRServer/Query | New query API]] for apps needing to access data directly
 +
* Added ability to flag bad battles and recalculate pairings (admin-only)
 +
* Improved the menu to show size classes for 1v1 and melee
 +
* Improved page titles and added robot meta tags at Google's suggestion
 +
* Fixed (hopefully) concurrent add/remove problem
 +
* Fixed bug related to really long usernames
 +
* The site has been very slow today so the database was taken offline for repair and I've throttled uploads a bit more.  Thanks for uploading so many battles, but remember that the server can only process so many...
 +
 +
 +
== 1-Aug-2009:  ''... and removals for all'' ==
 +
* SVN Revision <strike>85</strike> 86
 +
* Removals have been re-enabled for everyone!
 +
** Participants can only be removed if they haven't been updated for at least 4 hours (to prevent constant add/remove problems).
 +
* Removed support for 1.5.4 and 1.6.0 -- the only allowed version is 1.6.1.4 ([http://darkcanuck.net/rumble/patches/1.6.1.4/roborumble.jar patched jar]).
 +
* Other minor fixes (many implemented in last few months, not all today):
 +
** Main rankings sorting
 +
** Common scores for comparison feature
 +
** Improved priority battle distribution for faster pairing completion
 +
** Pairings where both bots got 0 scores now show as 50% (only affects melee)
 +
** Suspended user check now only done for uploads and removals.
 +
** Improved bot name filter to allow underscores in name, but not in version (some older bots use this pattern, although it's not recommended)
 +
* And added a (basic) navigation bar at the top of each page
 +
 +
 +
== 27-Apr-2009:  ''See how your bot stacks up to DrussGT'' ==
 +
* SVN Revision 75
 +
* Added bot comparison feature (similar to old server?)
 +
* Ranking details, battle details and comparison views now support viewing retired competitors.
 +
* Added links to 3 latest versions for each bot on rankings detail view, for easy comparisons.
 +
* Rankings pages now show a stability warning if pairings are incomplete.
 +
* Removed "experimental" warnings since this is now the default server.
 +
* 5.6 million uploads and counting...
 +
 +
 +
== 22-Apr-2009:  ''Wiki Switchover'' ==
 +
* Problems after the wiki switch required a database restore from backup (less than 2 days old)
 +
* Clients must update their roborumble.txt (or meleerumble.txt, teamsrumble.txt) to use the new URL:
 +
** PARTICIPANTSURL=http://robowiki.net/w/index.php?title=RoboRumble/Participants
 +
 +
 +
== 5-Apr-2009:  ''Patched roborumble.jar for clients'' ==
 +
* SVN Revision 66
 +
* Added 1.6.1.4 to allowed versions, added version number to contributors page (displays the greatest version used)
 +
* Patched <strike>two</strike> three of the allowed roborumble.jar files to report the version number like 1.6.2+:
 +
** 1.5.4:  http://darkcanuck.net/rumble/patches/1.5.4/roborumble.jar
 +
** 1.6.1.4:  http://darkcanuck.net/rumble/patches/1.6.1.4/roborumble.jar
 +
** 1.6.0:  http://darkcanuck.net/rumble/patches/1.6.0/roborumble.jar (not tested personally)
 +
* If everyone changes their clients to use these then we can prevent bad versions from the 1.6.1 series from being used - thanks!
 +
 +
 +
== 2-Apr-2009:  ''Version Checking'' ==
 +
* SVN Revision 62
 +
* Added rumble client version check (versions 1.6.2 and later report their version)
 +
* Also checks the melee and team flags
 +
* Version now shown in the battle details (will show 1.x.x for older versions)
 +
* This isn't too useful since the official versions (1.5.4, 1.6.0) can't be checked, but can exclude newer problem versions (eg. 1.7.1).  This could improve if we can validate 1.6.2...
 +
* Source now public (GPL3) here: <nowiki>http://darkcanuck.net/svn/rumbleserver/trunk</nowiki>
 +
 +
 +
== 9-Mar-2009:  ''Underscores are Banned!'' ==
 +
* SVN Revision 56
 +
* Recent server load problems due to bots with underscores in their version numbers!
 +
* Added checks to prevent bots with invalid names:  only alphanumeric, ".", "-" allowed, plus one space between name and version.
 +
** This is due to the way that Robocode handles bot filenames
 +
* Added a temporary throttle while clients send 4 days of missed uploads.
 +
 +
 +
== 5-Mar-2009:  ''Server Down'' ==
 +
* Due to high load issues, I've had to shut the server down temporarily.
 +
* My time to sort this out is limited at the moment so the outage may last a few days.
 +
 +
 +
== 5-Dec-2008:  ''Speeeeed?'' ==
 +
* SVN Revision 54
 +
* Changed pairings table to use InnoDB to only lock the 2 rows being updated per upload.
 +
* Removed table locking and switched to transactions instead to maintain data integrity.
 +
* The above changes appear to have improved upload speed nicely.
 +
* Added a fix for the "dual-retirement" problem; also added a check for corrupted pairing records.
 +
* Added survival column to detail views.
 +
 +
 +
== 2-Dec-2008:  ''The Curse of the Participants List'' ==
 +
* '''Current Problem'''
 +
** Looks like one client with a bad participants list (probably an empty file since the old wiki is currently down) started to remove all participants from the various 1v1 rumbles.
 +
** This also caused a storm of removal + reactivation requests, resulting in sloooooow uploads and many HTTP 500/503 errors.
 +
** Removals are now temporarily disabled and the problematic client has been temporarily suspended until it can be fixed.
 +
** Last I checked, about half of the mega rumble bots were flagged as 'retired'; you should see the largest number of comebacks in RoboRumble history in the coming hours!
 +
** I took the opportunity to do some database maintenance too.
 +
* '''SVN Revision 50'''
 +
* Added a long-planned feature to temporarily suspend problematic clients.
 +
* Survival percentages are now displayed in the main rankings.
 +
 +
 +
== 30-Nov-2008:  ''Let the Uploading Competition Begin'' ==
 +
* SVN Revision <strike>45</strike> 48
 +
* Added more uploading stats so that contributors pages shows totals for the current calendar month and the last 30 days.
 +
** December (GMT) is almost here, start up your clients...
 +
* Scaled Glicko-2 scores to match std.dev. of Elo scores
 +
* Removed Glicko-1 score display
 +
 +
 +
== 26-Oct-2008:  ''Sorting with Style'' ==
 +
* SVN Revision <strike>36</strike> 37
 +
* Styled all tables (credit: [[ABC]]) and cleaned up XHTML
 +
** rankings, bot details and battle details now validate
 +
* Separated PHP from HTML using Smarty templates
 +
* Now using [http://tablesorter.com/docs/ | TableSorter 2.0] to sort tables using javascript, instead of reloading the page
 +
* Details page and LRP now using Elo ratings (was Glicko)
 +
* Elo rankings seem to track APS ranking very closely;  Glicko-2 is comparable, but Glicko rankings don't quite line up.
 +
  
 
== 23-Oct-2008:  ''1 Million+ Served'' ==
 
== 23-Oct-2008:  ''1 Million+ Served'' ==
Line 12: Line 171:
 
* Well, for sure not ''quite'' full pairings. Checking [http://darkcanuck.net/rumble/Rankings?version=1&game=roborumble here] it shows many/most bots still missing 1 to 2 pairings. Maybe some bot is missing for most/all clients running? --[[User:Rednaxela|Rednaxela]] 20:13, 24 October 2008 (UTC)
 
* Well, for sure not ''quite'' full pairings. Checking [http://darkcanuck.net/rumble/Rankings?version=1&game=roborumble here] it shows many/most bots still missing 1 to 2 pairings. Maybe some bot is missing for most/all clients running? --[[User:Rednaxela|Rednaxela]] 20:13, 24 October 2008 (UTC)
 
* There are 647 bots in the main rumble, so full pairings = 646.  Some bots have more than that because they haven't run a battle since I removed older bots after the importing was done (well, that's my theory).  So it looks like only one bot is still missing a single pairing, all others >= 646.  --[[User:Darkcanuck|Darkcanuck]] 01:53, 25 October 2008 (UTC)
 
* There are 647 bots in the main rumble, so full pairings = 646.  Some bots have more than that because they haven't run a battle since I removed older bots after the importing was done (well, that's my theory).  So it looks like only one bot is still missing a single pairing, all others >= 646.  --[[User:Darkcanuck|Darkcanuck]] 01:53, 25 October 2008 (UTC)
 +
  
 
== 21-Oct-2008:  ''After the Upload'' ==
 
== 21-Oct-2008:  ''After the Upload'' ==

Latest revision as of 21:42, 13 November 2011

Navigation: About | Updates | Ratings | Query API | Roadmap | Design | Develop | Known Issues



13-Nov-2011: "Now on Github"

  • Source code is now hosted on GitHub: https://github.com/darkcanuck/rumbleserver
    • Now you can file bugs, patches and questions more easily, with less chance of getting lost in the ever-expanding RoboWiki!
    • You can either use git or mercurial (via hg-git extension) instead of SVN.
    • Credit goes to PEZ for the idea and for the first successful pull request.
  • I will try to keep the SVN repository up-to-date as well; current revision is 123.
  • Other changes:
    • Increased API query limits
    • Added hooks for a data integrity script I'm running to fix bad pairing data (from old uploads circa 2009)
    • Changes to database fields for eventual reporting of win% stats (will take a while to generate)


12-Jul-2011: Improved priority battles

  • SVN Revision 118
  • After testing a revised priority battle scheme over the past few days, I've rolled out the final version:
    • Only 1 priority battle sent to the client per upload (was 10 before)
    • Missing pairings have top priority, then single battle pairings, followed by bots needing a score update after the participants list has changed
    • Otherwise, there is a 50% chance of getting a low battle pairing, otherwise the client chooses (random)
    • Seems to be working fine for new bots, has also filled in a lot of low battle count pairings for older bots
  • Added a mechanism to prevent sending any priority battles for recently retired bots. This has always been problematic, this should help bots retire more swiftly.
  • Removed the 4-hour time limit for retirement, since this change and SVN rev 110 makes retirement & activation low-cost.
  • Removed support for 1.6.1.4 clients now that all uploaders have moved to the faster 1.7.3.0.
  • Now uses the improved flag gifs supplied by Chase-san
  • I've also taken the liberty of patching the 1.7.3.0 rumble client jar to fix a few quirks:
    • Discards priority battles for bots not in the current participants list
    • Removes duplicate priority battles received from the server (common when a bot is missing only 1-2 pairings)
  • I'll submit the client changes to Sourceforge, but you can grab a compiled version from the server:


06-Jul-2011: Modern rumble clients welcome

  • SVN Revision 114
  • Finally supports an up to date Robocode client version: 1.7.3.0
  • All contributors are encouraged to update their clients, 1.6.1.4 client support will be removed soon.


06-Feb-2010: Concurrency revisited

  • SVN Revision 110
  • Fixed (for good) concurrency problems when new results were uploaded while another client was removing the same bot.
  • Normalized database means retirement and reactivation are lightning fast now (but uploads may be a bit slower).
  • Participants table converted to InnoDB to remove delays from table locking.
  • Some older fixes since the last posting include faster LRP plotting, some APIQuery tweaks and improved flagged battle removal.


16-Aug-2009: TwinDuel and more!

  • SVN Revision 101
  • Added the "twinduel" game type and rankings
  • New query API for apps needing to access data directly
  • Added ability to flag bad battles and recalculate pairings (admin-only)
  • Improved the menu to show size classes for 1v1 and melee
  • Improved page titles and added robot meta tags at Google's suggestion
  • Fixed (hopefully) concurrent add/remove problem
  • Fixed bug related to really long usernames
  • The site has been very slow today so the database was taken offline for repair and I've throttled uploads a bit more. Thanks for uploading so many battles, but remember that the server can only process so many...


1-Aug-2009: ... and removals for all

  • SVN Revision 85 86
  • Removals have been re-enabled for everyone!
    • Participants can only be removed if they haven't been updated for at least 4 hours (to prevent constant add/remove problems).
  • Removed support for 1.5.4 and 1.6.0 -- the only allowed version is 1.6.1.4 (patched jar).
  • Other minor fixes (many implemented in last few months, not all today):
    • Main rankings sorting
    • Common scores for comparison feature
    • Improved priority battle distribution for faster pairing completion
    • Pairings where both bots got 0 scores now show as 50% (only affects melee)
    • Suspended user check now only done for uploads and removals.
    • Improved bot name filter to allow underscores in name, but not in version (some older bots use this pattern, although it's not recommended)
  • And added a (basic) navigation bar at the top of each page


27-Apr-2009: See how your bot stacks up to DrussGT

  • SVN Revision 75
  • Added bot comparison feature (similar to old server?)
  • Ranking details, battle details and comparison views now support viewing retired competitors.
  • Added links to 3 latest versions for each bot on rankings detail view, for easy comparisons.
  • Rankings pages now show a stability warning if pairings are incomplete.
  • Removed "experimental" warnings since this is now the default server.
  • 5.6 million uploads and counting...


22-Apr-2009: Wiki Switchover


5-Apr-2009: Patched roborumble.jar for clients


2-Apr-2009: Version Checking

  • SVN Revision 62
  • Added rumble client version check (versions 1.6.2 and later report their version)
  • Also checks the melee and team flags
  • Version now shown in the battle details (will show 1.x.x for older versions)
  • This isn't too useful since the official versions (1.5.4, 1.6.0) can't be checked, but can exclude newer problem versions (eg. 1.7.1). This could improve if we can validate 1.6.2...
  • Source now public (GPL3) here: http://darkcanuck.net/svn/rumbleserver/trunk


9-Mar-2009: Underscores are Banned!

  • SVN Revision 56
  • Recent server load problems due to bots with underscores in their version numbers!
  • Added checks to prevent bots with invalid names: only alphanumeric, ".", "-" allowed, plus one space between name and version.
    • This is due to the way that Robocode handles bot filenames
  • Added a temporary throttle while clients send 4 days of missed uploads.


5-Mar-2009: Server Down

  • Due to high load issues, I've had to shut the server down temporarily.
  • My time to sort this out is limited at the moment so the outage may last a few days.


5-Dec-2008: Speeeeed?

  • SVN Revision 54
  • Changed pairings table to use InnoDB to only lock the 2 rows being updated per upload.
  • Removed table locking and switched to transactions instead to maintain data integrity.
  • The above changes appear to have improved upload speed nicely.
  • Added a fix for the "dual-retirement" problem; also added a check for corrupted pairing records.
  • Added survival column to detail views.


2-Dec-2008: The Curse of the Participants List

  • Current Problem
    • Looks like one client with a bad participants list (probably an empty file since the old wiki is currently down) started to remove all participants from the various 1v1 rumbles.
    • This also caused a storm of removal + reactivation requests, resulting in sloooooow uploads and many HTTP 500/503 errors.
    • Removals are now temporarily disabled and the problematic client has been temporarily suspended until it can be fixed.
    • Last I checked, about half of the mega rumble bots were flagged as 'retired'; you should see the largest number of comebacks in RoboRumble history in the coming hours!
    • I took the opportunity to do some database maintenance too.
  • SVN Revision 50
  • Added a long-planned feature to temporarily suspend problematic clients.
  • Survival percentages are now displayed in the main rankings.


30-Nov-2008: Let the Uploading Competition Begin

  • SVN Revision 45 48
  • Added more uploading stats so that contributors pages shows totals for the current calendar month and the last 30 days.
    • December (GMT) is almost here, start up your clients...
  • Scaled Glicko-2 scores to match std.dev. of Elo scores
  • Removed Glicko-1 score display


26-Oct-2008: Sorting with Style

  • SVN Revision 36 37
  • Styled all tables (credit: ABC) and cleaned up XHTML
    • rankings, bot details and battle details now validate
  • Separated PHP from HTML using Smarty templates
  • Now using | TableSorter 2.0 to sort tables using javascript, instead of reloading the page
  • Details page and LRP now using Elo ratings (was Glicko)
  • Elo rankings seem to track APS ranking very closely; Glicko-2 is comparable, but Glicko rankings don't quite line up.


23-Oct-2008: 1 Million+ Served

  • SVN Revision 31
  • More query tweaks for speed, plus some debug options for me
  • Crossed the 1,000,000 battle mark today!
  • And I think we have full pairings in the main rumble... just a few bots missing 1 pairing in the minirumble
  • There's a weird client bug that keeps uploading results for DrussGT 1.2.7 today?


  • Looks like full pairings in each rumble, my client is currently filling up the battles in the microrumble to 700. --GrubbmGait 17:53, 24 October 2008 (UTC)
  • Well, for sure not quite full pairings. Checking here it shows many/most bots still missing 1 to 2 pairings. Maybe some bot is missing for most/all clients running? --Rednaxela 20:13, 24 October 2008 (UTC)
  • There are 647 bots in the main rumble, so full pairings = 646. Some bots have more than that because they haven't run a battle since I removed older bots after the importing was done (well, that's my theory). So it looks like only one bot is still missing a single pairing, all others >= 646. --Darkcanuck 01:53, 25 October 2008 (UTC)


21-Oct-2008: After the Upload

  • SVN Revision 27.
  • Importing all data from ABC's server is finally complete.
  • Re-enabled bot removal function
    • Old bots (from import) now removed from rankings
    • Ranking data (eg. #pairings, aps) will update once each current bot gets at least one new battle
  • Found and resolved another performance issue (now that we're nearing the million battle mark).
  • Tweaked a few other database queries.


13-Oct-2008: LRP courtesy of ABC

  • SVN Revision 25.
  • Added ABC's amazing LRP plots.
  • Slowly importing data; about 60% (?) done for the main rumble
  • I have an idea to speed up scoring/uploads, but it's major work so not this week...


11-Oct-2008: Transitions

  • SVN Revision 23.
  • Based on | ABC's announcement, relaying is now turned off for faster uploads.
  • Importing is still in progress:
    • Minirumble finished yesterday.
    • Roborumble is only 30% done, lots of battles still left
    • I also need to import any new battles since the 7th
  • Importing is a great high-load test; improved upload speed in a few areas, but it can still slow down if several clients (including the importer) all try to upload simultaneously.
    • The bottleneck is the rating update process, querying all pairings for the two competitors is expensive.


7-Oct-2008: Import in Progress

  • Finished testing import utility (just a Perl script) which takes battles_*.txt files and re-submits them to the server.
  • All battle data from ABC's backup directory was imported to the new server this morning.
  • Nanorumble data as of 15:30 PDT imported to new server (starting small).
  • Currently importing Microrumble data... complete!
  • Minirumble and Roborumble will take quite some time, I think. Normal results uploading may be slow during this period ... --Darkcanuck 01:19, 9 October 2008 (UTC)


6-Oct-2008: All Users Welcome

  • SVN Revision 19
  • Fixed a major bug introduced in rev 11 where new upload users could not be added.
  • Tentative PL scoring column added to ranking table
  • Added some additional stats to the details pages, including standard deviation for APS.
  • Added import functionality; currently testing an import of ABC's data on my local test server.


5-Oct-2008: Sorting for Fun & Profit (+ Glicko-2)

  • SVN Revision 14 15
  • Pairing and battle detail views can now be sorted like the rankings view.
    • Finally you can group your worst ProblemBots together!
    • PBI, Expected scores still use Glicko ratings, looking for feedback now that both Elo & Glicko are displayed together.
  • Added Glicko-2 ratings; uses existing Glicko rating as initial value. Let's see how this works out.


4-Oct-2008: Elo makes its debut

  • SVN Revision 11
  • Added Elo scoring based on old server's code.
    • Includes rating "jumpstart": bots with >50 battles start at an ideal rating based on APS.
    • This is causing slower uploads but should clear up once all bots get Elo ratings.
  • Ratings updates now done after every upload (no more periodic update).
  • Ratings use all available pairings for each update (slow, but this is the classic method).
  • Streamlined battle results table to use only one record per battle (was two); user data now in separate table.
    • Table size down to 30% of previous.


27-Sep-2008: Setting Priorities

  • Added priority pairings and battle number output to clients. I missed this last time around.
  • Tweaked database performance for results uploading.
  • Ratings rebuild has caught up, so rankings are now up-to-date within the last minute!
  • Melee rankings are starting to fill out.
  • Many thanks to GrubbmGait and [Darkstorm]] for generously contributing battles


25-Sep-2008: Build it and they will come?

  • One week, 4 clients uploading without any major issues. 68,148 battles in the general rumble so far.
  • No outstanding "known" bugs at this point (fingers crossed).
  • Added Glicko ratings and flushed existing pairings & ratings yesterday. That means the ratings are still rebuilding, and will probably catch up sometime tomorrow.
  • Added table sorting on the main rankings pages.
  • Added support for melee (works) and teams (my client doesn't work for teams so this is untested).