Tailsweep
Svenska UK

Meny

  • Hem
  • Tailsweep
  • Tailsweep Blog Search
  • Tailsweeps Blogg
  • Google group
  • AddThis Social Bookmark Button

Projekt

  • Mammatus
  • Parhely
  • Haloe
  • AbstractCache
  • Utils

Arkiv

  • juni 2008
  • maj 2008
  • mars 2008
  • februari 2008
  • januari 2008
  • december 2007

Sidor

  • Kontakt

Kategorier

    AJAX
    Backup
    BigTable
    Browser
    cache
    Geo
    haloe
    Hibernate
    Javascript
    Job
    Lucene
    Mail
    Monitor
    Monitoring
    MySQL
    optimization
    regex
    release
    SCM
    Server
    sharding
    Spatial
    Tools
    Uncategorized

Prenumerera

RSS Senaste nytt som RSS

Arkiv för kategorin ‘release’

Utils släppt

onsdag, januari 2nd, 2008

Under många år har jag samlat kod i skriven av mig och andra i ett bibliotek som jag tråkigt nog kallar Utils. Utils är rätt och slätt ett bibliotek som innehåller ickekomplexa klasser såsom FileUtils, StreamUtils etc. Det mesta är för att undvika att skriva redundanta metoder och att samla dem på ett ställe där jag vet att jag testat igenom det tillräckligt.

Tags: project, release
Postad i release | No Comments »

Första versionen av AbstractCache släppt

onsdag, januari 2nd, 2008

Den första publika open source versionen av AbstractCache är nu släppt. Jag utvecklade denna lösning då jag jobbade på Eniro. Dock så ville jag fortsätta utveckla denna lösning efter att jag lämnade och Eniro uppmuntrade mig att släppa den som ett Open Source projekt. Tack Linus!

Den är testad under ganska extrema förhållanden men behöver naturligtvis hela tiden förbättras.

AbstractCache är ett javaprojekt som satsar på att hantera lagring av data som är nyckel/värde baserad dvs kan ett värde kan letas upp med hjälp av en nyckel. Semantiskt ex. $cache->get($key)

För närvarande finns det stöd för Minnes, Disk och replikerade cachar.

Minnescacharna kan delas upp i tre grupper.

  • LRU - Least Recent Used - Håller en MRU lista med LRU policy i minnet - Jag har i nuläget 4 implementationer men favoriserar två :)
  • LFU - Least Frequently Used (bäst). De nycklar som används minst kastas först - 2 implementationer just nu.
  • Hash - Obegränsad minneslagring - Ytterst snabb - En implementation som wrappar en HashMap.

De diskcachar som det finns stöd för idag.

  • Btree - En b+tree lösning som använder sig av JDBM. Nycklarna är sorterade på samma sätt som en java.util.TreeMap och implementerar också SortedMap.
  • Htree - En snabbare osorterad lösning som är hashbaserad.
  • HashedDiskCache - En fil per nyckel/värde - Mycket stabil men inte lika snabb.

Distribuerade cachar

  • MemCached - En wrapper kring Greg Whalin’s MemCached klient men följer java.util.Map interfacet
  • Hdfs - En cache som använder sig av Hadoop Distributed File System som lagring. Mycket skalbar lösning men inte så snabb.
  • Jgroups - Symmetrisk - En distributionsmekanism som ska garantera att alla noder som är anslutna har samma tillstånd i varje ögonblick.
  • Jgroups - Assymmetrisk - Fungerar ungefär som MemCached men man kan ange hur många noder som skall innehålla samma nyckel/värde par.

+ en massa annat smått och stort bla.

  • Stöd för Hibernate 2nd level cache.
  • OsCache wrapper
  • Timade cachar och mappar
  • Cache som sparar dess tillstånd periodiskt och vid nedstängning.
  • Acegi User Cache

TODO

  • Förbättra Jgroups replikeringen.
  • Bygga stöd för distribuerad Lucene indexering av det data som läggs i cachen.
  • Lägga till en wrapper för EHCache
  • Lägga till en wrapper för JBoss TreeCache
  • Bygga en buffrad cache som kan öka prestanda på de diskbaserade lösningarna mångfalt.
  • Bygga en cache som tar en lista av andra cachar och sparar tillståndet till/från dem i specificerad ordning. Tex en jgroupscache som backas av en minnescache som i sin tur backas av en diskbaserad.
  • Slutligen wrappa ihop min CacheServer som använder sig av NIO. Detta är inte så hög prio då det finns andra serverlösningar som är ganska snabba.
  • Plocka upp stöd igen för min rmilösning som jag slutade använda mig av för några år sen då det var så struligt att starta stoppa RMI processen inifrån webbapplikationer.

Tags: cache, release
Postad i release | No Comments »

Copyright © 2007 Tailsweep AB

Tailsweep development Blog is proudly powered by WordPress
Entries (RSS) and Comments (RSS).