Abstract-We undersöka tekniker för att automatiskt dekomponera någon XQuery fråga-inklusive uppdatering frågor som anges av XQuery Update Facility (XQUF)-into subqueries, som kan utföras nära sina datakällor, dvs. funktion-frakting. Den största utmaningen som tas upp här är att se till att de sönderfallna frågorna korrekt respekterar XML-nod identitet och bevara strukturella egenskaper, när (delar av) XML-noder skickas över nätverket, effektivt kopiera dem. Vi börjar med att exakt karakterisera förhållandena, under vilka pass-by-värde parameter passerar orsakar semantiska skillnader mellan fjärrutförande av ett XQuery uttryck och dess lokala utförande. Vi formulerar sedan en konservativ strategi som effektivt undviker nedbrytning i sådana fall. För att bredda möjligheterna till frågefördelning utvidgar vi semantiken genom pass-by-värde till en pass-by-fragment semantik, som håller bättre koll på nodidentiteter och strukturella egenskaper. Pass-by-fragment semantiken förfinas därefter till en pass-by projektion semantik med hjälp av en ny runtime XML projektion teknik, som säkert eliminerar de flesta semantiska skillnader mellan lokal och avlägsen utförande av ett XQuery uttryck, och kraftigt minskar meddelandestorlekar. Slutligen diskuterar vi hur dessa tekniker kan användas för att uppdatera frågor, både under standard W3C XQUF specifikation, samt under en utökad semantik som gör det möjligt att uppdatera fjärrdokument. De föreslagna teknikerna implementeras i XRPC, en enkel men effektiv XQuery förlängning som möjliggör funktionsfrakt genom att lägga till en Remote Procedure Call mekanism till XQuery. Experiment på MonetDB/ XQuery etablerar prestandapotentialen för våra XQuery nedbrytningstekniker.
I samma sammanhang behandlar REF problemen med att respektera nodidentiteter och bevara strukturella egenskaper vid sönderdelning av uppdateringsuttryck för distribuerat utförande genom en dynamisk XML-projektionsteknik.
Projective Distribution of XQuery with Updates
{'venue': 'IEEE Transactions on Knowledge and Data Engineering', 'journal': 'IEEE Transactions on Knowledge and Data Engineering', 'mag_field_of_study': ['Computer Science']}