IBM Journal of Research and Development · 2013 · 119 citations · 26 references
ComputingComputer EngineeringComputer ScienceBig Data AnalyticsDistributed SystemsProgramming LanguagesData-flow AnalysisDistributed ComputingDistributed Data ProcessingHigh-throughput ComputingStream ProcessingType CheckingCode ReuseDesign LanguageDistributed Stream ProcessingLanguage DesignOverviewStatic Type CheckingStreaming ArchitecturesStreaming Data Processing
The IBM Streams Processing Language (SPL) is the programming language for IBM InfoSphere® Streams, a platform for analyzing Big Data in motion. By “Big Data in motion,” we mean continuous data streams at high data-transfer rates. InfoSphere Streams processes such data with both high throughput and short response times. To meet these performance demands, it deploys each application on a cluster of commodity servers. SPL abstracts away the complexity of the distributed system, instead exposing a simple graph-of-operators view to the user. SPL has several innovations relative to prior streaming languages. For performance and code reuse, SPL provides a code-generation interface to C++ and Java®. To facilitate writing well-structured and concise applications, SPL provides higher-order composite operators that modularize stream sub-graphs. Finally, to enable static checking while exposing optimization opportunities, SPL provides a strong type system and user-defined operator models. This paper provides a language overview, describes the implementation including optimizations such as fusion, and explains the rationale behind the language design.
26
Sanjay Ghemawat · Communications of the ACM · 2008 · 18.5K citations · Full text
Michael Isard, Mihai Budiu, Yuan Yu et al. · 2007 · 2.5K citations
Christopher Olston, Benjamin Reed, Utkarsh Srivastava et al. · 2008 · 1.7K citations
The synchronous data flow programming language LUSTRE
Nicolas Halbwachs, P. Caspi, Pascal Raymond et al. · Proceedings of the IEEE · 1991 · 1.5K citations · Full text