<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    
    
    <script type="text/javascript">
        if(window.location.protocol != 'https:') {
            location.href =   location.href.replace("http://", "https://");
        }
    </script>
    


    <title>Apache Wayang - Publications</title>
    <link rel="icon" href="https://wayang.apache.org/assets/img/logo/favicon-pluma.ico">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
    <link rel="stylesheet" href="https://wayang.apache.org/assets/css/color.css">
    <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>

    <link rel="stylesheet" href="https://wayang.apache.org/assets/css/monokai.css">
    <link rel="stylesheet" href="https://wayang.apache.org/assets/css/home.css">

</head>
<body>



    
    

    
    

    
    

    
    

    
    

    
    
        
    


<nav class="navbar navbar-expand-lg navbar-light bg-light sticky-top shadow-lg">
    <div class="container d-flex justify-content-between w-100">
            <div class="mr-auto p-2 w-100">
                <div class="d-flex">
                    <a class="navbar-brand mr-auto" href="/">
                        <img style="max-height: 75px" src="https://wayang.apache.org/assets/img/logo/logo_400x160.png"/>
                    </a>
                    <button class="navbar-toggler ml-auto align-self-center" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>
                </div>

            </div>

            <div>
                <div class="p-2 collapse navbar-collapse" id="navbarSupportedContent">
                    <div class="navbar-nav">
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/">
                                Home
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/about">
                                About
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/community">
                                Community
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/documentation">
                                Documentation
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/publications-home">
                                Publications
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item dropdown ">
                            <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
                                Apache
                            </a>
                            <div class="dropdown-menu">
                                
                                <a class="dropdown-item" href="http://www.apache.org/foundation/how-it-works.html">
                                    Apache Software Foundation
                                </a>
                                
                                <a class="dropdown-item" href="http://www.apache.org/licenses/">
                                    Apache License
                                </a>
                                
                                <a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">
                                    Sponsorship
                                </a>
                                
                                <a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">
                                    Thanks
                                </a>
                                
                            </div>
                        </li>
                        
                        
                    </div>
                </div>
            </div>
        </div>
    </div>



</nav>
<div class="container-fluid p-0">
  <div class="title-post mb-3 mt-n5 d-flex align-items-center shadow" >
    <div class="col pt-4" style="text-align: center">
        <h1 class="mb-n2 mt-1" style="color: white; font-size: 4em">Publications</h1>
        
    </div>
</div>

<section>
    <div class="container timeline mt-n3">
        <div class="row">
            <div class="col-12">
            <br>
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2021 - 6 - 20
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    The Power of Nested Parallelism in Big Data Processing -- Hitting Three Flies with One Slap

                </h4>
                <p>SIGMOD 2021</p>

                <p><strong>Authors: </strong>Gábor E. Gévay, Jorge-Arnulfo Quiané-Ruiz and Volker Markl.</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2021-06-21-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://www.agora-ecosystem.com/publications/nested/">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2020 - 11 - 17
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Prescriptive Learning for Air-Cargo Revenue Management

                </h4>
                <p>ICDM 2020</p>

                <p><strong>Authors: </strong>Stefano Giovanni Rizzo, Yixian Chen, Linsey Pang, Ji Lucas, Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz and Sanjay Chawla</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2020-11-17-icdm/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://ieeexplore.ieee.org/document/9338388">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2020 - 11 - 1
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    RHEEMix in the Data Jungle: A Cost-based Optimizer for Cross-Platform Systems

                </h4>
                <p>VLDB Journal 29(6), 2020</p>

                <p><strong>Authors: </strong>Sebastian Kruse, Zoi Kaoudi, Sanjay Chawla, Felix Naumann, Bertty Contreras-Rojas and Jorge-Arnulfo Quiané-Ruiz</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2020-11-01-journal_vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/journal_vldb.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2020 - 4 - 20
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    ML-based Cross-Platform Query Optimization

                </h4>
                <p>ICDE 2020</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz, Bertty Contreras-Rojas, Rodrigo Pardo-Meza, Anis Troudi and Sanjay Chawla</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2020-04-20-icde/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/icde20.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2019 - 11 - 20
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    TagSniff: Simplified Big Data Debugging for Dataflow Jobs

                </h4>
                <p>SoCC 2019</p>

                <p><strong>Authors: </strong>Bertty Contreras-Rojas, Jorge-Arnulfo Quiané-Ruiz, Zoi Kaoudi and Saravanan Thirumuruganathan</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2019-11-20-socc/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/socc19.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2019 - 4 - 7
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Optimizing Cross-platform Data Movement

                </h4>
                <p>ICDE 2019</p>

                <p><strong>Authors: </strong>Sebastian Kruse, Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz, Sanjay Chawla, Felix Naumann and Bertty Contreras-Rojas</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2019-04-07-icde/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/icde19.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2018 - 08 - 27
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    RHEEM: Enabling Cross-Platform Data Processing

                </h4>
                <p>Paper at PVLDB 11(11) 2018</p>

                <p><strong>Authors: </strong>Divy Agrawal, Sanjay Chawla, Zoi Kaoudi, Sebastian Kruse, Jorge-Arnulfo Quiané-Ruiz, Bertty Contreras-Rojas, Ahmed Elmagarmid, Yasser Idris, Ji Lucas, Essam Mansour, Mourad Ouzzani, Paolo Papotti, Nan Tang, Saravanan Thirumuruganathan and Anis Troudi</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2018-08-27-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheem.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2018 - 4 - 16
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Cross-Platform Data Processing: Use Cases and Challenges

                </h4>
                <p>Tutorial at ICDE 2018</p>

                <p><strong>Authors: </strong>Zoi Kaoudi and Jorge-Arnulfo Quiané-Ruiz</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2018-04-16-icde-tutorial/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheemtutorial.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2018 - 4 - 16
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    RheemStudio: Cross-Platform Data Analytics Made Easy

                </h4>
                <p>Demo at ICDE 2018</p>

                <p><strong>Authors: </strong>Ji Lucas, Yasser Idris, Bertty Contreras-Rojas, Jorge-Arnulfo Quiané-Ruiz and Sanjay Chawla</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2018-04-16-icde-demo/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/studiodemo.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2017 - 6 - 12
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Interoperating a Zoo of Data Processing Platforms Using Rheem

                </h4>
                <p>Talk at Spark Summit 2017</p>

                <p><strong>Authors: </strong>Yasser Idris and Sebastian Kruse</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2017-06-12-spark_summit/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://databricks.com/session/interoperating-a-zoo-of-data-processing-platforms-using-rheem">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2017 - 5 - 14
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    A Cost-based Optimizer for Gradient Descent Optimization

                </h4>
                <p>Paper at SIGMOD 2017</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz, Saravanan Thirumuruganathan, Sanjay Chawla and Divy Agrawal</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2017-05-14-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/ml4all.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 09 - 7
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Fast and Scalable Inequality Joins

                </h4>
                <p>VLDB Journal 26(1) 2017</p>

                <p><strong>Authors: </strong>Zuhair Khayyat, William Lucia, Meghna Singh, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang, Panos Kalnis.</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-09-07-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/vldbj17.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 09 - 5
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Rheem

                </h4>
                <p>Tutorial at BOSS 2016</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Sebastian Kruse and Jorge-Arnulfo Quiané-Ruiz</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-09-05-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheemhandson.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 6 - 26
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Rheem: Enabling Multi-Platform Task Execution

                </h4>
                <p>Demo at SIGMOD 2016</p>

                <p><strong>Authors: </strong>Divy Agrawal, Lamine Ba, Laure Berti-Equille, Sanjay Chawla, Ahmed Elmagarmid, Hossam Hammady, Yasser Idris, Zoi Kaoudi, Zuhair Khayyat, Sebastian Kruse, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Mohammed J. Zaki</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-06-26-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheemdemo.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 3 - 15
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Road to Freedom in Data Analytics

                </h4>
                <p>Vision Paper at EDBT 2016</p>

                <p><strong>Authors: </strong>Divy Agrawal, Sanjay Chawla, Ahmed Elmagarmid, Zoi Kaoudi, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Mohammed J. Zaki</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-03-15-edbt/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/vision.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2015 - 08 - 31
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Lightning Fast and Space Efficient Inequality Joins

                </h4>
                <p>Paper at PVLDB 8(13) 2015</p>

                <p><strong>Authors: </strong>Zuhair Khayyat, William Lucia, Meghna Singh, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Panos Kalnis</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2015-08-31-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/iejoin.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2015 - 5 - 31
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    BigDansing: A System for Big Data Cleansing

                </h4>
                <p>Paper at SIGMOD 2015</p>

                <p><strong>Authors: </strong>Zuhair Khayyat, Ihab F. Ilyas, Alekh Jindal, Samuel Madden, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Si Yin</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2015-05-31-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/bigdansing.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
    </div>
</section>






</div>

<footer class="footer position-sticky sticky-bottom">
    <nav class="navbar navbar-light bg-light"  style="background: #A6A6A6;">
        <div class="container">
            <div class="row">
                <div class="col text-center">
                    <a href="http://incubator.apache.org/" >
                        <img style="max-height: 15vw" src="https://wayang.apache.org/assets/img/egg-logo.png">
                    </a>
                    <br />
                    <p style="text-align: justify">
                        Apache Wayang is an effort undergoing Incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
                    </p>
                    <p class="text-center">
                        Copyright &#169; 2021 The Apache Software Foundation.<br />
                        Licensed under the Apache License, Version 2.0.<br />
                        Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation.
                    </p>
                </div>
            </div>
        </div>
    </nav>
</footer>


<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>

<script src="https://wayang.apache.org/assets/js/add_numbers.js"></script>
</body>

</html>
