De auteurs blikken terug op hun invloedrijke artikel over het Dataflow-model, waarin een uniform model voor batch- en streaming-engines werd voorgesteld. Terwijl kernprincipes zoals event-tijd en sterke consistentie nog steeds relevant zijn, concluderen ze dat bepaalde aspecten — zoals windowing en triggers — te complex waren en operationele zorgen mengden met analytische semantiek.
Belangrijke inzichten uit de herziening zijn:
- Streams en tabellen zijn in feite verschillende representaties van hetzelfde object.
- De focus moet verschuiven van de mechanica van streaming naar SQL, incrementeel beheer van views en freshness contracts.
- Het onderscheid tussen batch en streaming is grotendeels semantisch.
- Er is een splitsing ontstaan in de behoefte aan lage latentie tussen OLTP en OLAP.
Het artikel concludeert dat de complexiteit van streaming-analytics grotendeels zou moeten verdwijnen ten gunste van meer abstracte, database-georiënteerde interfaces.
Het Dataflow-model herzien
Samenvatting
Elf jaar geleden betoogde het artikel over het Dataflow-model dat onbegrensde data die niet in de juiste volgorde binnenkwam de nieuwe norm was, en dat we moeten stoppen met wachten tot data ooit volledig is. Het stelde een uniform model voor (windowing, triggers, watermarks en retractions) om vrijelijk een afweging te kunnen maken tussen correctheid, latentie en kosten over batch- en streaming-engines. Naar aanleiding van de VLDB Test of Time award beoordelen we ons eigen werk — een artikel over streaming-analytics, in waarheid als niet in naam — op wat goed is verouderd, wat slecht is verouderd en wat we over het hoofd hebben gezien.
We concluderen dat de kernfundamenten van het artikel grotendeels solide zijn: de prioriteit van event-tijd, de zinloosheid van het wachten op volledigheid en de nadruk op sterke consistentie zijn goed verouderd. Maar we hebben belangrijke delen van de analytische interface foutief benaderd:
- Ten eerste lieten we windowing en triggering, waarvan de semantiek verstrikt was met operationele zorgen, de uiteenzetting domineren meer dan verdiend was.
- Ten tweede waren triggers een over-engineered antwoord op een vraag waar gebruikers nooit mee geconfronteerd hadden mogen worden.
- Ten derde miste het stream-centrische wereldbeeld een diepere waarheid: streams en tabellen zijn twee representaties van hetzelfde object met verschillende toegangssemantiek.
De mechanismen die de analytische doelen van het artikel realiseerden, evolueerden uiteindelijk uit het database-handboek: SQL, incrementeel beheer van views en gematerialiseerde views met expliciete versheidcontracten (freshness contracts). We richtten ons te veel op de mechanica van streaming in plaats van af te maken waar de database-community aan was begonnen maar nooit had voltooid: de complexiteit van analytische streaming bijna volledig laten verdwijnen.
Toch is het oordeel niet enkel een bekentenis. We onderzoeken hoe het volledigheidsprincipe uiteenviel in twee succesvolle vormen: watermarks (waarbij streams zichtbaar blijven) en snapshot-consistente refresh (waarbij ze dat niet doen). We analyseren waarom dat laatste veel meer gebruikers bereikte door minder van hen te vragen, en we generaliseren het eerste tot gedeclareerde beperkingen op wijzigingen.
Daarnaast stellen we vast dat:
- Het debat tussen batch en streaming grotendeels semantisch was.
- De vraag naar lage latentie zich splitste langs de oude OLTP/OLAP-lijn, waardoor analytics tevreden bleef bij een minder strikte versheid.
- We het kader overnemen waarmee we hadden willen beginnen (leave in, leave out, push harder).
- We peinzen over het uiteindelijke verdwijnen van streaming buiten de analytics.
Het Dataflow-model herzien
Samenvatting
Elf jaar geleden betoogde het artikel over het Dataflow-model dat onbegrensde data die niet in de juiste volgorde binnenkwam de nieuwe norm was, en dat we moeten stoppen met wachten tot data ooit volledig is. Het stelde een uniform model voor (windowing, triggers, watermarks en retractions) om vrijelijk een afweging te kunnen maken tussen correctheid, latentie en kosten over batch- en streaming-engines. Naar aanleiding van de VLDB Test of Time award beoordelen we ons eigen werk — een artikel over streaming-analytics, in waarheid als niet in naam — op wat goed is verouderd, wat slecht is verouderd en wat we over het hoofd hebben gezien.
We concluderen dat de kernfundamenten van het artikel grotendeels solide zijn: de prioriteit van event-tijd, de zinloosheid van het wachten op volledigheid en de nadruk op sterke consistentie zijn goed verouderd. Maar we hebben belangrijke delen van de analytische interface foutief benaderd:
- Ten eerste lieten we windowing en triggering, waarvan de semantiek verstrikt was met operationele zorgen, de uiteenzetting domineren meer dan verdiend was.
- Ten tweede waren triggers een over-engineered antwoord op een vraag waar gebruikers nooit mee geconfronteerd hadden mogen worden.
- Ten derde miste het stream-centrische wereldbeeld een diepere waarheid: streams en tabellen zijn twee representaties van hetzelfde object met verschillende toegangssemantiek.
De mechanismen die de analytische doelen van het artikel realiseerden, evolueerden uiteindelijk uit het database-handboek: SQL, incrementeel beheer van views en gematerialiseerde views met expliciete versheidcontracten (freshness contracts). We richtten ons te veel op de mechanica van streaming in plaats van af te maken waar de database-community aan was begonnen maar nooit had voltooid: de complexiteit van analytische streaming bijna volledig laten verdwijnen.
Toch is het oordeel niet enkel een bekentenis. We onderzoeken hoe het volledigheidsprincipe uiteenviel in twee succesvolle vormen: watermarks (waarbij streams zichtbaar blijven) en snapshot-consistente refresh (waarbij ze dat niet doen). We analyseren waarom dat laatste veel meer gebruikers bereikte door minder van hen te vragen, en we generaliseren het eerste tot gedeclareerde beperkingen op wijzigingen.
Daarnaast stellen we vast dat:
- Het debat tussen batch en streaming grotendeels semantisch was.
- De vraag naar lage latentie zich splitste langs de oude OLTP/OLAP-lijn, waardoor analytics tevreden bleef bij een minder strikte versheid.
- We het kader overnemen waarmee we hadden willen beginnen (leave in, leave out, push harder).
- We peinzen over het uiteindelijke verdwijnen van streaming buiten de analytics.