ubQL: A distributed query language to program distributed query systems
ubQL is a distributed query language for programming large-scale distributed query systems such as resource sharing systems. The language is obtained by adding a small set of mobile process primitives (communication channels, migration operators, etc.) on top of any traditional query language. Queries are encapsulated into processes and can migrate between sites thus enabling cooperation. ubQL primitives also support stream-based processing and adaptive behavior to a certain extent. An important methodological device is the separation of the deployment (including migration) of query processes from the distributed execution of the queries. We define the semantics of the language by identifying a small set of rewriting steps that an evaluator for this language can follow. We also show how the language can capture quite naturally some traditional distributed query patterns (e.g. chaining, referral, query shipping, etc.). Our language is unique in the sense that it enforces a clear separation between the deployment of a query and its execution. Queries have to be deployed before they can be executed, as captured by the ubQL motto: “lay down the pipes, turn on the faucets”. Using some experimental configurations, we compare some deployment strategies for both single- and multi-query environments. A subset of the language has already been implemented as part of ubQLVM and has been used for the experimental results.
Sahuguet, Arnaud, "ubQL: A distributed query language to program distributed query systems" (2002). Dissertations available from ProQuest. AAI3054991.