# Learning Resources This documents contains a list of papers articles etc. that are useful for understanding the design of IFQL. ## Stream Processing * Set of articles by Tyler Akidau on building stream processing engines with correctness guarantees. https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101 https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-102 * Published paper by Tyler AKidau on building stream processing engines with correctness guarantees. http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf * Paper from UC Berkley introducing Spark and RDDs https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf * A summary of the different data APIs in Spark https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html ## Map Reduce * Google research paper on Dremel https://research.google.com/pubs/pub36632.html ## DataFrames * Good overview on various sparse matrix implementations. https://en.wikipedia.org/wiki/Sparse_matrix ## Query Optimization * Volcano Optimizer Generator https://pdfs.semanticscholar.org/a817/a3e74d1663d9eb35b4baf3161ab16f57df85.pdf * The Cascades Framework for Query Optimization http://db.informatik.uni-mannheim.de/downloads/hauptstudium/seminare/papers/Cascades_01.PDF * Chapter 7: Query Optimization From Readings in Database Systems, 5th Edition (2015) http://www.redbook.io/pdf/ch7-queryoptimization.pdf This chaper references various other valuable readings. * Cost-based Optimization in Parallel Data Frameworks https://www.cse.iitb.ac.in/~pararth09/btp/report.pdf