engine group namiruddin ahmed ali kamil. 2 xmlape xmlape research group involved in research on a...
TRANSCRIPT
Engine GroupNamiruddin Ahmed
Ali Kamil
2
XMLApe
XMLApe Research Group• Involved in research on a number of projects that
are related to XML and inspired by databases Engine Group
• Develop DBMS that ties XMLApe GUI to multiple XMLApe Data Sources
• Split query involving multiple sources into multiple queries on single sources
• Merge multiple result sets and return to XMLApe GUI
3
XMLApe Architecture
4
Splitting a Query
<?xml version="1.0" encoding="UTF-8"?><query xmlns="http://199.77.128.59:8080/query""> <source> <location>http://199.77.128.59:8080/flights/flights.xsd</location> <alias>Flight_1</alias> </source> <source> <location>http://199.77.128.59:8080/flights/flights.xsd</location> <alias>Flight_2</alias> </source> <source> <location>http://199.77.128.59:8080/rentals/rentals.xsd</location> <alias>CarRental_1</alias> </source> <select> <schemaRef> <alias>Flight_1</alias> <field>flights/flightflightFrom</field> </schemaRef> <value>Detroit</value> </select>
<join> <schemaRef> <alias>Flight_1</alias> <field>/flights/flight/flightTo</field> </schemaRef> <schemaRef> <alias>Flight_2</alias> <field>/flights/flight/flightFrom</field> </schemaRef> <schemaRef> <alias>CarRental_1</alias> <field>/flights/flight/rentalFrom</field> </schemaRef> <schemaRef> <alias>CarRental_1</alias> <field>/rentals/rental/rentalTo</field> </schemaRef> </join></query>
SubQuery 1
SubQuery 2
SubQuery 3
Figure: Query Splitter. Splitting a multi-source distributed query into single-source query documents.
5
Resulting Queries
Figure: Query Splitter. Splitting a multi-source distributed query into single-source query documents.
<?xml version="1.0" encoding="UTF-8"?><query xmlns="http://199.77.128.59:8080/query"> <source> <location>http://199.77.128.59:8080/flights/flights.xsd</location> <alias>Flight_1</alias> </source> <select> <schemaRef> <alias>Flight_1</alias> <field>/flights/flight/flightFrom</field> </schemaRef> <value>Detroit</value> </select></query>
SubQuery 1
<?xml version="1.0" encoding="UTF-8"?><query xmlns=“http://199.77.128.59:8080/query”> <source> <location>http://199.77.128.59:8080/flights/flights.xsd</location> <alias>Flight_2</alias> </source></query>
SubQuery 2
<?xml version="1.0" encoding="UTF-8"?><query xmlns="http://199.77.128.59:8080/query"> <source> <location>http://199.77.128.59:8080/rentals/rentals.xsd</location> <alias>CarRental_1</alias> </source> <join> <schemaRef> <alias>CarRental_1</alias> <field>/rentals/rental/rentalFrom</field> </schemaRef> <schemaRef> <alias>CarRental_1</alias> <field>/rentals/rental/rentalTo</field> </schemaRef> </join> </query>
SubQuery 3
6
Future Work
Unify sub queries on the same data source• Merge sub queries using operations like self-joins to be
performed natively on data source
Projections and non-equi joins• Change Schema Melder to publish result schema for the
user interface depending on the projections in the query document
Support result reorganization Making engine page from disk
• Reduce memory drain when dealing with larger result sets