Challenges of Archiving Industry Index Values
Posted: 2014-08-20 Filed under: eveonline | Tags: api, arm, crest, mysql, raspberry pi 6 CommentsIf you have any interest in 3rd party development or databases, this post will be a entertaining as I share my current lackluster architecture for saving some of the new Eve API data.
I have a Raspberry Pi running MySQL that I use as a basic storage location for various databases. One of them is a new database that contains index values from the CREST API endpoint with a timestamp so I can start to develop a archive of the values.
The current solution I have for importing the new Index data isn’t very elegant. I’m using Lockefox’s Crius Toolset sheet to grab a CSV every day, adding two columns for a primary key and a timestamp, and importing into my table to get a table that looks like this:
“transactionID” “transactionDateTime” “solarSystemName” “solarSystemID” “manufacturing”
“103724” “2014-08-19 13:28:00” “Jouvulen” “30011392” “0.0339317910000”
“103725” “2014-08-19 13:28:00” “Urhinichi” “30040141” “0.0236668590000”
“103726” “2014-08-19 13:28:00” “Akiainavas” “30011407” “0.0285709850000”
“103727” “2014-08-19 13:28:00” “Seitam” “30041672” “0.0162879230000”
“103728” “2014-08-19 13:28:00” “BK4-YC” “30003757” “0.0143238350000”
It’s growing and starting to show how under-powered the Raspberry Pi is for data processing. Most of my issue stems from a lack of salable design on my part. I have no table indexes and am joining with the bulky mapDenormalize table.
I have a love-hate relationship with the mapDenormalize table. If you have ever worked with this table, you know that it is a beast: 502,558 rows, 15 columns with five of them being DOUBLE values coming in at 214MB. Normally not a problem for server with a lot of CPU cycles and RAM, but the 700MHz ARM processor on the Raspberry Pi has a hard time with multiple JOIN operations and GROUP BYs.
Here’s a query I was running against my dataset that ran for 15.5 minutes (!).
SELECT systemCosts.solarSystemName, systemCosts.transactionDateTime ,systemCosts.manufacturing, mapRegions.regionName, mapDenormalize.security
FROM systemCosts
JOIN mapDenormalize
ON (systemCosts.solarSystemID = mapDenormalize.solarSystemID)
JOIN mapRegions
ON (mapDenormalize.regionID = mapRegions.regionID)
GROUP BY transactionDateTime,solarSystemName
So two full table JOIN and two GROUP operations and a table with no indexes, uf. I sent a screenshot off to James, my development partner.
My first solution was to remove extraneous data from the mapDenomalize table. After removing the groupID, constellationID, orbitID, x, y, z, radius, celestialIndex, and orbitIndex I trimmed the table down even further by deleting all entries that were not star systems. What was left was 7,929 rows coming in at around 1MB.
I’m glad to report that my terrible query is now running in 20 seconds. This was a small step to getting my growing index dataset to a usable state while I write something more permanent.
Today’s Connection Issues to Eve
Posted: 2014-08-13 Filed under: eveonline | Tags: 6500, 7600, bgp, catalyst, ccp, cisco, ios, london 3 Comments
We are currently experiencing login issues with Tranquility. More information will be made available as we work on solving the problems!
— EVE Online Status (@EVE_status) August 12, 2014
Today we saw a large outage to CCP’s servers in London as the number of BGP routes advertised on the Internet passed a critical milestone. If you are unfamiliar with BGP, the easiest definition is that it is the protocol used to allow major ISPs to talk to each-other and share information on where to send traffic in order for it to reach its destination. Without ISPs peering using BGP, routers would not know to send traffic and nothing would reach the target host.
Certain models of Cisco routers that have not been modified from their default configuration became unstable after accepting more than 512,000 routes. Users all across the Internet saw strange behavior as routers began to drop traffic, slowly pass traffic through software routing, or crashing entirely. I saw my connection to CCP’s server in London from San Francisco become unreachable for several hours.
This issue has been written about months ago, but it seems that a lot of people were caught by surprise. There is even a Cisco approved interim fix to buy more time by allocating additional memory space to store additional IPv4 routes (1).
Further reading on this topic can be found on this r/networking post.
(1) CAT 6500 and 7600 Series Routers and Switches TCAM Allocation Adjustment Procedures [link]
Network Architecture Challenges of Multiplayer Games
Posted: 2014-08-12 Filed under: eveonline, history | Tags: doom, quake Leave a commentInteractive fast-paced games that operate over networks present many challenges to game designers that want to present a fluid user experience. I recently stumbled on a paper written by J.M.P. van Waveren in 2006 that details the advancements in network architecture in Doom III over it’s predecessors such as Quake I, II, and III.
If you want some insight into the items that CCP has to consider when trying to maintain a cohesive grid for our ships to fight on, read the Abstract, Section 1, and Section 2. Further sections go into Doom III specific implementation of transmitting data between server-client.
J.M.P. van Waveren. “The DOOM III Network Architecture”. Id Software, Inc. 2006. [PDF]
Kronos Change List
Posted: 2014-05-07 Filed under: eveonline, market, nullsec, screenshot, ships | Tags: dominix, kronos, moa, phoenix, prospect Leave a commentRelease date: Tuesday, June 3rd, 2014.
Patch Notes
Dev Blogs
These changes have been pushed to the Crius release on July 22nd.
- Building Better Worlds
- Industry UI
- Researching, the Future
- The Price of Change
- Team Up: Industry Work Teams
- Fortune Favors the Bold
Balance Changes
- Drone Changes [devblog]
- POS gunning skill to only require Anchoring 4 instead of Anchoring 5 [reddit] [dev post]
- FW Plex Cloaking Change [reddit] [dev post]
- Phoenix and Citadel Missiles Change [reddit] [dev post] [fanfest slide]
- Freighter and Jump Freighter Rigging [reddit]
- POS ME Bonus [dev post]
- POS Changes [dev post]
- Factional Warfare Complex Improvements [reddit] [dev post] [dev post update]
- More lowsec K-K wormholes [dev post]
- Hull Rigs [dev post]
- Exploration loot spew removal [dev post]
- Faction drone modules [reddit] [imgur]
- Dreadnought Signature Radius increase [dev post]
- Freighter and Jump Freighter [reddit] [dev post]
- Blockade Runner [reddit] [dev post]
- Medium Micro Jump Drives [reddit] [dev post]
- Loot Scattering removed [reddit] [dev post]
- Pirate Implants [reddit] [dev post]
- Hyperspatial Accelerators Modules [reddit] [pastebin]
- Active mid slot scanning modules [reddit]
- Supercarrier changes [reddit] [news post]
UI/UX
- Right-click Menu Update [reddit] [youtube]
- Warp in/out animations [reddit] [gif]
- Faction Station Skins
- Team Pirate Unicorns Tooltip changes [dev post]
- Lens Flare Adjustments [dev post]
- UI Little Things [dev post]
- Audio Customization [dev post]
Ships
- Dominix redesign [reddit] [imgur]
- Moa redesign [reddit]
- Typhoon redesign [reddit]
- Condor / Crow / Raptor redesign [reddit]
- Mordus Legion [dev post]
- Prospect [reddit] [dev blog]
- 20 Ship Skins [dev post]
- Alliance Tournament XII Ships
- Chameleon
- Whiptail
- New skins [imgur]
Internal Code
- Dogma, the name for the system that calculates ship bonuses, refactoring to improve performance
Burn Jita 3: Day 1
Posted: 2014-04-26 Filed under: eveonline, industry | Tags: charon, goonswarm, jita, nomad, obelisk, providence Leave a commentBurn Jita got off to a great start with freighter kills coming in one after another. I was able to watch a few hours of NickFuzzeh’s stream yesterday and was able to get some nice screencaputres before it went offline; image credits go to him.
If you are looking to keep up to date on the kills, head on over to use isjitaburning.com.









