60 likes | 68 Views
Engine Group. Namiruddin Ahmed Ali Kamil. 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
E N D
Engine Group Namiruddin Ahmed Ali Kamil
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
Splitting a Query Sub Query 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_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> Sub Query 2 Sub Query 3 Figure: Query Splitter. Splitting a multi-source distributed query into single-source query documents.
Resulting Queries Sub Query 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> Sub Query 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/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> <?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> Figure: Query Splitter. Splitting a multi-source distributed query into single-source query documents. Sub Query 3
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