Bättre prestanda gav ny affärsmodell

Infinera, tidigare Transmode, behövde lösa ett problem. En beräkningsmotor tog så lång tid att exekvera så att det påverkade affären. Med hjälp av en senior utvecklare från Crisp lyckades man öka prestandan med 145 gånger.
I Infineras Network Manager finns en beräkningsmotor som beräknar konnektivitetsmodellen för ett flerlagers optiskt transmissionsnät enligt MTOSI-standarden.
Modellen används av funktioner för att koppla upp de tjänster som Infineras kunder, nätägarna, sedan säljer till sina slutkunder.
Beräkningsmotorn tog för en av de största nätägarna en och halv timme på sig att beräkna modellen. Nätet ändras ofta och då måste beräkningen göras om från början. För att kompensera för detta, tvingandes man dela in nätet i mindre subnät som gick snabbare att beräkna.
Detta innebar kraftiga begränsningar för nätägarna: man kunde inte sälja förbindelser som korsade subnätsgränser.
Infinera tog hjälp av Crisps Olle Hallin. Teamet lyckades sänka beräkningstiden för en av de största nätägarnas hela nät från 90 minuter till 37 sekunder.
Nu behövs inte subnät längre och nätägarna kan därmed sälja bättre tjänster till sina slutkunder.
Den första ansatsen var att profilera den befintliga koden och ta bort uppenbara flaskhalsar. Detta fördubblade prestandan men var inte tillräckligt.
Den andra ansatsen var att skriva om beräkningsmotorn från grunden med bibehållen enkeltrådad algoritm, men med smartare datastrukturer.
Teamet använde idéer från Domain Driven Design. Originaldata transformeras in i en Bounded Context till en objektmodell optimerad för problemet. Äkta objektgrafer, IdentityHashMap, EnumMap och liknande gör all objektnavigering extremt snabb. Efter beräkningen transformeras resultatet tillbaka till den gamla modellen för persistering i databasen.
Här dök nästa flaskhals upp: persistering av resultatet. En omkonstruktion av databasschemat gjorde det möjligt att kapa persisteringstiden med 10-tals minuter.
Den tredje ansatsen, att utveckla en parallell algoritm och byta till NoSQL, behövde aldrig användas.
En förändrad systemarkitektur gav en förbättring av prestanda vilket möjliggjorde nya affärer med färre begränsningar för hur nät kan hanteras.