...
- Welke technieken, die veel gebruikt worden of ons bekend zijn, maken gebruik van een MySQL database?
- Welke technieken, die veel gebruikt worden of ons bekend zijn, maken geen gebruik van een database of andere database?
- Welke technieken worden bij autoraces gebruikt om de data van de auto naar een pit te krijgen?
- Wat zijn een aantal voor- en nadelen van de verschillende technieken voor het weergeven van real-time data?
Naast het beantwoorden van deze deelvragen, zullen er ook kleine prototypes worden gemaakt van de bovenstaande manieren. Deze kleine prototypes zullen ook in de praktijk ons een beter beeld geven wat mogelijke oplossingen zijn om de data in real-time weer te kunnen geven op een website applicatie.
Welke technieken die veel gebruikt worden of ons bekend zijn maken gebruikt van een MySQL database?
...
Een van de manieren om data op te halen uit een database is door elke x seconden een request uit te laten voeren. Je kan bijvoorbeeld alle data ophalen na een bepaald tijdstip en de rest, die je in dit geval al hebt, achterwege laten. In dit geval zal je een timer of iets dergelijks moeten hebben die elk keer de data ophaalt en deze op de applicatie toont.
...
Gebruik van transactielogboek
In het artikel van Herrera geeft hij allereerst drie verschillende mogelijkheden weer voordat hij, in dit geval de derde, techniek kiest en deze ook uitwerkt. De drie technieken die hij benoemt zijn
...
Bij eens script dat elke minuut runt voor een paar regels is er geen probleem. Bij een seconde moeten we al gaan kijken of het elke keer volledig binnenkomt. Als we de data daadwerkelijk twintig keer per seconden op de website willen tonen moeten we het script elke 50ms laten runnen. Als we deze keuze maken moeten er een aantal dingen bijkomen. Allereerst komt de data op de database binnen, dan moeten we een script hebben dat alleen die data ophaalt, en geen andere data. Er zal dus moeten worden gekeken op ID of op tijd/timestamp. Ook deze data, de id of tijd die als laatste bekend is, moet ergens worden opgeslagen of onthouden worden door het systeem. Het kan ook nog zo zijn dat op het moment van ophalen het net iets langer duurt, en er al andere data in te komen is staan, en je dus achterloopt of data overslaat. Tien regels in een table zal binnen een milliseconde verwerkt worden (afhangend van de hardware) maar miljoenen regels in honderden tabellen loopt al snel op. Dit zijn dingen die makkelijker zijn te voorkomen en te verwerken met gebruik van andere technieken. Het voordeel dat dit systeem heeft is dat het snel en makkelijk te implementeren is en wij allemaal de benodigdheden hebben om dit te doen. . Een verbetering zou kunnen zijn om een stuk code te laten uitvoeren op het moment dat er een insert is op 1 table die de data ophaalt, alleen zal ook dit weer effect hebben op de snelheid van het systeem.
Gebruik van transactielogboek
De techniek van Herrera, gebruik maken van het transactielogboek, is een techniek die alles al directer doet. De data wordt opgeslagen, De Java applicatie weet dat gelijk en via de pusher channel staat het bijna direct op de website. Eén van de voordelen dat deze techniek heeft is dat er nooit data op wordt gehaald als deze niet wordt opgeslagen. Herrera geeft zelf al aan dat het systeem dat hij gebruikt het proces niet vertraagd wordt door bijvoorbeeld triggers. Zo snel als er een update is in de database weet ook de Java API dit. Vervolgens kan de API dit aan de pusher doorgeven die het dan weer op de website zet. Al deze stappen lijken misschien meer dan het ophalen van data maar is al een stuk efficiënter en sneller. Het gebruikt meerdere elementen die ook los van elkaar bestaan. Zo lijkt het ophalen van data enigszins op long polling (wachten tot er data is in plaats van vragen of het er al is).
Conclusie
Bronnenlijst
Herrera, E. (2018, 4 mei). Getting data in realtime from MySQL with Java. Pusher. https://pusher.com/tutorials/realtime-mysql-java/
...