制作記……MovableType再構築を高速化するSSIの導入・(1)前提

2006年12月30日 20:00

今月一か月ほどの間、【一言掲示板】などでもちょくちょく触れていたように、ガベージグループのサイトが抱えていた問題の解決のために東奔西走(といってもネット内でのみだが)を繰り返していた。いくつか模索していた手法のうちの一つが成功裏に終わり、先日ようやく問題の解決を果たすことができたので、手法の保全も兼ねてここにまとめてみることにする。具体的な手法は「共通パーツのSSI出力によるテンプレートの軽量化・再構築高速化」だ。

スポンサードリンク

抱えていた問題とはずばり「再構築に時間がかかりすぎる」ということ。MovaleTypeはブログシステムの中でも、記事を作りなおす「再構築」に時間がかかりすぎることで知られている。

まずは「再構築」「ブログシステム」などについて概略的に説明しよう。

ブログシステムによるブログ形成と一般のホームページ作成の概念的な違い。
ブログシステムによるブログ形成と一般のホームページ作成の概念的な違い。

一般のウェブサイト(ホームページ)が直接HTMLと呼ばれる命令集合式(言語)で表示方法などを指定してページを作るのに対し、ブログシステムではテキストをデータとして放り込むだけでよい。あとはブログシステム側が、あらかじめ設定されているテンプレートに従ってテキストデータを流し込んでページを作っていく。

例えるのなら、ブログシステムはクッキー作成の際の型抜き用の「型」のようなもの。チョコだろうがアーモンド入りだろうがバターだろうが、クッキー用に練り上げたホットケーキミックス(テキストデータ)を用意すれば、型(テンプレート)を用いて同じ形にきれいにくりぬいてくれる。「型」がハート型だったり動物の形をしていれば、同じバタークッキー(テキスト)でも、ハート型になったり猫の形のクッキーが出来上がる。

ブログが一般のホームページ作成と比べて簡単でここまで広まったのは、データ部分のテキストを入力するだけで、つまりワープロを打つ感覚でサイトが作れるからだ。なお、データとテンプレートを元にページを作りなおすことを「再構築」と呼ぶ。

当ガベージグループサイトでの問題は、この「再構築」に時間がかかりすぎていたことにある。主力の【Garbagenews.com】ではすでに4000エントリー(4000件)を超えた記事数で構成されており、これをすべて再構築するとなるとゆうに半日はかかるという馬鹿げた話が現実問題として存在していた。

しかも途中でトラックバックを打たれたりすると、サーバー側の処理が間に合わなくなってエラーが出て止まってしまう。寝る前に再構築をかけはじめて起きてみたらエラーが出て処理が済んでおらず腰砕けになったことも一度や二度ではない。

これではそう遠くないうちにシステム構築そのものが破綻してしまう。危機感のみが募っていた。

サーバー管理会社などに問い合わせたり検索エンジンで各種調査を行ったところ、「再構築」の高速化のために出来ることとして次のような方法が検討対象に挙がった。

1)エントリーの削除
2)テンプレートの軽量化
3)データベース(DB)の変更
4)処理端末(サーバー)の高性能化
5)ダイナミック・パブリッシングの導入


1)は論外。2)はすでに出来る範囲までやりつくしたが、これ以上は「単なるテキストページ」になってしまう。3)は【Ogawa::Memorandaさんのmt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト】で、現在のBerkeleyDBからSQLiteへの移行を試したが、自分が扱っているサーバーではSQLiteを用いるとエントリー数が多い場合、かえって処理が遅くなるという現象が起きるようで結局保留。4)は元々レンタルサーバーなのだからかなうはずもなし。

5)はPHPという言語を用いて読者がページを読み込もうとするたびにデータベースからテンプレートに従ってページを作り出していくという、いわば「動的なページ生成」を行うシステム。一時はこの選択肢も考えたのだが、「静的なページ(スタティックなHTMLページ)によるサイト構築」にこだわりがあり、どうしてもこれを捨てることができないので残念ながら不採用。

「似たようなシステム、というかMovableTypeの簡易版を用いている【ココログ】ではあんなにさくさくと再構築できるのに……。ダイナミック・パブリッシングを使っているようにも見られないのにな」という疑問を抱きつつ、どうにかならないのかと悩む日々を過ごしていた。


■一連の記事:
【制作記……再構築を高速化するSSIの導入・(1)前提】
【制作記……再構築を高速化するSSIの導入・(2)解決案の発見】
【制作記……再構築を高速化するSSIの導入・(3)実際に導入する】
【制作記……再構築を高速化するSSIの導入・(4)導入の成果・最大11倍の高速化】

Related Posts Plugin for WordPress, Blogger...

スポンサードリンク



 


 
(C)JGNN||このサイトについて|サイトマップ|お問い合わせ