タグ

dbに関するse-miのブックマーク (105)

  • DBMによるテーブルデータベース その弐 - mixi engineer blog

    インフルエンザで休んだ影響で仕事が鬼のように溜まって消化不良のmikioです(こんな記事を書いている場合じゃない)。さて今回は、Tokyo Cabinetでリレーショナル風データベースを実現したテーブルデータベース(TCTDB)の実装について説明します。 SQLiteとの違いは? SQLiteはアプリケーション組み込み型のSQL対応リレーショナルデータベースのライブラリです。TCのテーブルデータベースよりもはるかに高機能で、それでいて性能も大変優れています。いわゆるデスクトップアプリケーションに組み込むデータベースをお探しであれば、TCなんかではなく、断然SQLiteがおすすめです。 一方で、TCなどのDBMは、より単純なデータ操作をより高速に実行できるように設計および実装されています。典型的なユースケースとして、大規模Webサイトのアカウント管理や、データマイニングに伴う集計操作が挙げら

    DBMによるテーブルデータベース その弐 - mixi engineer blog
    se-mi
    se-mi 2009/01/26
  • DBMによるテーブルデータベース - mixi engineer blog

    正月早々インフルエンザにかかって寝込んだmikioです。電車に乗る時や繁華街などに出る時はマスク着用が必須ですね。さて今回は、Tokyo Cabinetで実装したテーブル方式のデータベースについて紹介します。意外にどうして強力な機能なので、このネタは連載することを予告します。 テーブルデータベースとは 簡単に言えば、リレーショナルデータベースのテーブルのように、複数の列からなるレコードを格納できるデータベースです。SQLや表結合などの複雑な機能はサポートしませんが、そのぶん高速に動作します。つまり、DBMの速度で動くリレーショナル風データベースです(厳密にはリレーショナルデータベースではありません)。 TCの基となるハッシュデータベースは、単純なkey/value型のデータベースであり、つまりキーにも値にもスカラ(数値や文字列などの特に構造を持たない単一の値)しか格納することはできません

    DBMによるテーブルデータベース - mixi engineer blog
    se-mi
    se-mi 2009/01/19
  • RDBMSをKey-Value Storageとして使う場合のパフォーマンス計測(H2, MySQL編) - kaisehのブログ

    Tokyo Cabinet, QDBM, Lux IOなど、DBM同士のパフォーマンス比較はWebで良く見かけるのですが、MySQLのような普通のRDBMSをKey-Value Storage的に使用した場合、DBMと比べてどれくらい差が付くものなのかイメージが湧かなかったので、実際に計測してみました。 Javaプログラムから、Berkeley DB、H2、MySQLの3種類のストレージを使用しました。条件は以下の通りです。 Berkeley DB Java Edition 3.3.75 デフォルト設定 H2 1.1.106 jdbc:h2:file:~/dbmbench Embeddedモードで使用 デフォルト設定 DDLは以下を使用 create table casket ( id integer auto_increment primary key, key_ varchar(255

    RDBMSをKey-Value Storageとして使う場合のパフォーマンス計測(H2, MySQL編) - kaisehのブログ
    se-mi
    se-mi 2009/01/09
    TokyoCabinetは十数倍のパフォーマンスでは?とのこと
  • ウノウラボ Unoh Labs: PHPライブラリ Net_TokyoTyrantの紹介

    皆さんopenpearしてますか! 最近、インフルエンザの予防接種を受けたKeitaです。 ずいぶん前にですが、PHPからTokyoTyrantをネイティブに操作するライブラリをopenpearにてリリースしたので、簡単に紹介したいと思います。 Net_TokyoTyrantとは? PurePHPで書かれた、TokyoTyrantのネイティブなインターフェースを叩くライブラリです。 memcache互換のインターフェースなどとは違い、TokyoTyrantのLUA拡張などTokyoTyrant来の機能をほぼすべて使えるというのが特徴です。 インストール PEARライブラリとして公開されているので非常に簡単にインストール可能です。 openpearのチャンネルを追加します。 pear channel-discover openpear.org PEARコマンドでインストールを

    se-mi
    se-mi 2009/01/07
    TokyoTyrantライブラリ。今度試す
  • MemcachedではなくRepcachedをセッション管理に使用する(ついでにTokyo Tyrantについても少し)

    森川です。 複数台のWebサーバでセッション管理をする場合、NFS・DB・Memcachedなんかが一般的ですが、今回はMemcachedじゃなくてレプリケーションができるRepcachedを使ってみよう!というお話です。 まずは、Repcachedの話です。といってもMemcachedにレプリケーション機能が追加されたものというものです。 RepcachedはKLab株式会社さんのクラブラボで公開されています。インストール方法などについては、リンク先のページを見ればわかると思います。 今回のエントリで重要なのは、 ・高速であること (Memcachedと遜色ない) ・レプリケーションができること (1台が落ちてもデータが失われない) ・Memcachedのクライアントが使えること(設定を変更する必要がない) ということです。 ただし、割り当てたメモリを超えてデータを保存した場合には、デー

    MemcachedではなくRepcachedをセッション管理に使用する(ついでにTokyo Tyrantについても少し)
    se-mi
    se-mi 2008/12/25
    RepcachedとTokyo Tyrantについて。さわりだけ。memcachedはsession管理には使いたくないなと言うときに。 Flareについても触れて欲しかった
  • Google App EngineとMemcache API - mixi engineer blog

    こんにちは、某Perl界隈のIRCチャンネルでPythonがマイブーム的なKY誤爆をしてしまったtmaesakaです。 先日、以前から興味のあったGoogle App EngineとMemcache APIについて少し調べ、こちらに英文で報告したのですが、今日は日語で要約したまとめを紹介します。 まず軽く前置きですがGoogle App Engine (GAE)とは、Googleが提供しているウェブアプリケーションをGoogleのインフラ上でスケーリングや冗長化など、ある程度のノウハウや資金を要求される面倒な事を気にせずに運営できるプラットフォームです。つまり、典型的なPaaSの例であり、サービスの運営コストをelastic(伸縮)にします。昨今バズワード化しつつあるクラウドコンピューティングの一種でもあります。 GAEのインフラはGoogleより提供されているAPIセットを用いて利用し

    Google App EngineとMemcache API - mixi engineer blog
  • tokyo tyrantでPHPのセッションサーバやろうとおもって失敗した話 - cocoiti's diary

    PHPには、memcacheをセッションハンドラにする機能があります。 shimookaさんが簡単にご紹介されています 一方Tokyo Cabinet(以下TC)をネットワーク越しで使うTokyo Tyrant(以下TT)は、memcache互換のインターフェースがあります。 「・・・・もしかして、Tokyo Cabinetをストレージにできるんじゃね?そしたら永続化できるんじゃね」とおもったのが夕方。 仕事がおわってさっきためしてみました。 TCとTTはとりあえず、RPMを作ったんですが、ちょっと煩雑なので、id:perezvonのTTはじめましたの記事のコンパイル方法参考にするといいかとおもいます。 TTのサーバを立ち上げて、(TTの1.0だとttservctlというスクリプトがありました。) ttservctl start php側の設定で、 php.iniに session.sav

    tokyo tyrantでPHPのセッションサーバやろうとおもって失敗した話 - cocoiti's diary
    se-mi
    se-mi 2008/08/14
    memcacheインターフェースを使ってTC,TTをストレージに
  • repcachedのメモ。 - hideden.hatenablog.com

    ある程度でかいサービスでDailyCount的な事をやらなきゃいけなくなって、DBに突っ込むとログのお掃除や負荷が大変だからmemcachedでやりたいけど、落ちたらウザいしなー・・・って考えてたらrepcachedを思い出した。YAPC2008でもmixiのkazeburoさんが紹介してたみたい。まぁ寝坊して聞けなかったんだけど。。。 で、ちょっと色々やってみたメモ。まださほど検証してない。 Installとかはほとんど公式のとおりに。memcachedと共存させるためにバイナリ名かえてみた。 ./configure --enable-replication --program-transform-name=s/memcached/repcached/ make make installで、起動。console2つ開いて-vつけて情報表示させつつ。 repcached -v -m 64

    repcachedのメモ。 - hideden.hatenablog.com
  • たけまる / Kai - Amazon's Dynamo communicating with memcache protocol

    _ Kai - Amazon's Dynamo communicating with memcache protocol [kai][dynamo][erlang] だいぶ前 [2008-02-25-1] に,Perl (POE) で Amazon Dynamo っぽいもの を作りかけて放置していました. Erlang で書き直して,それなりに動くことを確認したので公開します.名 前は Kai といいます.今回は,memcache プロトコルでデータをやり取り できるようにしました. Dynamo とは,Amazon で使われているスケーラブルなハッシュテーブルで す.詳しくは [2008-01-31-1] に書きましたが,次のような特徴を持って おり,Amazon の巨大なサービスを支えています. - 簡単にスケールアウトできる - 障害に強い (マシン障害どころかラック障害にも耐える)

    se-mi
    se-mi 2008/05/13
    うはあ。すごい
  • mixi Engineers’ Blog » Tokyo Tyrantによる耐高負荷DBの構築

    連休中はWiiのマリオカートをやりまくってやっとVR7000越えたmikioです。愛車はマッハ・バイクとインターセプターです。さて今回は、分散ハッシュデータベースサーバTokyo Tyrantでmixiの最終ログイン時刻を管理するようにした時の苦労話を書きます。 ログイン処理は負荷地獄 mixiでは、全てのユーザについて、各々の最終ログイン時刻を管理しています。「マイミクシィ一覧」や「お気に入り」などの画面で、友人が近い時間にログインしていてコミュニケーションがとりやすい状態にあるかどうか確認できるようにするためです。 mixiのほぼ全てのページはログインしないと見られないページなので、ほぼ全てのページにアクセスされるたびにログイン確認が行われます。したがって、最終ログイン時刻はほぼ全てのページにアクセスされる度に更新されることになります。mixiの中で最も重いデータベースのひとつとして「

    mixi Engineers’ Blog » Tokyo Tyrantによる耐高負荷DBの構築
    se-mi
    se-mi 2008/05/07
    ”ログイン処理は負荷地獄”/マスタ・マスタ1台ずつ
  • cagraのα版試してみたよ(ビルド編) - @takuma104 log

    cagra: Reliable and Flexible Distributed Storage System 分散ストレージエンジンテクニカルデモ α版リリース あの上野 (nyaxt) 氏と、あの古橋 (frsyuki/viver) 氏 共作の cagra*1。cagra は分散ストレージシステムで、memcached の分散版というとちょっと語弊があるけど、memcached位のお手軽さで使えるストレージ(現在はオンメモリのみ)です。ストレージという意味では、MogileFS に近いのでは?というご指摘もいただきました。現在 24 ノード (24台) 位でもちゃんと動いているようです。(もちろん、1ノードでも動くよ) しかもデフォルトで Ruby バインドが付属です!memcached を簡易 DB 代わりみたいに Ruby から使っている僕としては、これは試すしかない!ということで

    cagraのα版試してみたよ(ビルド編) - @takuma104 log
    se-mi
    se-mi 2008/04/27
    分散memcachedのようなもの
  • repcached-2.0リリースのお知らせと、超簡単なサンプルコード : DSAS開発者の部屋

    repcached-2.0(memcached-1.2.5ベース) をリリースしましたのでお知らせします。 http://lab.klab.org/modules/mediawiki/index.php/Repcached (日語) http://repcached.lab.klab.org/ (英語) 今回の目玉はマルチマスタ構成のサポートです。 以前のバージョンはマスタ/スレーブ構成だったので、必ずマスタへ書き込まなければいけませんでした。そのため、接続先のサーバがマスタなのかどうかをクライアントが判別しなければいけなかったり、keepalivedなどと併用するなどの工夫が必要でしたが、今回のバージョンではその必要がなくなります。両方のサーバに対してデータを書き込むことができるようになったので、かなり使いやすくなったと感じています。 repcachedはパフォーマンスを最重視している

    repcached-2.0リリースのお知らせと、超簡単なサンプルコード : DSAS開発者の部屋
    se-mi
    se-mi 2008/04/11
    マルチマスタすげえ
  • PHP+memcache+Repcachedを試してみた - Do You PHP はてブロ

    KLabラボから公開されているRepcachedですが、フェイルオーバーした際の挙動とかを確認したくて、サックリ試してみました。 環境はCentOS4.6 on VMwareで仮想NICは1枚、NAT接続でIPアドレスは192.168.98.128です。PHPのバージョンは5.2.5です。 Repcachedのインストールはこんな感じ。 $ wget http://www.monkey.org/~provos/libevent-1.4.2-rc.tar.gz $ tar zxf libevent-1.4.2-rc.tar.gz $ cd libevent-1.4.2-rc/ $ ./configure $ make $ sudo make install $ cd ../ $ wget http://downloads.sourceforge.net/repcached/memcached

    PHP+memcache+Repcachedを試してみた - Do You PHP はてブロ
    se-mi
    se-mi 2008/03/18
    おお。Repcached
  • Memcached互換のデータベース·Memcachedb MOONGIFT

    Memcachedを使っている人は多いと思う。DBのキャッシュやセッションの保存先として便利なソフトウェアだ。フロントエンドをスケーリングするのも手軽で、キャッシュさせるには最適だ。 だが、一つだけ大きな問題がある。それはデーモンを停止するとデータが消失してしまうこと。消えて困るような用途には使うな、と言えばそれまでだが、Memcachedの便利さに惚れ込んでしまった人は、これを使ってみよう。 今回紹介するオープンソース・ソフトウェアはMemcachedb、停止してもデータが消失しないMemcachedだ。 MemcachedbはMemcachedとの互換性を持つ(まだ完全ではないようだが)データベースで、バックエンドにBerkeley DBを利用している。これによりサービスを停止してもデータが消失しないようになっている。 データをセットしたり、ゲットすることは可能になっている。キーと値だ

    Memcached互換のデータベース·Memcachedb MOONGIFT
    se-mi
    se-mi 2008/02/21
    memcacedインターフェースでBerkeley DBを使う。
  • DBMによるデータベースサーバ - mixi engineer blog

    DSのスターフォックスというゲームにはまりまくりのmikioです。最近社内外で「俺ストレージサーバ」を作るのが流行っているようなので私も参戦してみました。今回はDBMのネットワーク層をほぼスクラッチで作った話をします。 Tokyo Tyrant Tokyo Tyrant(以下TT)はTokyo Cabinet(以下TC)をラップしてネットワーク越しに操作できるようにするツールです。キャビネット(内閣)を傀儡にするタイラント(僭主)ということで名付けました。ダウンロードはこちら。 TCは高性能なDBMで、マルチスレッドモデルで高い並列性を実現していますが、逆にマルチプロセスモデルだとファイルロックがかかるので並列性が低くなってしまいます。つまり、書き込みモードでデータベースにアクセスしているプロセスがいると、その間は他のプロセスがデータベースに接続しようとするとブロックされることになります。

    DBMによるデータベースサーバ - mixi engineer blog
    se-mi
    se-mi 2008/01/26
    mikioさん参戦
  • [flared][memcached][C++][Boost] CentOS 4.5 に flared インストールめも (0.9.0 版) - koziyの日記

    最近 C++ と Boost をいじってるなぁーと思ったらでてまいりました。 http://diary.eth.jp/?date=20071211#p02 http://sourceforge.net/projects/flared/ というわけで、さっそくインストールでもしてみようかと svn co https://flared.svn.sourceforge.net/svnroot/flared flared でバチコーンと checkout して trunk もしくは tags/flared-0.9.0 の下に移動して、コンパイル...の前にソースをざっくり眺めて「ほぉー」とか「へぇー」とか周りに聞こえない程度に声にしてみて、さっそく configure & make でもしてみます。 ちなみに、あのお方は Debian をこよなく愛していらっしゃると思われますので、ここはあえて C

    se-mi
    se-mi 2008/01/25
    flaredをCentに入れる
  • Flared ドキュメント - GREE Labs

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    Flared ドキュメント - GREE Labs
    se-mi
    se-mi 2007/12/12
    Flaredのドキュメント
  • GREE Engineering

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    GREE Engineering
    se-mi
    se-mi 2007/12/11
    藤本さん作の”Yet Another Memcached”、PHPカンファレンスで「memcachedにはいろいろ不満が」みたいな事を言ってたので注目したい。/FailOverすごい。
  • repcached 1.0リリースの補足とちょっとしたHowTo : DSAS開発者の部屋

    前のエントリでrepcached 1.0のリリースをお知らせしました。 開発の動機はプロジェクトページにちょっと書いたのですが、たいせつなことをひとつ書き忘れていました。 repcachedを開発しようと思い立ったのは、ひとことでいうと「キャッシュサーバといっても止まらないようにしたい」、別ないい方をすると「サーバ管理者だって夜はぐっすり眠りたい」というものでした。 そしてふたりのエンジニアが自ら社内向けに企画・提案してrepcachedの設計・開発にとりかかり、プロダクション環境で使えるようなレベルのものができあがりました。 これがrepcachedを開発した動機です。 さて、昨日はrepcachedをみなさんに向けて公開しました。 いうまでもなく、repcachedを社内に閉じて外部には公開せずに使い続けるという選択肢もありました。 でもわたしたちはそうしませんでした。 わたしたちはい

    repcached 1.0リリースの補足とちょっとしたHowTo : DSAS開発者の部屋
    se-mi
    se-mi 2007/11/15
    「give and takeでいえば、takeしてばかりではないか?」という心意気を買いたい。
  • Repcached

    repcachedについて repcachedとは、memcachedにデータのレプリケーション機能を追加実装したものです。 memcachedは、以下のようなところによく使われると思います。 一時的なデータの保存場所として キャッシュを保存する場所として RDBMSのデータのキャッシュ 生成したページデータのキャッシュ いずれの場合も消えていいデータなので、万が一memcachedがダウンしても問題はないはずです。 しかし、影響が全くないわけではありません。 例えば、MySQLのデータをmemcachedでキャッシュしている場合、memcachedがダウンしている間は直接MySQLにアクセスがいくことになりDBサーバの負荷が上がります。また、memcachedを再起動してキャッシュが失われた場合は、再びキャッシュが溜まるまではDBサーバに負荷がかかることになってしまいます。 このように

    se-mi
    se-mi 2007/11/14
    これはすごい