ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2010-03-30

第102回カーネル読書会 at 楽天のプレゼン資料公開しました。 #kernel100329

昨日、Yokohama Linux Users Group(吉岡さん主催)の第102回カーネル読書会において発表を行ったので、その時の資料を公開した。

2010-03-26

ジョナサン・シュワルツの発言から考察するソフトウェア特許の有害性

少し古い話だが、元SunのCEOであるジョナサン・シュワルツ氏が自身のブログ「スティーブ・ジョブズに訴えると脅された」と語った。これは先日、AppleがHTCを提訴したことを受けて語った内容であるが、その辺のいきさつについてはZDNetの記事ITMediaの記事シュワルツ氏のブログエントリなどを見て頂きたい。(ZDNetの記事がよくまとまっている。)

2010-03-23

Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン

Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。

しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。MySQLをバックエンドのストレージに利用し、なおかつmemcachedにホットなデータをキャッシュすることにより、データベースへの問い合わせを激減させることができるのである。

1:Nのレプリケーションでは、更新の負荷を分散することが出来ない。Webサイトの規模が大きくなると、更新の負荷も非常に高くなる。そこで次に用いられたのがShardingという技術である。Shardingとは、MySQLサーバーを複数用意し、アプリケーション側でデータを格納するべきサーバーを選択することである。

以上をまとめると、現在多くのWebサイトでは次のようなトポロジによって大規模なトラフィックを捌いている。
  • レプリケーションによるスケールアウト
  • memcachedによるデータベースへの問い合わせ抑制。
  • Shardingによる更新の分散。
かくして、MySQL+memcachedという組み合わせは大規模Webサイトで用いられる典型的なデータストアとなったのである。

2010-03-17

たった3秒でInnoDBのデータローディングが快適になるライフハック

MySQLに限った話ではないが、データベース管理システムに大量のデータを投入するのは時間が掛かり大変苦痛を伴う作業である。劇的に効能があるわけではないが、MySQLを利用しているとき、特にInnoDBを使っている場合にはデータの投入を高速化するためにいくつかテクニックがあるので紹介しよう。皆さんの作業時間が短縮され、少しでも早く帰路に着いたりサービスインさせたりという形でお役に立てれば幸いである。ちなみに、タイトルはネタであるのだが、もし本当に3秒で以下の全ての設定を行えた人が居たら教えて頂きたい!

2010-03-10

InnoDB Pluginことはじめ。快適ストレージエンジン生活はじまる!

MySQL 5.1.38からMySQL本体にInnoDB Pluginバンドルされている。一部の先駆的なユーザー以外に、「InnoDB使ってますよ!」もしくは「検証してるよ!」という話をあまり聞かない。そもそもであるが、InnoDB Pluginってなんぞ?!という人が多いんではないかと思うのだが、実際はどうなのだろう?現在はRC版(リリース候補版)という位置づけのInnoDB Pluginであるが、一部影響度の高いバグが残っていたりしてGA版ほどの安定性は求められないものの、ほとんど実用に耐えうる品質になっているといえる。そんなわけで、今日は改めてInnoDB Pluginの使い方・使いどころについて説明するので、ぜひ皆さんの手でInnoDB Pluginを評価してみて頂きたい。

2010-03-09

InnoDBでCOUNT()を扱う際の注意事項あれこれ。

InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。

2010-03-04

漢のソフトウェア特許廃止論

最近は長いエントリしか書いてないので投稿の回数が減り気味なのだが、性懲りもなく今回も長文をぶちかますので皆さん時間があるときに読んでくださると幸いである。

コンピュータ産業において最も良くないものは何か?と聞かれると、俺は間違いなく「ソフトウェア特許こそ諸悪の根源であり、癌である!」と答えるだろう。コンピュータ産業はソフトウェア特許という癌に冒され、日々むしばまれ、やがて終焉に向かおうとしているように見える。一般的に、特許と言うと「産業を振興するとても良いもの」のように考える人も多いだろうが、そうではない。今ではあらゆる産業にとっての足かせにしかなっていないのだ!!

今日は、特にソフトウェア産業の領域に絞って、特許が如何に危険で人々のためにならないかを説明しようと思う。

2010-02-25

経済産業省アイデアボックスを使おう!今すぐ!なう。

ニュース記事などで既にご存じの方も多いだろうが、経済産業省が国民の声に耳を傾けるための仕組み「アイデアボックス」が開催されている。アイデアボックスは、仕組み自体はモデレーションつきの掲示板みたいなもので(スラドに近い?)、登録すれば誰でも意見を述べたり、他人の意見に賛成or反対したり出来る。言わば現代版目安箱だと言って良いだろう。

2010-02-22

ウェブガイア仮説 〜 コンピュータと生物の不思議な類似点 〜

Publickeyに「サーバは「単体」から「群体」へと進化中」という記事があったので、それに刺激されて筆をとってみた。本稿は、以前書いた「コンピュータ業界の展望と多様性」というエントリの続きである。今回は、コンピュータシステムの形態(トポロジ)とトレンド、そして今後の展望について、生物とコンピュータシステムの類似性および両者の比較を用いて様々な側面から自分の見解を論じてみたい。かなりの長文エントリなのでその点はご容赦を。

2010-02-10

漢のNexus One徹底レビュー

Nexus Oneを手にしてから3週間が過ぎた。Nexus OneはGoogleおよそ一ヶ月前に発表&発売開始した「スーパーフォン」だ。流石にスーパーフォンというだけあって、これまでの携帯電話とは隔世の感がある素晴らしい使い勝手になっている。一ヶ月の販売台数は8万台と振るわなかったが、あのリーナス・トーバルズ氏も絶賛している。(だから売れないんだよ!って言ったそこのアナタ!!ちょっとこっちへ来なさい。)レビュー記事などは数多く見かけるのだが、本ブログでも所感や設定方法などをまとめておこうと思う。

まずはスペックなどから。

  • CPU: Qualcomm Snapdragon 1GHz
  • ディスプレイ: 3.7インチ有機EL 800x480
  • RAM: 512MB
  • 内蔵FLASH: 512MB
  • カメラ: 500万画素
  • ネットワーク: 3G/GSM/Wi-Fi/Bluetooth
  • サイズ・重量: 59.8×119×11.5mm 130g
  • その他: micro-SDで32GBまで拡張可能。(ただし現在販売されているmicro-SDは16GBが最大。)バッテリ交換可能。アクティブノイズキャンセル機能つき。