Darkcanuck/RRServer/Updates

From Robowiki
Jump to navigation Jump to search

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).