Cache - popis současného stavu

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

Popis současného stavu

V současnosti je cache implementována nad testovací databází HSQLDB. Kód je uložen ve třídě cz.muni.fi.vezmu.server.cache.CacheImpl. Zde jsou implementovány základní metody pro práci s cache. V první fázi se jedná o ručně psané SQL přikazy.

Zvláštností je, že chybí metoda insertMetadata. Je nahrazena metodou updateMetadata, která kontroluje, zda metadata k danému dokumentu již existují či nikoliv. Podle toho použije INSERT nebo UPDATE do databáze.

Soubory dokumentů jsou v současnosti ukládány jako pole bajtů byte[]. V HSQLDB odpovidá typu LONGVARBINARY.

Nestandardní, ale rychlejši rešení je implementace Loggeru - metoda insertQuery. Zde by položka SOURCE - měla být řešena jako samostatná tabulka, ale s ohledem na množstvi insertů, které by se musely dělat zbytečně navíc, se názvy zdrojů řadí za sebe do jednoho stringu odděleně střednikem. V této fázi nebyl požadavek na jiné metody pro práci s třídou Logger, než je zápis. Jiné metody tedy nejsou implementovány.

Co je třeba změnit

  • testovaci tridy pres JUnit
  • logger
  • pouzit bloby
  • vytvorit indexy - implicitne jen podle ID
  • upozornit ze, se indexy pouzivaji pouze pri dotazu na cele jmeno, takze LIKE, % ... nejde pres index
  • upozornit na specificke casti kodu pro HSQLDB
  • pouzit factory pattern na prepinani mezi databazemi
  • JNDI
  • umisteni servletu, ktere inicializuji cache do jineho balicku
  • alias u hsqldb
  • hsqldb jako demon
  • predelat logovani - vyuzit log4j
  • prejmenovat getFile(int id) na getFileById(int id)
  • HIBERNATE
  • EJB 3.0