Apocrypha API Additions

As a part of the Apocrypha expansion we thought we'd add a little something to the API, namely our beloved Skill Queue. The Skill Queue is available at /char/skillqueue.xml.aspx and is a list of skills in a certain order accompanied by start and end training times. It's on the same cache timer as SkillInTraining, and in fact, SkillInTraining now uses information from the Skill Queue and will be removed soon(tm) so we suggest 3rd party developers start getting this information from the Skill Queue. The typeID attribute is the ID of the skill which you can locate in the SkillTree.

We also managed to fix a few defects in this round:

  • Previously missing implants now shows up on the Character Sheet.
  • The cachedUntil timestamp is now correctly placed in the Certificate Tree.
  • The Corporation Sheet now displays information for companies that are not in alliances.

The API has seen considerable increase in traffic over the months, the number of requests received every hour has passed 2.2 million which translates to 5-600 requests per second. Lately it got to the point where we had to take a look at a couple of database queries that were rapidly moving up the not-so-popular-with-admins charts. The solution included both updating the API code and making a couple of adjustments in the operational environment. Queries for character augmentations and skills were optimized and the cache code was changed so that it would move the effects of memory starvation from TQ to the API servers. What that means is that the API servers will crash rather than hammering the DB too much so, to counter that problem, memory allocation on the API servers was also improved. These changes greatly diminished the impact the growth of the API has had on the DB lately and soothed the Gods of Performance and their appetite for disconnecting the API. At least for a while(tm).