タグ

dbに関するinspiのブックマーク (6)

  • データベースの動的デフラグ - mixi engineer blog

    ノートPCの冷却ファンがうるさいのを対処しようとしてWebで調べたら、そのファンの設計者が「静音性へのこだわり」を語ったページにたどり着いて複雑な心境のmikioです。今回は、Tokyo Cabinet(TC)の最新バージョンで実装された動的デフラグ機能について長々と説明します。 断片化とデフラグ 任意のサイズのデータを管理する記憶装置においては、利用可能領域の断片化(fragmentation)の問題が常につきまといます。ファイルシステム上で任意のサイズのファイルを管理する際にも、データベースファイル内で任意のサイズのレコードを管理する際にも、C言語のmalloc/free関数群でメモリの管理をする際にも、様々なレイヤで断片化が起きうるのです。なぜなら、データを削除もしくは移動した際の空き領域を再利用するにあたって、その領域と同じサイズのデータが常に入ってくるとは限らないからです。特にデ

    データベースの動的デフラグ - mixi engineer blog
  • 大規模SNS実現のためのGREEのアプローチ

    ここまでに挙げた手法は、比較的低コストで十分な効果を得ることができますが、リニアにデータが増大していくようなテーブルが存在する場合には、当然ながらある時点でスケーラビリティが失われてしまいます。 そういった場合、例えばblogテーブルがどうしようもなく肥大化していった場合には、テーブル自体を分割していくことになります(図2)。テーブルを分割する際には分割キーと分割メソッドという2点について考える必要があります。 分割キー 分割キーは、単純に「テーブルを何で分割するか?」ということです。例えばブログのエントリを格納しているテーブルでは、ユーザーIDをキーにするか、ブログのエントリIDをキーにするか、という2つの選択肢が考えられます(実際、ブログではユーザーIDで分割していくのが一般的なようです。つまり、同じスキーマを持つテーブルAにはユーザーIDが1~10000のデータが、テーブルBにはユー

    大規模SNS実現のためのGREEのアプローチ
    inspi
    inspi 2008/10/24
  • 大規模SNSのボトルネックとソリューション

    イベントキュー処理システム イベントキュー処理システムは、Webサーバとは別のサーバで動作し、随時次のような処理を行っています。 イベントキューを監視する キューにデータが存在していたら、operationフィールドの値に従って適切なイベントキューハンドラを呼び出す イベントキューハンドラがそれぞれ処理を行う また、実際にGREEで動作しているコードは、 イベントキュープロセッサにイベントリスナーオブジェクトを追加(リスト4) イベントキューを引数としてイベントキュープロセッサを実行(リスト5) となっています。 $qp = &new QueueProcessor(); // 友達の新着blog用イベントリスナーオブジェクト $lsnr = &new Blog_ActionEventListener_RecentFriendEntry($log, $rm, $num_recent_entr

    大規模SNSのボトルネックとソリューション
    inspi
    inspi 2008/10/24
  • 大規模SNSのボトルネックとソリューション

    SNSは比較的データアクセスが多いアプリケーションであり、負荷対策が難しい部類に入る。稿では、グリーCTOの藤真樹氏が、GREEというSNSでの経験を基に、SNSの具体的な負荷軽減ソリューションを紹介する。 はじめに 昨今では、地方自治体や企業内でもSNSを導入する動きが活発化しているようです。しかし、SNSは比較的データアクセスが多いアプリケーションであり、負荷対策が難しい部類に入ります。そこで稿では、前回お届けした「大規模SNS実現のためのGREEのアプローチ」の内容からもう一歩踏み込んで、GREEというSNSでの経験を基に、SNSの具体的な負荷軽減ソリューションを紹介します。 SNSのボトルネック 一定以上のユーザー数、データ量、そして機能を持つSNSでは、普通に構築していくと非常に悩ましいボトルネックが2つ顕在化してきます。1つは、「友達の新着」系の情報取得です。もう1つはア

    大規模SNSのボトルネックとソリューション
  • mixi Engineers’ Blog » Introducing the Drizzle Project

    ここしばらく、水面下でBrian Akerを代表とするMySQL/SUNのエンジニアたちや、業界のオープンソースハッカーたちとMySQLをスリムダウンさせたマイクロカーネルRDBMSを開発していたのですが、日アナウンスされたので、日語でご紹介させていただきたいと思います。 Drizzleとは? Drizzleとは必要のないものは一切存在しない、最低限でパフォーマンス重視な「MySQLよりシンプルで、軽く、安定して、高速な」 MySQLのforkです。マイクロカーネルアーキテクチャを採用したので、必要のないものは後付けできる構成です。こういった目標もあり、現在、Drizzleの開発チームはMySQLをドラスティックにリファクタリングしています。 コミュニティベースのプロジェクト Drizzleで大事な事は、Drizzleはコミュニティベースのプロジェクトであるという事です。Montyのブ

    mixi Engineers’ Blog » Introducing the Drizzle Project
  • MOONGIFT: MySQLのビジュアルデザイナー「MySQL Workbench」:オープンソースを毎日紹介

    Railsでは、データベースの設定をMigrationファイルに書いていって、即反映させながら開発を重ねていく。そのため、幾人かで開発を行っていると、徐々にデータベース構造が複雑化し、最適化されていない構造になってしまう。これはRailsに限らず、システム開発では常に生じるものだろう。 メイン画面 初期の頃からすべてを想定して作り上げていくことは難しいが、あるタイミングで正規化していく必要が生じるだろう。その時に役立つのがこのソフトウェアだ。 今回紹介するオープンソース・ソフトウェアはMySQL Workbench、MySQLのデータベースデザイナーだ。 MySQL Workbenchはあるデータベースに関してテーブル、ビュー、ルーチン、SQLスクリプト等をビジュアル的に設計できる。ダイアグラムも作成でき、既に作成されているテーブルやビュー等をドラッグアンドドロップで配置し、そこに線を引い

    MOONGIFT: MySQLのビジュアルデザイナー「MySQL Workbench」:オープンソースを毎日紹介
  • 1