Webサイト構築で面白いのは、つい先日までどう見ても小規模なユーザーベースで動作していたサイトが、瞬く間に数万人、数十万人のユーザーを抱えることになったりする*ことです。また、最初は小規模だったアプリケーションが、少しずつ改善していくうちに、大規模なアプリケーション*になることがあります。本稿では、徐々に大きくなるWebアプリケーションをスケーラブ...
『 エラー処理を構造化例外じゃなくて、イベントで扱うのが面白いね 』
英語の“log”は「運行記録」などの意味があり、情報システム管理におけるログは、さまざまなハードウェアやソフトウェアの「運行記録」を刻々と記録したデータである。システム管理者にとって、ログは複雑な存在だ。あるときはトラブルシュートの主役としてピンチを救ってくれる頼もしい相棒だが、日々作成されるログはさながら悪夢をもたらす洪水であり、作成され...
『 Falcon。InnoDBとの違いは、ReadUncommittedの非サポート、データファイルへの非同期I/O、auto_incrementの採番方法、ロストアップデートの自動検出とか。他にもInnoDBの実装よりも改善されていてよさげ。 』
データベースを操作するための言語であるSQLを別の用途に使おうとする理由は、SQLが宣言的な記述が可能な言語の中で最も普及していると思われるからです(宣言的言語と言えばPrologを思い浮かべる方も多いかもしれませんが、残念なことにPrologは、SQLほどには普及していません)。 まず、宣言的な記述について説明しましょう。タクシーに乗ることを想像してください。「...
ここ3日間ぐらい超絶な重さだったのはサーバに物理的トラブルが発生したからではなく、単純に閲覧者数が満員御礼となり、各時間で倍増したためです。Load Avarageはひどいときで15分間の平均値「27.1」程度。瞬間最大風速だともっと高いです……明らかにまずい。 というわけで、Apacheのデフォルト設定で今までは大丈夫だったのですが、ついに高負荷サイト用の設定に変更せざ...
Webアプリケーションのスケーラビリティの分野で話題となることが多いmemcachedについて,基本から内部構造まで紹介します。 Box2DでActionScript物理プログラミング Box2Dという物理エンジンを使ったActionScript3プログラミングについて解説します。Flashのデモやサンプルを通して理解していきましょう。 良いコ-ドへの道―普通のプログラマのためのステップアップガイド この連載は「...
」では、サンプルコードにより簡単なパラレルクエリを体験していただきました。これを以下の流れに沿って、簡単におさらいしていきます。 1.あらかじめデータを細切れにする 2.処理を分割 3.手分けして同時に処理' 4.結果をまとめる 「1.あらかじめデータを細切れにする」は、サンプルのデータベースを作る段階で行っています。 サンプルでは、test0というテーブルをtest1...
『 「SQLインジェクションとクロスサイトスクリプティングの合わせ技みたい」うーん…。 』
Webアプリケーションの脆弱性のほとんどは、開発時のささいなミスから生じる。Webアプリケーションの攻撃から保護するには、専門家によるペネトレーションテストが有効だ。 最近、Webアプリケーションに存在するセキュリティホールが注目を浴びている。Webサーバのセキュリティ対策というと、一般にファイアウォール、IDS(不正侵入検知システム)、ウイルス対策などがよく...
春は出会いと別れの季節。入学や就職で、新しい生活を始める人も多いだろう。それを機にPC環境もそろそろ大人への階段を上ってもいいかもしれない。ここでは、はてなという企業でプログラマーとして働くあの人の開発環境を紹介することで、プロが好む作業環境を考える。 2007年03月07日 08時00分 更新 この連載のバックナンバーは以下の通りです。併せてお楽しみください。 ...
Perlで書かれており、RRD Toolと連携して、サーバに関するあらゆる情報をグラフ化し、HTMLを作ってくれます。MRTGよりも圧倒的にインストールも設定も簡単。グラフ化する対象はプラグインで簡単に拡張可能。 グラフ化できるのは、初期状態でディスク使用量・MySQL・IOstat・トラフィック・プロセス数・VMstat・CPU温度・CPU使用率・ロードアベレージ・メモリ使用率・スワップ・Netstat...
『 松信さんのレポート/【memcachedのメモリ搭載量…15TB】【MySQLサーバのメモリ搭載量…25TB】【Webサーバ台数…1万台】【memcachedサーバ台数…805台】【MySQLサーバ台数…1,800台(マスター/スレーブ各900台ずつ)】 』
あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いま...
スパム対策で、トラックバックはデフォルトで非公開とし、編集部チェックを通した上で公開させて頂いております。重複した登録などにご注意ください。主な判断基準は、「当該記事へ有効なリンクが張られている」「内容に関連性がある」の2点を満たしていることです。 Trackback (0) 記事は編集作業を経て公開されていますが、あくまで情報提供を第一の目的としたものであり...
2008年3月に入ってから,SQLインジェクション攻撃によるWeb改ざんが相次いでいる。例えば,セキュリティ対策ベンダーのトレンドマイクロは3月12日,同社のウイルス情報ページが改ざんされ,午前11時30分に同ページを閉鎖したことを発表した。実際にウイルス情報ページが改ざんされたのは3月9日の午後9時頃。同社はぜい弱性対策を施した後,13日午前8時30分からページ公開を...
user = User.create(:name => 'master', :birthday => Date.new(1976,6,1)) user.blogs << Blog.new(:title => 'ariel area', :url => 'http://dev.ariel-networks.com') user.blogs << Blog.new(:title => 'mixi nikki', :url => 'http://mix.jp/secret') user.blogs << Blog.new(:title => 'facebook', :url => 'http://www.facebook.com') Blog.find(:all).each do |blog| p blog.title p blog.user.name end N+1問題(2) 前ページのコードをコマンドラインで実行した時の出...
昨日、開催された DeNA テクノロジーセミナーへ行ってきました。当初の予想を大きく上まわる応募があったようで、 会場にはたくさんの人たちがきていました。 DeNA へ行く途中ですこし迷ってしまって、15 分ほど遅れてしまい、一番興味のあった MySQL の話をあまり聞くことができませんでした。今回の資料が公開されるといいのですが・・・。 以下、メモとして書いておきます...
Livedoor の Fastladder がオープンソースになったということで、勉強を兼ねて ER 図を描いてみました。 (クリックで大きくなります) 使ったツールは DBDesigner 4 (日本語版) です。 DBDesigner 4 では、SQLite 3.x のデータが読めないようなので、SQLite ODBC Driver を使って、ODBC で読み込み、リバースエンジニアリングしました。 テーブルの定義はソー...
ここのところ、いくつかのSQL Injectionツールについて調べていました。今日はその結果を日記に書いてみようと思います。はじめにSQL InjectionツールとはSQL Injection脆弱性の発見と、発見した脆弱性を突いてのDB内情報の取得を行なうためのツールです。ただし、多くのツールでは「脆弱性の発見」はおまけで、後者のDB内情報の取得に主眼を置いています。一般的には、汎用のWeb脆弱...