Distributed Query Processing and Optimization