Toksnabb disk
Under en tid så har vi använt en HashedDiskCache för persistens av våra inlägg då MySQL inte lämpar sig för uppgiften. Jag har funderat på varför den har varit aningens seg på att skriva. Då visar det sig att det egentligen är jdbm som är seg som ett träsktroll. Den används som db för att hålla koll på vilka nycklar som hör ihop med vilka filer. Helt enkelt en HashMap på disk.
Nu hittade jag ett riktigt snabbt bibliotekt i Apache Xindice där man kan välja på antingen en lösning som funkar som en hashmap eller ett bträd. De är ungefär lika snabba och läser 64kb chunkar i hela 80MB/sek! Det är riktigt snabbt eftersom det inte är sekventiell läsning vi pratar om.
För skojs skull byggde jag en lösning som använder Lucene i botten som lagring och gissa om den också är snabb. Dock så är den inte atomär (än) eftersom jag har sagt åt den att flusha själv baserat på RAM. Den kommer då spara indexet asynkront. Den behöver också optimeras med tex statistikräknare som håller koll på när det är dags att den ska optimera sig själv. Om man inte flushar asynkront sjunker skrivhastigeheten från ca 50MB/sec till ca 1MB/sec, vilket inte är acceptabelt.
Här hittar du LuceneCache och TreeCache (xindice).
Etiketter:cache, dht, disk


Lämna svar
trackback