XIQE/Schuzky/20.10.2005

Z FI WIKI
Přejít na: navigace, hledání

Zpět na Schůzky

Schůzka týmu XIQE ze dne 20. 10. 2005

Prezence přítomných

Dostavili se Petr Adámek, Petr Vlček, Zdeněk Zikán, Petr Neděla, Josef Šustáček, Michal Řihák, Zuzana Ansorgová, Michal Krčál.

Problémy

Struktura zpracování dotazu

  1. Dotaz ve formě řetězce je předložen parseru dotazu
  2. Výstupem parseru je obdoba relační algebry - objektová struktura
  3. Optimalizátor pomocí relační algebry vytvoří plán dotazu. Plán dotazu je posloupnost volání operací konkrétní indexační metody. Je potřeba navrhnout jednotné rozhraní pro optimalizátor. Pro každou indexační metodu implementovat.
  4. Plán dotazu je možné provést. Bude mít jednotné API.

Instanci QueryOptimizeru je možné získat například pomocí třídy QueryOptimizerFactory.

Návrh rozhraní QueryOptimizer

 /**
  * Reprezentuje implementaci optimalizátoru dotazu pro konkrétní
  * indexační metodu
  */
 public interface QueryOptimizer {
     /*
      * @param ParsedXPathQuery predpripravena objektova 
         reprezentace XPath dotazu
      * @return ExecutionPlan plan provedeni dotazu
      */ 
     public ExecutionPlan prepareExecutionPlan(ParsedXPathQuery query);
 }

Návrh rozhraní ExecutionPlan

 /**
  * Reprezentuje plán dotazu
  */
 public interface ExecutionPlan { 
    /**
     * Vyhodnotí dotaz a vrátí výsledek
     * @return Objecet blize nespecifikovany objekt 
     * reprezentujici vysledek dotazu
     */
    public Object execute(XPathContext context);
    
 }

Jednotná identifikace uzlu pro všechny indexační metody

  • Při použití více indexačních metod najednou může být problém zjistit, že dva uzly získané pomocí dvou indexačních metod jsou identické - problém jednotného indentifikátoru.
  • V současné době je idea použití třídy NodeId. Alternativou může být použití primitivního typu int/long pro identifikaci uzlu – možná omezení, bez provedení experimentů není jisté, zda to zvýší efektivitu.

NodeId by mělo zapouzdřovat také identifikaci dokumentu, ve kterém se uzel nachází, a identifikaci samotného uzlu v rámci dokumentu.