【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

TheTrueStoryOfBlobs - 本当にあった BLOB の話

目次

本当にあった BLOB の話

この文書について

本当にあった BLOB の話

Ivan Prenosil さんの協力もあり、 これまで断片的にしか知らなかったことの情報が集りました。 オリジナルの書式を再現してみようと思います。 Ann Harrison や Jim Starley が誰だか知らない人は、 Interbase の歴史 を 読むと良いでしょう。


 Date: Wed, 22 Jan 1997 17:22:26 -0500
 >From: James Starkey <jas%harbor.com>
 Subject: Re: 画像 Blob ファイルのサイズについて

 At 11:48 AM 1/22/97 -0500, Ann Harrison wrote:
 >[snip]
 >>Interbase は BLOb を別々のページに保存し、
 >>親レコードには BLOb のハンドルだけがあります。
 >>したがって BLOb のストレージは保存した画像と同じサイズにはなりません。
 >> ただ 10:1 のサイズ比は単純に説明できる範囲を超えていますが...
 >[snip]
 
 BLOb の話題を終える前に, いくつかはっきりしておきたいことがあります。
 "BLOb" という表記はひどい! あと "Interbase" は会社名で "InterBase" が商品名です。
 (それか他に良い区別があったっけ? 私はよくわかってない。) 嫌になる。
 "BLOb" か "BLoB" か "BlOB" か知らないがもうほんとにうんざり。
 qあwせdrftgyふじこlp !
 
 ここでトリビアを。Blob には何の意味もありません。
 "basic large object" や "binary large object" の略ではないのです。
 blob は シンシナティやらクリーブランドやなにかを飲み込んだ物体です。
 
 blob を生み出すまに至る事象の正確な連鎖はこうです:
 
 1. Barry Rubinson ... DEC 時代の私の上司です... が, 
 「blob, blob, blob が欲しい」とつぶやきながらうろついていました。
 私は blob とは何か尋ねたのですが、それを考えるのは私の仕事だと彼は言うのです。
 アーキテクトは君なのだからと。
 
 2. マサチューセッツ(私が住んでいた)の吹雪でコロラドスプリング(Barry が住んでいた)
 に閉じこめれ、しかもトランザクション一貫性に関する統一理論の導出に行き詰まったため、
 私はかわりに blob を発明しました。この奇妙な名前があらわすコンセプトを思いついたのです!
 
 3. Rdb/VMS の人達は、私の崇高な発明、 blob に宣戦布告をしました。
 まず、彼らが言うには、blob 機能がないからといって売り上げには響かない。
 第二に、文書や画像はデータベースの領分ではない。シーケンシャルなファイルは
 そのためにあるのだ。第三に、文書を保存しようと思ったら、正しい方法は行を正規化することだ。
 (いや、嘘じゃないって。 Ann に訊くといい。彼女はまず嘘をつかないから。)
 最後に、"blob" という言葉はプロっぽくない。
 
 4. DSRI (DEC Standard Relation Interface) のプロセスのルールを仕切るために
 隠居の用心棒が雇われました。blob は DSRI に含まれていましたが、
 クリーブランド訛り(やら何か)を避けるために "セグメント・ストリング" と
 改名されました。
 
 5. 時は流れ、 Apollo 社のマーケティング人である Terry Mckiever が
 blob のコンセプトと恋に落ちました。しかし blob は略語であるべきとも感じました。
 彼女はまず "basic large object" と呼ぶことにしました。
 Apollo 社はその製品を自社ブランドで売ることはなかったので、
 名前をつけても意味がないはずでした。ところが不幸なことに、彼女の情熱的な語りは
 Informix (だったと思います) の目にとまり、Informix は
 将来のある時点で "binary large object" をサポートするだろうとのアナウンスに至りました。
 被害は決定的なものとなりました。
 
 6. 誰かが DEC のプロダクト・マネージャに Rdb/VMS は blob をサポートするのか、
 するならいつかと尋ねました。"将来のある時点" と答えるのが "製品の規約" でした。
 (当時の DEC, 現在の Oracle では、
 いまだに開発グループがその機能を blob としてに認知しています。)
 
 7. Ashton Tate が Interbase を買収し、 Borland が Ashton Tate を買収しました。
 ぼけなすな Borland 風書体はつつましい blob を "BLOb" と書いたのでした。
 Jim は言葉を失いました。
 
 私は忌しい "BLOb" を含むメールには一切返信しません。
 このメールに返信をするときは、まずそのくそったれを削除してください。
 
 以上です。
 
 Jim Starkey


 Date: Fri, 10 Oct 1997 10:06:24 -0400
 >From: Ann Harrison <harrison@harbor.com>
 Subject: RE: Blob の歴史

 At 09:47 PM 10/9/97 -0700, Jeff Davidson wrote:
 >At 14:58 10/09/97 -0400, you wrote:
 >> blob という用語は、Jim が主張したように、何の略語でもありません。
 > Binary Large OBject ではないんですか?
 
 違います。あれはマーケティング用の反略語で、blob がプロらしくないと感じた
 誰かが考えだしたものです。DEC では同じものを "セグメント化ストリング" と
 呼んでいました。理由は同じです。それから数年後のある会議で、
 別のマーケティング人が DEC では blob をサポートする予定はないのかと聞かれ、
 「次のリリースかその次でサポートします。」と答えていました。
 幸い、誰かがやんわり手短に、自分達はそれをサポートしているがその名前は避けたのだと
 いいました。
 
 こうして今日マーケティングへの批判があるのです。
 
 Ann


 Date: Thu, 9 Oct 1997 14:58:47 -0400
 >From: Ann Harrison <harrison%harbor.com>
 Subject: RE: 圧縮ビットマップ

 At 08:11 PM 10/7/97 -0400, Leyne, Sean wrote:
 > blob を使う時の SELECT 分の性能低下について地元の Delphi/Inerbase 
 > ミーティングで話を聞いたのですが、少し混乱しています。
 > 索引を使わない条件での処理は、実際に一致した行をアプリケーションに返す際、
 > SELECT 処理が Blob の中味を(レコード/行読み込みの一部として)「ロード」するのだと
 > 言う人がいました。SELECT 行 FROM 表 という時です。
 > (ただしこれは Delphi のワークショップで、私達はすごい/ひどい BDE を使っていました。)
 
 Delphi や BDE が何をしてくれるのか私はわかりませんが、
 blob の意図はメモリに収まらないほど大きな非構造データをデータベースに
 保存することです。メモリが高価な時代にできたものですが、
 今日も 2 ギガのバッファをうりゃーと確保できるわけではありません。
 Blob はセグメントごとの読み出しをすべく設計されました。
 
 歴史をすこし。Blob は Jim Starkey が DEC で発明し、まず Rdb という製品に
 実装されました。Jim が InterBase を設計した際、彼は賢明にも同じ仕組みを実装しました: 
 レコードに blob-id を保存します。id はすぐに読んでもいいし、キャッシュして後から
 読むこともできます。(同じトランザクション中なら。)
 blob を開くと blob ハンドルが作られます。それはあるデータ構造へのポインタで、
 そのデータ構造は blob 内のオフセットを持っています。ハンドルがあれば
 プログラムの求めるサイズのデータだけを読み出すことができます。
 (セグメントのサイズは外から与えられます。blob 組込みではありません。)
 
 blob という用語は、Jim が主張したように、何の略語でもありません。
 彼がいうには、1958 年の Steve McQueen の映画 からとったそうです。
 私はずっと彼の上司がいいだした事だと思っていましたが、Jim の名誉のためにいうなら、
 彼がそう考えていたなら思ったことを言うでしょう。
 
 ユーザが開いていない blob を InterBase が読む唯一の場面は、
 blob が検索条件(いわゆる WHERE 句) にあらわれた時です。
 この場合であっても、 blob は走査されるだけでバッファには読みこまれません。
 
 以上、よろしくおねがいします。