Dataflow Model 논문, 11년 만에 스스로를 평가하다
The Dataflow Model Revisited
11년 전 발표된 Dataflow Model 논문은 무한하고 순서가 뒤섞인 데이터가 새로운 표준이며, 데이터가 완전해지기를 기다리는 것을 멈춰야 한다고 주장했다. 이 논문은 VLDB Test of Time 상을 기념하여 자신들의 작업을 되돌아보며, 무엇이 잘 늙었고, 무엇이 잘못 늙었으며, 무엇을 놓쳤는지 평가한다. 핵심 기반은 대체로 건재하지만, 분석 인터페이스의 중요한 부분에서 실수를 인정한다. 특히 스트림과 테이블이 동일한 객체의 서로 다른 접근 의미론을 가진 표현이라는 사실을 놓쳤고, 과도하게 설계된 트리거와 스트림 중심의 세계관이 문제였다. 결국 데이터베이스 커뮤니티가 시작했지만 완성하지 못한 일, 즉 분석적 스트리밍의 복잡성을 거의 완전히 사라지게 만드는 일에 집중해야 했다. 저자들은 워터마크와 스냅샷 일관성 새로고침으로 분화된 완전성 원칙, 배치 대 스트리밍 논쟁의 본질, 그리고 분석을 넘어선 스트리밍의 궁극적인 소멸에 대해 논한다.
우리는 스트리밍의 메커니즘에 너무 집중한 나머지, 데이터베이스 커뮤니티가 시작했지만 끝내지 못한 일, 즉 분석적 스트리밍의 복잡성을 거의 완전히 사라지게 만드는 일을 끝내지 못했습니다.
- janpeuker
저는 한때 Dataflow/Apache Beam에 매우 빠져 있었고, 말 그대로 논문을 책상에 인쇄해 두었을 뿐만 아니라 책도 가지고 있었습니다. 그들이 이벤트 시간 대 처리 시간과 완전성에 절대 의존하지 않는 것에 대해 옳았다는 데 동의하며, 왜 그것이 받아들이기 어려운 일이었는지 더 깊이 파고든 점이 마음에 듭니다. 무한 스트림 트리거에 대해 생각하면 아직도 머리가 아프고, 우리가 테이블 중심 모델로 전환하게 되어 기쁩니다. 그래도 저는 여전히 Spanner의 일부 아이디어, 즉 데이터베이스를 메시지 버스로 사용하거나 행별 일관성 정보를 제공하는 것, 기본적으로 데이터베이스 내 CQRS를 도입했더라면 좋았을 것이라고 생각합니다. 훌륭한 논문입니다.
- scott_s
저는 스트리밍 분야에서 10년 동안 연구 개발을 하며 일했습니다(참고: https://scholar.google.com/citations?user=Rdf5OIYAAAAJ&hl=en). 스트리밍에서 벗어나 대규모 데이터 웨어하우스의 일반적인 문제로 옮겨간 후에도 저는 다음과 같은 결론을 내렸습니다. 모든 분석에 대해 기본적으로 SQL을 사용하고, 데이터베이스 관점이 분석을 위한 스트리밍을 생각하는 가장 좋은 방법이라는 것입니다.
저는 여전히 스트림 프로그래밍 모델이 매우 흥미롭고 강력하다고 생각합니다. 하지만 예전에는 그것들이 결국 높은 처리량과 낮은 지연 시간을 가진 대규모 병렬 시스템을 우아하게 프로그래밍하는 방법으로 더 주류가 될 것이라고 생각했습니다. 그러나 그렇게 되지 않았고, 앞으로도 그렇게 될 것이라고 더 이상 생각하지 않습니다. 사람들은 기존 프로그래밍 언어와 모델로 충분히 해내고 있으며, 그것으로 충분해 보입니다.