タグ

kvsに関するKanasansoftのブックマーク (6)

  • 第1回 memcachedの基本 | gihyo.jp

    株式会社ミクシィ 開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり、最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて、弊社開発部 研究開発グループの前坂とともに、使い方や内部構造、運用について解説させて頂きます。 memcachedとは memcachedは、LiveJournalを運営していたDanga Interactive社で、Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。現在ではmixiやはてな、Facebook、Vox、LiveJournalなど、さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは、RDBMSにデータを格納し、アプリケーションサーバでそのデータ

    第1回 memcachedの基本 | gihyo.jp
  • mixi Engineers’ Blog » スマートな分散で快適キャッシュライフ

    今日は以前のエントリーで書くと述べたConsistent Hashingに関して語らせて頂こうかと思います。ただしConsistent Hashingはセミナーやカンファレンスなどでかなり語られていると思いますので、コンセプトに関しては深入りせず、実用性に着目したいと思います。 問題定義 分散されたキャッシュ環境において、典型的なレコードを適切なノードに格納するソリューションはkeyのハッシュ値に対しmodulo演算を行い、その結果を基にノードを選出する事です。ただし、このソリューションはいうまでもなく、ノード数が変わるとキャッシュミスの嵐が生じます。つまり実世界のソリューションとしては力不足です。 ウェブサイトのキャッシュシステムの基はキャッシュがヒットしなかったらデータベースにリクエストを発行し、レコードが存在したらキャッシュしてクライエントに返すという流れです。ここで問題なのが一瞬

    mixi Engineers’ Blog » スマートな分散で快適キャッシュライフ
  • 第4回 memcachedの分散アルゴリズム | gihyo.jp

    株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま

    第4回 memcachedの分散アルゴリズム | gihyo.jp
  • 匿名による告発「MongoDBは使ってはいけない」 | gihyo.jp

    「PASTEBIN」というコンソールの出力やエラーログ、ソースコードなどを張り付けて共有するWebサイトがあり、そこに投稿された内容が議論を巻き起こしました。「⁠Don't use MongoDB」というタイトルが付けられた文章には、ヘビーにMongoDBを利用しているユーザからの辛辣(しんらつ)な批判が綴(つづ)られていました。 告発者はプロジェクトにて数千万件ものユーザ管理にMongoDBを利用しており、これまで長い間10gen社(MongoDBの開発元)から最高レベルの)有償サポートを受けていたため黙っていたが、少しでも多くの人に警鐘を鳴らすべく立ち上がったそうです。MongoDBの扱いやすさやスキーマフリーなモデル、豊富な実績などに一定の評価をしつつも、大規模な環境で実際に動かさずに判断するのは時に重大な問題となり、MongoDBにはそれが向いていないと言い切っています。 具体的に

    匿名による告発「MongoDBは使ってはいけない」 | gihyo.jp
    Kanasansoft
    Kanasansoft 2011/12/29
    単なる批判に終わらず、改善に向かう発展的な展開を望む。/古い情報なのか。
  • memcachedプロトコルについて

    ※ memcachedプロトコルの仕様書は以下にあります。 http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt データの保存を行うコマンド(set,add,replace,append,prepend)は、以下のような文法となります。 <コマンド> <key> <flags> <exptime> <bytes> <data> <key>は保存するためのキー名を指定します。実装によっても異なりますが、最大長は250byteです。 <flags>はアプリケーション特有の32bitの値(0〜4294967295)を指定することができ、データの取得時に格納した時の値が返されます。 <exptime>はデータの有効期間を秒数で指定します。指定した時間経過すると、自動的にキーが削除されます。0を指定すると自動削除され

    memcachedプロトコルについて
  • Key Value Storeについて

    主な3つの機能について実装状況を示してみました。 「データ永続化」とは、ストレージサーバを再起動してもデータが失われないようにデータをメモリではなくHDD等に格納できる機能です。例えば、memcachedはメモリにデータを置くため、ストレージサーバを再起動するとデータが失われます。 「データ冗長化」とは、格納したデータがストレージサーバ側で自動的に複数のストレージサーバにコピーが作られる機能です。1台(または数台)のストレージサーバがダウンしてもデータが失われることはありません。 「データ分散」とは、キーのハッシュ値等を元にデータの格納先のサーバを振り分ける機能で、負荷分散を図ることができる機能です。なお、memcached、Tokyo Tyrantにはサーバ側での分散機能はありませんが、クライアント側のライブラリによって格納先サーバを分散させることも可能です。 memcachedプロトコ

    Key Value Storeについて
  • 1