タグ

dbとarchitectureに関するyokochieのブックマーク (3)

  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
  • Twitter、分散フレームワーク「Gizzard」を公開 | gihyo.jp

    2010年4月6日、Twitterは独自に開発した分散フレームワーク「Gizzard」をGitHubにオープンソースとして公開しました。Gizzardは「シャーディング」と呼ばれる、1台に格納するとパフォーマンスに影響を及ぼす大容量なデータベースを複数台に分割することで解決を図る手法をサポートするフレームワークです(図1⁠)⁠。TwitterのバックエンドにScalaが使われていることが以前話題となりましたが、このGizzardもScalaで書かれています。 図1 Gizzardのシステム構成モデル 出典:http://github.com/twitter/gizzard Gizzardはミドルウェアとして動作し、RailsPHPなどで動くWebフロントエンドからのリクエストを受け取り、My-SQLやRedisのようなインメモリDB、Luceneなど各種データストアへ渡します。Twitt

    Twitter、分散フレームワーク「Gizzard」を公開 | gihyo.jp
  • プラグインで独自ストレージを作ろう - mixi engineer blog

    OpenSocialとかC++0xとか世の中の流れが早すぎて、いろいろと勉強しなきゃなと焦りつつも、ついついピクミン2にはまってしまうmikioです。今回はTokyo Tyrant(TT)を使ってユーザ独自のストレージシステムを簡単に構築する方法について説明します。 プラグインとは オブジェクト指向プログラミングに慣れた人にとっては、インターフェイスと実装を分離することによってプログラムの拡張性や保守性を向上させる技法(データ抽象)は常識ですよね。その考えをさらに進めると、インターフェイスのみをプログラムに記述しておいて、具体的な実装は実行時に割り当てるという、いわゆるプラグイン(plug-in)という技法に至ります。プラグインでカスタマイズできる能力をプラガブル(pluggable)などと言ったりもします。 例えばTokyo Cabinet(TC)では、レコードの挿入、削除、参照といった

    プラグインで独自ストレージを作ろう - mixi engineer blog
  • 1