前回の続き。 前回の結果、とりあえず、DelayQueueによって期限切れのEntryは取り出せるようになった。 だけど、この仕組みの状態では期限切れになったEntryは容赦なく消えていってしまう。 つまり、そのEntryがまだ利用されるかもしれないのに、消えてしまうのは(色々な意味で)もったいない。 特に、javaだとHashMapとかのloadFactorまわりの動きは(きっと)もったいない もう一度LRUについてwikipediaに確認すると Least Recently Used (LRU) はキャッシュメモリや仮想メモリが扱うデータのリソースへの割り当てを決定するアルゴリズムである。対義語はMost Recently Used (MRU)。 和訳すると「最近最も使われなかったもの」つまり「使われてから最も長い時間が経ったもの」「参照される頻度が最も低いもの」である。 という
ANTLRのやつがあったけど、JavaCCのがみつからなかったので、でっちあげた via - http://harward.us/~nharward/antlr/memcached_protocol.g できあがったのは、こんな感じ SKIP: { " " | "\t" | "\r" | "\n" } TOKEN: { < NUMBER: ["1"-"9"] (["0"-"9"])* | "0" > | < FLAGS: < NUMBER > > | < TIME: < NUMBER > > | < LENGTH: < NUMBER > > | < CREMENT_VALUE: < NUMBER > > | < CAS_UNIQUE: < NUMBER > > } TOKEN: { < SET_STATEMENT: "set" > | < ADD_STATEMENT: "add" > |
今回から数回にわたり、Kaiという分散Key/Valueストアについて解説させていただきます。 まず、第1回では井上がKaiのコンセプトをご紹介します。次回以降は、Kai開発者の一人である幾田さんがKaiの利用方法について解説します。最終回では、gooホームでKaiを運用している橋本さんから、Kaiの運用方法について紹介していただく予定です。なお、本連載が対象とするKaiのバージョンは0.4です。 Kaiとは Kaiとは、分散型のKey/Valueストアです。Amazon.comが2007年に発表したDynamoというシステムに触発されて、そのオープンソース版として開発されています。Kaiをバックエンドに据えてWebサイトを構築することで、高いスケーラビリティやアベイラビリティを実現できます。2009年5月には、gooホームのバックエンドに導入され、運用実績も高まってきました。 Kaiは多
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く