I början på denna vecka så var test-blocket avslutat och utvecklings-blocket påbörjat! Det känns spännande att åter igen få sätta tänderna i ett nytt område. Veckan har hittills haft högt tempo med mängder av kurser för att snabbt bli varm i kläderna, och fler kurser kommer det bli dom närmsta veckorna.

Trollkarlarna
Tidningen Computer Sweden, torsdag 2013-12-05.

På tal om annat så dök Cinnober plötsligt upp på Computer Swedens förstasida med sin innovativa lösning på ett av Javas problem för höghastighetssystem. För oinsatta så kan jag nämna att Java är det programspråk som Cinnober använder för att utveckla produkter inom aktie & börsmarknaden.

Nu till själva problemet. Istället för många andra språk som kräver att utvecklaren själv ska hantera minneshanteringen i programmet vilket kan ställa till instabilitet och crasher om det inte görs rätt, så hanterar Java minneshanteringen helt automatiskt genom att då och då pausa programmet under någon millisekund för att rensa minnet från saker som inte längre används. Detta gör att det går väldigt snabbt att skriva användbar kod när man utvecklar program utan att man behöver bekymra sig för instabilitet. En nackdel med detta blir dock tydligt när man gör system som måste köras med extrema svarstider på grund av den automatiska minnesrensningen.

Ett bra exempel på detta är aktiesystem där den som snabbast på att skicka in sin order i systemet och få den behandlad är den som först får möjlighet att handla till det pris som finns listade i systemet. Om Javas minnes-rensning skulle köras igång vid fel tillfälle så kan en order istället för att ta ett par microsekunder, bli förskjutet till en millisekund eller två. Som vanlig användare som köper eller säljer aktier så är det helt omöjligt att märka om detta skulle ske. Dock så finns det dom som med hjälp av datorer helt automatiskt lägger tusentals köp och sälj ordrar på aktier, och skulle en order plötsligt ta 100 gånger längre än vanligt så kan det uppstå problem.

Aktiehandel utan minnesavbrott
Bildkälla: Computer Sweden, 2013-12-05.

Förenklat sett så är Cinnobers lösning på detta att man med hjälp av två identiska servrar ta emot köp/sälj-ordern, och den som först blir klar med att hantera ordern kan skickar den vidare till marknaden. Så om en av servrarna skulle råka köra igång minnesrensningen så blir alltid den andra servern klar först och till följd av detta så märker användaren inte av någon fördröjning.

För den som vill förstå lite djupare hur lösningen går till så rekommenderar jag att läsa Computer Sweden’s artikel.