Luotettavuuden ja toisteisuuden toteutus aikakriittiseen televiestintäjärjestelmään
Peltola, Maria · Aaltodoc (Aalto University) · 2015
Different distributed systems have different requirements for reliability. One way for increasing reliability is fault tolerance. Methods for increasing fault tolerance have been studied for decades, starting from early hardware level fault tolerance until more recent studies for peer-to-peer and cloud computing fault tolerance. In this paper, fault tolerance of an existing telecommunication service platform is studied and improved. Even in the case of a failure of a single server, called a call handler, any data should not be lost. Three sub-problems with different expectations are presented: failure detection, data dissemination and takeover. The implemented failure detection protocol is based on a basic gossip-style heartbeat protocol. The data dissemination protocol is a gossip-style dissemination protocol which, unlike traditional gossip algorithms, does not select its targets fully randomly. Instead, known data about which call handlers have received and might have received a message are used when selecting targets. On top of both, a simple takeover protocol is implemented. Testing was done in a closed environment both for the failure detection and for the data dissemination, as well as for whole the system. The results show that failure detection protocol is able to provide adequate detection times and accuracy. The nature of the implemented data dissemination algorithm is very spamming by the results. The amount of sent messages can, however, be greatly decreased with design decisions. Test results for whole the system indicate that the system is able to provide over 99 % reliability even with large server crash probabilities at least up to call handler amount 16. Unfortunately, resources in the testing environment were limited and that is why memory problems started to occur affecting the test results starting from 17 call handlers. That is why larger call handler amounts could not be tested.