前回に続いて妄想キャスティングである。レズ声優スレの常連でありながら選に漏れた声優の選考理由について。
松来未祐:
背の低い総受けには、とりあえずこの人だろう。この話には出てこないタイプだ。
植田佳奈:
入れるとしたら美園だが、老けた雰囲気が出せるかどうかわからない。
中原麻衣・清水愛:
清水の陸子に中原のひかるでもいいような気がしてきた。清水の衝撃力に疑問は残るものの、中原との連携がいいので補えるだろう。
伊藤静:
こやまの陸子と伊藤のひかるだと、もろにレミコトにかぶるので避けてみた。かぶせたいかたはご自由にご妄想ください。
堀江由衣:
卑怯未練な受けに使いたい才能だが、あいにくこの話にはそういう登場人物がいない。卑怯未練な受けは、BLではおいしいポジションだが、百合ではあまり出番がない。
渡辺明乃:
けなげな受けに使いたい才能だが以下同文。
ついでに、「なぜこの人を使わない?」という疑問が出るような人について。
広橋涼:
緋沙子のような雰囲気の役(『灰羽連盟』のラッカ、『ARIA』のアリス)が多いので、ベタに考えれば、必ず名前の挙がる人だろう。
が、緋沙子については、ベタにあてるのを避けて自由度を高くするほうがいい。陸子と美園は解釈の幅が狭いので、緋沙子までベタにあてると、主役のひかるがあまりにも動きづらくなってしまう。能登麻美子は、構想は面白いが、小器用なところがない。
3回にわたって長々と続けたが、以上が私の妄想キャスティングである。
*
私が布団を出ようとすると、陛下が絡みついてきて、また布団の中にひっぱりこまれてしまった。
「ケンカのあとにエッチすると燃えるっていうけど、ほんとだー」
こうしていると、なにもかもが夢のように思える。
それで、つかのま夢をみる。なにもかもが私を追い詰めてケンカさせるための茶番で、これから陛下は種明かしをなさるのだ、と。緋沙子はこれからも陛下のお側にいて、私もこのままで、めでたしめでたしで終わるのだ、と。
もともと陛下には芝居がかったところがあられる。慣れないうちは、陛下の感情表現はわざとらしく思えることもある。茶番という夢はさほど無理せず見られる。
けれどその夢では、あまりいい気持ちにはなれなかった。あのとき、陛下のお心の奥底に、じかに触れたと思ったのに、それも茶番になってしまう。
茶番――護衛官選考の最終面接のことを思い出す。
あのとき私は、陛下との絆を確かめたと思った。確かめたはずなのに、あとで不安になった。あれは茶番だったのではないか、と。それでもいい、陛下のお側にお仕えできるなら、と思った。
私はやっと今になって、信じている。
陛下のなさることは、まばたきひとつに至るまで、お心をそのまま映している。どんなに嘘をおっしゃり、隠し事をなさっても、みな真心からのことだ。そのことを知らなかったわけではない。けれど心のどこかで疑っていた。
もし、なにもかもが真心からのことだとしたら、私はあまりにも、息もできないほど、愛されている。
「知ってる? ひかるちゃんの背中って、ほくろが全然ないんだよ。ここに小さいのが1個あるだけ」
身体の右側、腰骨の上のあたりを、指で押される。
「存じませんでした」
「刺青とか好き? 彫りたいなー。小さいのでいいの。私とひかるちゃんの相合傘を、このへんに」
と陛下は肩甲骨のあたりを示されて、
「そしたら、ひさちゃんが見るたんびに悔しがるよ。いいなー、彫りたい」
つかのまの夢が吹き飛ばされる。
「目的がそのようなものでしたら、無用と存じます」
「ひかるちゃんもクビ」
そのお言葉には迷いも震えもなかった。
Continue
『スナフキンとポチョムキンが世界最強のキンの座をかけて戦う!』というフレーズが神から降ってきたので、ここに置いておく。
ついでながら、世界最強のリンの座は当分スターリンのままだろう。
前回にひきづつき妄想キャスティングである。
特定のキャストに慣れてしまうと、その作品とキャストが強く結びつく。『うる星やつら』や『聖闘士星矢』のキャストが総入れ替えになったら、それは別の作品だ。(後者は現実の商品でやらかしたのだからすごい話だ)
逆にいえば、キャストを総入れ替えするだけで、別の作品が聞ける。テキストと声優の組み合わせを妄想するだけで、いくらでも新しい作品が妄想できる。少しは声優のことを知らないとできないが、それさえクリアすれば愉快なお遊びだ。
現実にキャスト総入れ替えをやった実例を聞くのも楽しい。たとえば『ローゼンメイデン』はドラマCDとアニメで総入れ替えになっている。ドラマCDでは、堀江由衣の真紅に、能登麻美子の水銀燈である。機会があればぜひ聞き比べていただきたい。
というわけで今回は、レズ声優スレ常連でない外国人選手を2人投入してみる。
平石緋沙子:沢城みゆき
設楽ひかる:田村ゆかり
波多野陸子:斎藤千和
斎藤―田村―沢城。ひかるに田村をあてる、というアイディアを生かしてみた。
釘宮とこやまは役に近すぎ、田村が浮いてしまうので、上のように替える。斉藤の陸子は衝撃力を高める狙いもある。ボクシングにたとえるなら、テクニシャン田村がハードパンチャー斎藤の大振りを誘いつつ紙一重でかわす、というイメージだ。二人が両極端だから面白い。逆に、こやま―能登は五分に打ちあうから面白い。斎藤―能登やこやま―田村では面白さを引き出しきれないだろう。
同じ3人をベタに配置すると、田村―沢城―斎藤になりそうだが、これはよくない。田村の衝撃力は弱いので、陸子にあてるのは間違いだ。ここのところをわからずに田村が配置されているのを見ると悲しくなる。
こやま―能登―釘宮、斎藤―田村―沢城、それぞれどんな演技になるかを、脳内でシミュレーションしてみてほしい。
前者はたぶんかなり高い精度でシミュレートできる。が、後者は大まかな方向性しか見えない。そこがいい。聞く前から結果が見えているものよりは、出たとこ勝負のものを聞きたい。
次回は、選に漏れた声優の選考理由について。
*
視界がぶれるほどの衝撃を感じながら、私は陶酔していた。
皮膚の下よりも血管の奥よりも、さらに深いところ、陛下のお心の奥底に、じかに触れている。つながっている。
ずっとこうなりたかった。
首をつかまれて後ろに突き倒された。陛下はまた私の上に馬乗りになられた。昂ぶった手つきで私の耳たぶを握ると、私の頭を横に向かせて、畳に押しつける。
「それって、ケンカ売ってるんだよね。それとも、ぼこぼこにされたいだけ? 感じてるんでしょ?――この変態。さっさとおしっこもらしていっちゃいなさいよ」
陶酔しているのと同じくらい、私は覚めていた。緋沙子を誤解させるようなことを言わないでほしい、と覚めた意識で思う。私には、失禁するような癖も趣味もない。
「いままで誰もこんなことを陸子さまに申し上げなかったのですね。寂しくはございませんでしたか?」
「そういうひかるちゃんは、おまんこが寂しそうだよ? そんなに私の母親が気になるんなら、ひかるちゃんがなってみる? 手首までくらいしか入らないけどね」
「それで私をそのように思っていただけるなら、どうぞなさってください」
こんなときでも私は、口にする言葉を選んだ。陛下のようにありのままに言うのにはあこがれるけれど、そう急には自分は変えられない。
「なーに、もしかしていつも自分で入れてるの? 勢いだけじゃ入らないよ?」
「ですが、もし私がそのようになれたとしても、陸子さまご自身は、幼い子供にはなれないものと存じます」
*
私は横目で陛下のお顔を見ている。
表情は凍りついたように変わらない。厳しいまなざしで私を見下ろしておられる。
そのかわり、私の耳たぶをつかんでいる御手が、お心をのぞかせる。御手の温度が下がってゆく。
急に、私の目に涙があふれた。嫌だと思ったけれど、止まらなかった。なにも悲しくないのに――
ちがう。私は悲しんでいる。
陛下を傷つけてしまった。
悲しいから、身体が涙を欲しがっている。昨日の緋沙子を思い出す。ひとしきり泣いてから、安らかに息をしていた緋沙子を。私もああなるのだ。
あれはウソ泣きだと言い張った緋沙子の気持ちが、いまはわかる。涙を止めようと思えば、止められるような気がする。泣くのを自分に許しているような気がする。涙に誘惑されているような気がする。泣けば楽になるよ、と。それに、泣けば伝わるよ、と。
「……ひかるちゃん、どうして泣いてるの?」
「陸子さまを――ちゃんと――守ってあげられなくて――」
頭が回らない。言葉づかいが敬語にできない。
「ずるいよ」
涙声になりかけていた。続けて陛下は、
「ひさちゃん、外で待ってて。しばらく誰も通さないで」
「かしこまりました」
襖がすべり、閉じる音がする。
「私ね、本当に悲しくて泣いたことなんて、ないの。だって泣いたら、本当に悲しいみたいじゃない。
私は幸せになるって決めてるの。
ひかるちゃんは、私のことだけ見てくれて、ずっとそばにいてくれるって、決めてるの。
だったら、悲しいことなんて、なんにもないよ?」
「ごめんなさい」
「どうして謝るの? 変でしょ?
ひかるちゃんに、いっぱいありがとうって言いたいの。いつも言ってるけど、ぜんぜん足りないよ。
だからね、ひかるちゃんが心配することなんて、なんにもないんだよ? 昔のことなんて――」
声が涙で途切れる。
陛下は私の上からどいて、ティッシュをとり、鼻をかんで目をぬぐわれた。
「――昔のことなんて関係ない。ひかるちゃんがいるんだから」
「だったら、ひさちゃんをそばにいさせてあげて」
私はその答を知っていた。
「絶対に嫌。だって――」
あとは言葉にならなかった。私は陛下を抱きしめた。
Continue
よい質問はみなそれぞれ異なっているが、悪い質問はみなよく似ている。
悪い質問のパターンのなかでも特に有名なのが、「××にとって○○とは何か」だ。たとえば、イチローに向かって、「あなたにとって野球とは何か」と尋ねるインタビュアーはクビにすべきだ。
さて、このパターンの××と○○に入れる言葉で、一番面白い組み合わせを探してみた。この「面白い」は、意味深いものではなく、ナンセンスな味わいを狙う。
○○のほうは「リアル」が一番ではないかと思う。××がなんであれ、それなりに面白い。「双子山部屋にとってリアルとは何か」「北京にとってリアルとは何か」「顧客にとってリアルとは何か」。どれをとっても味わいがある。
××で一番面白いのは、「Web 2.0」だという結論に達した。
「Web 2.0にとってリアルとは何か」。このフレーズで、1ヶ月はたっぷり笑えるのではないかと思う。
アンナ・ラーリナ『夫ブハーリンの想い出』を読んだ。
時間はあまりにも過ぎ去ってしまったが、今でも色あせることなく感動的な事実がひとつ、残っている――ブハーリンはいい男だ。
著者はブハーリンの最後の妻である。若くして権力に輝いていたころの彼ではなく、スターリンに失脚させられたあとの40代後半のブハーリンと結婚した。わずか3年の結婚生活のあと、ブハーリンはスターリンに粛清された。男が魅力的に見えるシチュエーションでは到底ない。少女まんがやハーレクインに出てきそうな場面はまったくない。だが、ここに描かれているブハーリンの、なんといい男であることか。
著者はブハーリンよりもはるかに長生きした。この回想録も、生前のブハーリンが小僧に見えるような年になってから書かれたものだ。それが秘訣なのかもしれない。
全人類に本書を勧める。
著作権、映画以外も50年→70年に…関係団体が一致
ハァ? 死ねよこの糞虫どもが。この見出しをつけた奴も糞虫だ。「公開から数えて70年」と「作者の死から数えて70年」では比較にもならない。
少コミ第16号を読んだ。
初めてまともな付録だった。キキララとハローキティのビニール袋である。これまではずっと、いったい誰が使うのかと思うようなものばかりで、付録のぶんの金返せと言いたかった。
・くまがい杏子『はつめいプリンセス』新連載第1回
最近の少コミでは、わかりにくい設定が流行中なのだろうか。『愛を歌うより俺に溺れろ!』も、途中から読んだら設定がわかりにくくて困ったが、新連載第1回を読んでわかりにくいと感じるのはまずい。
ドラえもん級の道具をほいほいと作る発明家の少女(しずか)が主人公である。それだけならわかりやすい。だが、この第1回を読んだかぎりでは、彼氏役(はじめ)が総理大臣の息子である必然性が見つからない。第2回以降で生きてくる設定なのだろう。これのせいで設定がわかりにくくなっている。
思い出そう。少コミはジャック・ハンマーの世界だ。『次回ノ読者ニ尽クス者ガ、今回シカ認メナイ私ニカナウワケガナイ』。今回を次回のための踏み台にしてはいけない。
設定がわかりにくいと、画面のわかりにくさが倍増して感じられる。情況説明と心理描写を欲張りすぎている。説明や描写は徹底的に切り詰め、キャラの言動で伝えるべきだ。
採点:★☆☆☆☆
・青木琴美『僕の初恋をキミに捧ぐ』連載第23回
まず扉の誤植について。「22th」という英語はない。そのうえ回数が間違っている。前回が第22回だ(こちらの扉はちゃんと「22nd」と書いてある)。ついこのあいだも連載回数の間違いを見かけた。連載回数を数えるのがそんなに難しいことなのだろうか。
主人公(逞)に別れを切り出された照が発作を起こして倒れる。いったんは助かったかに見えたが、紛れのない形で死亡予告されているので、次回で死ぬのだろう。そのあいだ、主人公の本命(繭)は他の男に言い寄られている。
次回、どれくらい照の言い分を押し出せるか。そこで作品全体のよしあしが決まるだろう。
採点:★★☆☆☆
・池山田剛『萌えカレ!!~番外編~』読み切り、ただし完結した連載の番外編
主人公とその彼氏役がいちゃいちゃしている後日譚である。
ネームが実に気持ちよく流れる。実力をしみじみと感じさせる。
採点:★★★☆☆
・藍川さき『恋愛上々↑↑』新連載第1回
この作者は、このあいだはネームがあまりにもひどくて何事かと思ったが、今度は安心して読める。
二択のハーレムものである。男二人は兄弟で、奔放な弟が一歩リード(というよりはすでに確定)している。
男の魅力の出し方が、派手さはないものの、しっかりしている。次回は兄がアピる番だろうが、どうやってくるか楽しみだ。
採点:★★☆☆☆
・しがの夷織『めちゃモテ・ハニィ』連載第3回
今回やっていることを列挙すると、「主人公がバスケ部のマネージャーになる」「彼氏役の性格を描く」「彼氏役の対抗馬のポジションを見せる」と、なかなか忙しい。なおバスケ部は彼氏役の部活である。
忙しいはずなのに、ぴたりぴたりと収まる。これが構成力というものだろう。が、次回以降の展望が見えないのが気になる。
採点:★★★☆☆
・天野まろん『ケモノに→没落お嬢様』読み切り
これもまた設定がわかりにくい。
主人公に2つの属性がある。「痴漢・変態・ストーカーを強烈にひきつける体質」と、「家が破産して貧乏になったばかりのお嬢様」だ。その2つに相関関係があるということになっているらしいが、判然としない。つまり、わかりにくい。
その主人公が、いいと思える男を見つけて、自分の欲望を初めて自覚する、という話である。少コミの伝統を取り入れようとしたのかもしれないが、こなれていない。
彼氏役が今回もまた吊り目のオレ様だった。徹底的にこのタイプの男だけで押し通すつもりだろうか。
採点:★★☆☆☆
・新條まゆ『愛を歌うより俺に溺れろ!』連載第12回
前回から引き続き、主人公(水樹)と彼氏役(秋羅)がいちゃいちゃしている。
採点:★★☆☆☆
・わたなべ志穂『ご指名! ホスト教師J』連載第2回
話がダラダラしている。
採点:★☆☆☆☆
・織田綺『Lovey Dovey』連載第2回
いい男に絡まれる or つきあう→嫉妬した女に意地悪される、という展開は安易なので禁止したい今日このごろ、読者諸氏はいかがお過ごしだろうか。
構成に難がある。男二人をアピールするのに忙しく、主人公のアピールが弱い。
新人ではないので、単行本になる程度には続くのだろう。どう主人公を押し出していくかが見所になりそうだ。
採点:★☆☆☆☆
・陽華エミ『独占LOVEスクープ!』読み切り
「超ナルシストの彼氏役」という面白い設定から、きっちり面白さを引き出している。妙なセリフやポーズがいちいち笑えて、しかも魅力がある。
ネームの流れもいい。次が楽しみな新人として覚えておきたい。
採点:★★★★☆
・山中リコ『桃色パンチ』最終回
ちゃんと話も落としているし、ネームの流れもよく、特にまずい点は見当たらない。が、内容が薄い。
採点:★☆☆☆☆
第6回に続く
私は2chのレズ声優スレを研究した。その結果、スレでよく話題になる声優だけは、ぼんやりとイメージできるようになった。
レズ声優スレの常連声優のなかから選ぶという条件で、主役級4人を妄想キャスティングしてみる。
橋本美園:生天目仁美
次点:田中理恵
美園は、他の三人とは少しずれた、世俗的な次元にいる。世慣れた感じをふりまくのに長けた役者、ということで、このようになった。
ひかるとの絡みを重視すると、次点のほうが魅力的だ。ここでは作品全体の演出を重視したので、次点にとどまっている。
平石緋沙子:釘宮理恵
次点:川澄綾子
ひかるより背が高く聞こえ、緊張感があり、幼さも出せ、美人を演じて説得力がある、という条件で選ぶとこうなった。
次点には、うまく言えないが、なにか大切なものがある。つまり、カンだ。
設楽ひかる:能登麻美子
次点:田村ゆかり
次点のほうが面白いので先に。
この人の演技には独特の距離感覚がある。その距離感覚を生かせる役だと面白い。とはいえこの役は、声質の面で辛いので、現実にはこういうキャスティングは難しそうだ。妄想キャスティングならではの醍醐味といえる。
面白さをあきらめて順当に選ぶと、ご覧のとおりだ。『ヤミと帽子と本の旅人』の葉月のイメージである。
波多野陸子:こやまきみこ
次点:落合祐里香
声質の条件(すごいアニメ声)が厳しいので、この二人の一騎打ちになった。
感情表出の際の衝撃力を重視して、この結果となった。あまりフォトジェニック(声だからサウンドジェニック?)でない声のほうがいいので、もし衝撃力が十分なら、次点のほうをとりたい。
やってみると、なかなか厳しい。釘宮と川澄は最近ではスレ常連から遠ざかっているが、ほかに緋沙子にあてられる声優が見つからなかった。
それでもまだかなり不満がある。こやま―能登―釘宮という配置は、「いかにも」すぎる。作品解釈としてベタすぎる。「なんだこれは」という予想外の配置で、作品に別の光を当てるようなキャスティングがしたい。
というわけで次回、スレ常連でない外国人選手を2人投入してみる。
*
陛下は、ほとんど一瞬で、気持ちのありようを切り替えられた。私の意志をひと潰しにしようするかわりに、獲物を追うときのように、視野を広く、身を軽くなさった。
気持ちが切り替わると、私の上からどいて、手をさしのべてくださる。私はその手をとった。けれど支えにはせず、自分で身を起こす。陛下が車からお降りになるとき、私の手をとるだけで、支えにはなさらないのと同じように。
私が座布団の上に座りなおすと、陛下はそのたおやかな御手で、私の腰に触れてくださった。
「ひかるちゃんのここ、ちょっと細くなったかなー?」
そこはさっき陛下のおみ足に挟まれていたところだった。くすぐったさに、身体が小さく震える。
「ではこれからは、細くなるように務めます」
「ひさちゃんを引き取るっていうことは、実家で預かってもらうの?」
「いえ、一緒に暮らします」
耳のすぐそばで、陛下はかすかに笑い声を漏らされた。
「ひかるちゃんは、私のことはわかってるみたいだけど。自分のことも、もうちょっと、わかんなきゃねー。
私がひさちゃんのこと性的虐待してるっていうけど、それはひかるちゃんだって五十歩百歩なんだよ?」
こんな見方があるとは夢にも思わなかった。言われてみると、反論できない。
「誘ったのは私ですが――疑いを晴らす立場にないということは存じております」
陛下は私の側を離れて、ご自分の座布団にお戻りになった。
「でも自分は正しい、って思ってるでしょ? あぶないなー。
ここって、私がなにしても筒抜けなの。かならずメイドさんの誰かが聞いてるし、そしたら橋本さんに報告がいくし、やばそうなことなら理事会までいくの。ひさちゃんのこと、そりゃちょっとはいじめるけど、もし本当にひどいことしたら、止めてもらえるようになってるの。
でも、ひかるちゃんとひさちゃんの二人暮らしだったら、どう? 誰も止めてくれないよ」
陛下が幼い日々を過ごされた、子供の家のことを思い起こす。
陛下のように完全な捨て子としてやってくる子供は、あまりいない。たいていは、緋沙子のように親との関係に問題があるか、あるいは親の暮らしが破綻しているか、どちらかだ。そういう子供たちとつきあっていれば、止めてくれる人がいないことの恐ろしさを、身にしみて知るようになるのだろう。
そんな世界に触れたことのない私には、思いもよらないことだった。私はぐらついた。
そのとき背後から声がした。
「恐れながら申し上げます。私はひかるさまを信じます」
緋沙子だった。
陛下の応対は鋭かった。
「ひさちゃんは、信じるだけでいいんだもんね。ひかるちゃんには、責任があるんだよ」
私は振り向いて、緋沙子に告げる、
「――ありがとう」
「なにもかも設楽さまの思うようになさってください」
追い討ちをかけるように陛下は、
「ひかるちゃんて、エッチなことだと、止まらないよね。服の匂いをかいだりとか。
ひさちゃんのことも、そうなっちゃうんじゃない? 自分でもわけがわかんないけど、やめられないの、悪いこと」
けれど私はもうぐらついてはいなかった。
私の背中はきっと本当に、陛下のお心につながっている。陛下がなにを本当に求め願っておられるのか、まるで耳打ちされているようにわかる。その願いの強さが、私の力になる。
「平石さんを傷つけないという自信はござません。恐れています。ですが、この恐れから逃れようとは思いません。
私は護衛官として陸子さまのお命を預かっています。私の務めが至らず、陸子さまの身に万一のことが起こるのではないかと、恐れております。ですが、陸子さまが私を信じて、私に任せてくださるかぎり、この恐れから逃れようとは思いません。
緋沙子が――」
間違えて、二人のときのように名前で呼んでしまった。一瞬迷い、押し通すことにする。
「――緋沙子が私を信じてくれるなら、私は逃げません。
それに…… 憚りながらお尋ね申し上げます。
たとえどんなに傷つけられることになっても、一緒にいたかった――そのようにお考えあそばしたことは、ございませんか?」
陛下はすぐにその意を汲み取ってくださったようだった。たちまちお顔が気色ばみ、御手が脇息を強くつかむ。
「……一緒にって、誰と?」
「陸子さまをお産みになったお母様と」
陛下のお身体がバネ仕掛けのように前に跳ね、風のように平手打ちが飛んできた。
Continue
今回出てきた、キング牧師の言葉について。
アメリカではかなり有名な名言らしい。原文は以下のとおり。
If a man is called to be a streetsweeper, he should sweep streets even as Michelangelo painted, or Beethoven composed music, or Shakespeare wrote poetry. He should sweep streets so well that all the hosts of heaven and earth will pause to say, here lived a great streetsweeper who did his job well. 引用元
作中の訳は私である。
*
緋沙子のことはあきらめよう、と思った。
強い力だった。意志と情熱が、陛下のお心から流れ出て、見えない水路をたどり、私の心に注ぎ込まれる。
私には自分の意志なんてないのかもしれない、と思った。
私の背中には電線が生えていて、陛下が操作なさっているような気がする。私の決意も翻意も、陛下の思うがままで、陛下を楽しませているだけ――そんな妄想さえ浮かぶ。
陛下とめぐりあうまで、私はまったく違う道を歩んでいた。
まんがを描きたかった。アシスタント修行に明け暮れ、たくさんの友人と出会った。全世界の運命よりも、自分のネームのほうが重要だった。マーチン・ルーサー・キング牧師は言った。「もし道路掃除人になったなら、ミケランジェロが描いたように、ベートーベンが作曲したように、シェイクスピアが作詩したように、道路を掃除しよう。主がそこに立ち止まり、『ここには偉大な道路掃除人がいた』と言うほどに、道路を掃除しよう」。まさに私はそんな風にまんがを描きたかった。
今でも、それがどうでもいいことだとは思わない。もしこれから先、なにかのめぐりあわせで、またまんがを描くようになれば、きっと同じように心血を注ぐだろう。
けれど、今のところは、そういうめぐりあわせにはない。
「陸子さま――」
きっといま私はとても恥ずかしい顔をしているにちがいない、と思う。自分自身を客観的に見ようとする気持ちが、ほとんどなくなってしまっている。
「なーに?」
「私の望みも、陸子さまでございます」
「望んで。うーんと」
「陸子さまが、どんなに平石さんのことを気にかけておられるか、存じております」
陛下のお顔が曇った。けれど私はかまわず申し上げた。その言葉は、自分でも意外で、しかも自然だった。
「私が平石さんを引き取ります」
Continue
私は十年ほど前にアキバ系をやめてマチダ系に鞍替えしたのだが、いまだに秋葉原とは縁が切れない。
いまアキバといえばメイド喫茶だ。あちこちにメイド服の店員が立って客引きしている。私はほとんど関心がない。メイド喫茶のファンシーなメイド服は、三次元に着せる服としては完成度が低い。
しかし先日、珍しくも、ギャルソン服の店員を見かけた。チラシをもらったが、メイドカフェ&バーと書いてある。この人も店ではメイド服の店員に混じって働いているのだろう。
激萌えだ
いま私は一個の妄想機械と化した。
なにしろ私はメイド喫茶なるものに行ったことがないので勘違い等があると思うが、機械は勘違いを気にしない。
メイド服とギャルソン服の割合は半々くらいがいい。服は、背の高さや本人の希望ではなく、ランダムに割り当てる。ランダムだと、「メイド服が着たいのに割り当てはギャルソン服」というシチュエーションが生じる。それがいい。
店の制度として、店員同士の公式カプが決まっている。同じ時間に店に出てきて、テーブルに行くときにも原則としてペアで行く。効率? 犬にでも食わせとけ! ペアはメイド服とギャルソン服が原則だが、メイド服同士、ギャルソン服同士のペアも必須だ。また、ペアを組まない単身者も必須だ。
原則には例外がある。ペアの片方が休むこともあるし、純然たる浮気もありだ。ペアの相手の名前はネームプレートに書いてあるので、客も見ればわかる。それだけで会話のネタになるし、ヒキにもなる。
そしてもちろん、ミニイベントやミニゲームのたぐいには、ペア同士の愛情アクションを盛り込む。アクションの程度だが、月に一度くらいの頻度で唇へのキスが見られる、くらいがいいだろう。
こんなメイド喫茶がすでに実在するのでしたらご一報ください。(ありえない)
java.nioのソケット(非ブロック接続)のベンチマークをとってみた。
Java VMはIBMのJ2SE 5.0 SR2。玄箱HGがHTTPサーバになり、十分に高速なマシンでApache Benchmarkを走らせて、転送速度をみた。
9.6MB/s。
絶望的な値だ。
この測定のために即席のベンチマークソフトを作ったので、ここに置いておく。java -cp nbsbench-20060714.jar org.kaoriha.nbsb.NonBlockingServerで起動する。ソースはこちら。
玄箱HGを手に入れた。
現在入手できるなかではもっとも安いJ2SE 5.0実行環境になる、と期待してのことだったが、思った以上に遅い。CPUはPowerPC 603e/266MHz相当だというが、その速度はPPC版Mac mini 1.25GHzの12分の1程度だ。8分の1くらい出ないかと期待していたが、甘かった。
IBMのJava VM(5.0 SR2、JITあり・なし)とGCJ 3.4で、SciMark 2.0aの結果を取った。以下に掲げる。
IBM Java VM(JITなし)
SciMark 2.0a
Composite Score: 1.3151828462508728
FFT (1024): 0.7996995770633254
SOR (100x100): 2.6374098663412457
Monte Carlo : 0.3889376711514591
Sparse matmult (N=1000, nz=5000): 1.360616525226941
LU (100x100): 1.3892505914713928
java.vendor: IBM Corporation
java.version: 1.5.0
os.arch: ppc
os.name: Linux
os.version: 2.4.17_mvl21
IBM Java VM(JITあり)
SciMark 2.0a
Composite Score: 12.026484230508895
FFT (1024): 0.27175496097207835
SOR (100x100): 36.63969886413905
Monte Carlo : 4.53070907072668
Sparse matmult (N=1000, nz=5000): 9.550012112153572
LU (100x100): 9.140246144553101
java.vendor: IBM Corporation
java.version: 1.5.0
os.arch: ppc
os.name: Linux
os.version: 2.4.17_mvl21
GCJ 3.4 AOTコンパイル
SciMark 2.0a
Composite Score: 17.39568070038595
FFT (1024): 23.115996214632936
SOR (100x100): 34.73743517016856
Monte Carlo : 2.483306082859137
Sparse matmult (N=1000, nz=5000): 7.795964701708599
LU (100x100): 18.84570133256051
java.vendor: Free Software Foundation, Inc.
java.version: 3.4.4
os.arch: ppc
os.name: Linux
os.version: 2.4.17_mvl21
このCPUで1万5千円は割高に感じる。Celeron 1.46GHzとメモリ256MBならケースも入れて3万円で揃ってしまう世の中なのだ。次はVIA Edenあたりを使ってほしい。
ネタ切れなので、歴史のひとこまをお届けする。本編とはなんの関係もない。
1917年末、ドイツは第一次世界大戦の行方を決することにした。
ロシアの脱落により西部戦線への兵力集中が可能になったが、1918年後半にはこの優位は失われると予想された。米軍が大西洋を渡って西部戦線に到着しつつあった。米軍による増強の前に、フランスとイギリスを降伏に追い込まなければならない、とルーデンドルフは考えた。
1914年にドイツ軍はパリに迫ったものの阻止された。西部戦線はそのときから膠着を続けていた。技術的な理由により、西部戦線を突破することは不可能だった。しかし、当時の職業軍人の多くは、突破は可能だと信じていた。ルーデンドルフも信じていた。
1918年3月、ドイツの突破作戦が始まった。カイザー攻勢である。
*
ルール。不安をかきたてる言葉だった。理由はわからない。
「ひかるちゃんは、順番をつけてるの。一番目とか、二番目とか。ひさちゃんのこと、『私の一番大切な人ではありません』って、このあいだ言ったよね?
もうひとつ。役割でものを考えてる。護衛官とか、国王とか。
お仕事には、そういうのも必要だよね。ひかるちゃんに護衛官になってもらったのも、そういうところが欲しかったから、っていうのもあるし。ひかるちゃんが役割してくれないと、私なんて、うざったいガキにしか見えないよ。だからそれはいいんだけど。
ひかるちゃんは、お仕事以外でも、役割でものを考えてる。
役割と順番、ふたつあわせて――自分は本妻で、ひさちゃんは愛人、みたいに思ってるでしょ?
でなきゃ、さっきみたいなセリフ、出てこないよ。ひさちゃんは愛人だから遊びだけにしといて、重たいことはみんな自分に、って思ってない?
ひかるちゃんの、そういうとこ、いじめたくなるんだ」
反論したかった。役割や順番は大切なことだと言いたかった。けれど、口をつぐむ。いまの私がすべきことは、緋沙子を助けることだ。
これはチャンスだ。
陛下が、ご自分の考えをおっしゃっている。陛下の望みがはっきりすれば、それをかなえる方法もわかる。そのなかには、緋沙子をお側にとどめておける方法も、きっと見つかる。
先日は、ひどく不躾にお尋ね申し上げてしまった。『ご自分を捨てた生みのお母様の立場に、ご自分を置かれることで――』。あのとき、陛下のお心を痛めてしまったことは、辛く恥ずかしい。けれど、悪いことをしたとは思わない。陛下がご自分の望みを見つめなおすきっかけになったはずだ。
「私は陸子さまを縛るような身ではございません」
「縛れないから、妬かない? 逆だよね」
「私のことよりも、陸子さまの望みをおっしゃってください。私をどんな風にいじめてくださるのでしょう?」
陛下のお顔が、愉悦をはらんで微笑む。
「ひかるちゃんの考えてる、役割とか順番とか、そういうルール、壊しちゃう。
このあいだ、ちょっと壊れちゃったよね、ひかるちゃんのルール――私の夏休みが明けて、実家にお迎えにきてくれたとき。
ひかるちゃんが、あんな変態だったなんてねー。ひかるちゃんのルールじゃ、絶対いけないことでしょ?
でも、ひかるちゃん、嬉しそうだったよ。こうしてほしいんだなーって、わかっちゃった」
その物語に、惹き込まれそうになる。緋沙子のことを忘れて、その物語にひたりそうになる。けれど私は誘惑をふりほどいて、申し上げる。
「私をそのようにしてくださって、そうすると陛下は、どんな望みをかなえられるのでしょう?」
陛下は、二、三度、まばたきをなさった。
そのあいだに、愉悦をはらんだ笑みが消え失せる。けれど、興をなくされたのではない。無表情というほかないけれど、なにか強い力を潜ませたお顔だった。たとえるなら、仏像のような。
やがて陛下はおっしゃった。
「登山家はどうして山に登るのでしょう? そこに山があるから、だね。
じゃあ、どうして私はひかるちゃんの上にのっかるのでしょう? そこにひかるちゃんがいるから、だよ。
ひかるちゃんは、望みをかなえるための手段じゃない。
ひかるちゃんが、私の望み」
Continue
少コミ第15号を読んだ。
レギュラーと新人の力量に格段の差がある。新人の半分くらいは本当にひどい。今まで見たかぎりでは、本誌で読みたいと思える新人は、くまがい杏子・天野まろん・千葉コズエの3人だけだ。
それにしても、小学館の30万部のまんが誌でありながら、どうしてこんなにレギュラー層が薄いのだろう。構造的な問題があるのかもしれない。
・織田綺『Lovey Dovey』新連載第1回
津田雅美『彼氏彼女の事情』の主人公(猫をかぶる自分に悩む秀才)を少コミに登場させるとこうなる、のかもしれない。
かぶれるほどの猫があって(かぶれる猫は女の財産だ)、幼なじみの男(敬士)はスペックをみるかぎり完璧超人で、お前はどこのパーフェクトジオングですかという主人公(彩香)だが、まだ敬士をものにできていない。そこへ現われたるはイケメンの不良男(芯)、彩香にコナをかける――で次回に続く。
女の面白い秀才を描くのは難しい。これはという成功例は、大島永遠『女子高生』の主人公くらいしか見たことがない。さてどうなるか。
採点:★★★☆☆
・青木琴美『僕の初恋をキミに捧ぐ』連載第22回
切れる切れないで修羅場を続けている主人公たち(逞と繭)。前回いよいよ繭が決戦を挑んだ。今回、逞は22ページかけて揺さぶられ、23ページ目で繭へと傾く。が、26ページ目、繭のライバル(照)がついに切り札を出す。『その日 僕のせいで 照ちゃんが 死んだ』。
照には繭に対抗しうるほどの言い分がないので、なにか来るだろうとは予想していた。しかしこの手は読んでいなかった。事ここに至っては最善手かもしれないが、それまでの構想に疑問がある。
ファミコン版『北斗の拳』には、ちょっとした無敵技がある。敵が出てくる前に自機を殺してしまう、という技だ。敵が出てこない=無敵、というギャグだ。ギャグなのだが、考えさせられる。死によって無敵になる人間の、いかに多いことか。キリストは十字架にかけられることで無敵になった。レーニンがもし70歳まで生き長らえていたら、死後にあれほどの神格化を長く続けることはできなかっただろう。
だが、死によって無敵を得るのは、死ぬまで最強だった者だけだ。でなければ、ファミコン版『北斗の拳』の無敵技と同じことになってしまう。
照には最強を感じない。もしかしたら次回で最強になるのだろうか。だとしたら作者を尊敬する。
採点:★☆☆☆☆
・わたなべ志穂『ご指名! ホスト教師J』新連載第1回
新連載といっても、いったん終了したのを再開させたものらしい。単行本が1巻出ている。
『ラスト・エスコート』というプレステ2用ゲームがある。高卒プーの女がアルバイト代をホストに貢いでナンバーワンにする、という話だ。この話に、どうコメントしたらいいのか、わからない。あえていえば、「バイト先はどちらのSMクラブですか? ちょっと美人の20歳でもお茶っぴきなんて珍しくありませんよ?」くらいか。
『ラスト・エスコート』よりはずっとマシだが、この作品にも同じ種類の危うさがある。生徒のメンツには多少の期待が持てるので(特に子持ち女の生徒にはなにか狙いがありそうだ)、見限らずに読んでゆきたい。
採点:★☆☆☆☆
・新條まゆ『愛を歌うより俺に溺れろ!』連載第11回
水樹と秋羅がデートしている。それだけだった。
採点:★★☆☆☆
・山中リコ『桃色パンチ』連載第2回
私はどうやら少コミの連載というものについて誤解していたらしい。
新人の連載は、「短期集中連載」などと銘打っていなくても、単行本にならないようなページ数しか続かないようなのだ。この連載にあと何ヶ月もつきあうのかと思ってうんざりしていたが、どうやらすぐにお別れできそうだ。
主人公にも彼氏役にも魅力がない。
採点:☆☆☆☆☆
・しがの夷織『めちゃモテ・ハニィ』連載第2回
構成がなんとも素晴らしい。1ページ目が、「アダルトビデオを見ているところを保護者に発見される主人公(15歳・女)」だ。その後も、主人公のアクの強さを生かし切りつつ、第二の男(主人公の保護者)を登場させ、彼氏役のいいところも見せている。
そしてなにより、いい電波が出ている。いま次回が一番楽しみな連載だ。
採点:★★★★☆
・天音佑湖『恋敵は子猫ちゃん・』連作読み切り
細かいことを言っても無駄な馬鹿話だ。好感が持てるのでいいとする。
画面の整理には難点がある。ただ、見やすい画面になると、この好感もなくなってしまうかもしれない。難しいところにはまっていると思う。
採点:★★☆☆☆
・千葉コズエ『恋10!!~恋まであと10センチ~』読み切り
「主人公の過失を償うために男と同居→からかわれながらも好きになる→行き違いのあと仲直りして結ばれる」。
彼氏役の魅力の出し方に、確かな実力を感じる。これができる作家のなんと少ないことか。あまり少コミ的ではないかもしれないが、ぜひポジションを確保してほしい人だ。
採点:★★★☆☆
・麻見雅『放課後のジュエル』連作読み切り
宝石専門のイケメン怪盗と宝石好きの主人公。主人公がずっと受身で、怪盗を招き寄せたり追いかけたりしていないのが、そろそろ気になってきた。
前に見たときには、まるで『のらくろ』かなにかのような不思議なノリで驚いたが、今回はずいぶん現代らしくなっている。私としては『のらくろ』のノリのほうが面白いので、あのままでいってほしいが、平均的な少コミ読者には受けないかもしれない。
採点:★★☆☆☆
・水波風南『蜜×蜜ドロップス』最終回
結婚式で締めた。少女まんがのラストに結婚式は王道中の王道だが、もっと味を出してほしいところでもある。この作品も例外ではない。
ところで21ページ目、「…そうだな…」というセリフの横に「ギシ…」という描き文字は、笑うところなのだろうか。
採点:★★☆☆☆
・車谷晴子『美少年のおへや。』最終回
新人の連載は、「短期集中連載」とも「次回最終回」とも書かれずに最終回になるらしい。さすがに「次回最終回」の予告くらいはあってもいいと思うがどうか。
『ダメだ 今 パンツ かわいくない!!!』。四コマなどで百回は見たネタだと思うが、見るたびにしみじみとした味わいがある。
採点:★☆☆☆☆
・咲坂芽亜『ラブリー・マニュアル』最終回
これまた「次回最終回」とも書かれずに最終回だ。
主人公の学校側との衝突はなんの伏線かと思っていたが、最終回でオチをつけるための伏線だった。「校則違反のオシャレで学校に来るのをやめない→停学をくらう→それでも自分の旗をかかげる→友情で学校側をぎゃふんと言わせる」。
前回までの友情アピールが薄かったのが惜しまれる。このページ数ではやむをえないところか。
採点:★★★☆☆
第5回に続く
耳と美容について。
作中ではああ言っているが、美容業界的には耳はそれなりに注目度の高いパーツらしい。「エステ 耳」をGoogleで検索すると958,000 件。同様の検索で、鼻は775,000 件、首は888,000 件、口は1,570,000 件、目は2,800,000 件。首より上なのだから相当なものだ。それでもやはり雑誌などではいまひとつ重要度が低い気がする。
*
「身体を洗うときに、耳って半端だよね。
髪も顔も首も、正しいやりかたみたいなのが、あるでしょう。正しいっていっても、どうせコスメ屋さんが売り込んでる奴だけどさ。でも耳って、あんまりそういうの聞かないよね。場所的には目立つのに」
そうおっしゃると、耳掻きを抜き取り、私の耳たぶを口に含んで、試すように噛まれた。
「なんかちょっとおいしそう」
「陸子さまのお口に合うでしょうか。どうぞ、ほかのところもお試しください」
「誘ってるー。いつそんなこと覚えたの?」
「たぶん、陸子さまとご一緒しているときです」
「恥ずかしがってるだけじゃなかったんだー。さすが、ひかるちゃんだね」
陛下は私の首に御手を置き、軽く抑えつけるようにしてから、おっしゃった。
「ひさちゃん、入って」
私は起き上がろうとしたが、陛下の御手がそれを許さなかった。襖がすべる音と、衣ずれの音がした。緋沙子の気配を、背中で感じる。
「たしか先日は、二人きりのほうがお好きとうかがいましたが」
私はうんざりした――いや、しようとした。けれど、心が動くのを、止められない。
「今日のお楽しみはそれじゃないの。
ひかるちゃんが、わかってるかどうかの、テスト。わかってなかったら、お勉強。
いい点取って、ひさちゃんを喜ばせてあげてね?」
私は、無駄なこととは知りながら、かなり厳しい言葉を選んで、申し上げた。
「恐れながら申し上げます。
平石さんにどんな非があるにせよ、赦すも赦さないも、陛下のお考えひとつでございます。平石さんを放り出すような真似は、陛下の寛大なお心にふさわしいこととは思われません」
この抵抗に苛立ったのか、陛下は、私の耳たぶを抓(つね)られた。
「ひさちゃんは悪くない、って、この前も言ったよね? 忘れちゃった? でも、ひかるちゃんて、こういうの絶対忘れないと思うんだけどなー」
私はなおも食い下がる。
「平石さんに非がないのなら、その行いに正しく報いてくださいますよう、お願い申し上げます。陛下は我が国の人心の要でございます。正しい行いが正しく報いられる、そう信じることが――」
おしまいまで言わせずに陛下は、私の口に手をかぶせて黙らせた。
「ほんとはもう、とっくにわかってるんでしょ? ひさちゃんのために、がんばってるんだ? なんか私、すっごく、悪いことしてるって感じー。
ぞくぞくするよ。
やっぱり、こうでなくっちゃね。せっかく悪いことしてるんだから。ありがとうね、ひかるちゃん。
ひさちゃんは、かばってもらえて、嬉しい?」
返事は聞こえなかった。けれど、仕草か顔色で伝わったのだろう、低い声で陛下はおっしゃった。
「でも、ひかるちゃんは、私のなんだよ」
陛下の御手がのびて、私の脇腹を撫でさする。
「恐れながら申し上げます。
今度のことは、お戯れというには、度を越しているように存じます。きちんとお話を――」
言いながら身を起こそうとすると、陛下は私の首を押さえつけ、身動きできないようになさった。
「お説教? 別にいいよ。でも、ひさちゃんを助けるのは、お説教じゃ無理だよね。もうあきらめたんだ?
それに、まだ答えてないよ。
問題――ひさちゃんはどうしてクビになるのでしょうか? ただし、ひさちゃんは悪くありません」
答えるわけにはいかなかった。
「無礼をお赦しください」
私の首を押さえつけている陛下の御手をつかんで、もぎはなそうとする。
けれど陛下のほうが素早くあられた。一瞬のうちに、私は仰向けに転がされ、陛下に馬乗りに組み敷かれていた。
「お説教でだめならケンカ? いいよ、ひさちゃんに見てもらお」
暴力を振るうとき、陛下のなさりようには、一切のためらいがない。私は、お身体に触れることさえ恐れ多い。これではケンカにもならない。
もう終わりだ、と決心した。ずるずると引き伸ばしても、なにも起こらない。
決心したせいで、走馬灯もどきに思い出す。陛下に初めてお目通りしたときのこと、即位式、緋沙子に初めて会ったときのこと――
私は決心を取り消した。もうひとつだけ、陛下に申し上げたいことがある。
「お願い申し上げます。悪いことをなさるお相手には、平石さんではなく私をお選びください。
陸子さまに苛(さいな)んでいただける平石さんが妬ましくて、いたたまれません」
それは素直な気持ちだった。この期に及んでも、私は平石さんに嫉妬している。
すると陛下は、得たりとばかりに微笑まれた。
「ひかるちゃんのルールって、そういうのなんだよね」
Continue
昨日の続き。
前にも書いたとおり、削除は哲学的な問題だ。更新も、削除ほどではないが、かなり哲学的だ。
研究レベルでは、「削除も更新もしない」というポリシーが大流行中らしい。すべて追記オンリーで済ませる。当然、HDDの記憶容量は消費する一方で、使い方によってはあっという間にゴミで埋まってしまうが、それは無視するのが研究レベルというものらしい。過去の状態がそのまま取り出せるので便利だが、ゴミで埋まるような使い方があることを考えると、MVCC的な方法のほうが汎用性がある。
私としては、もうひとつ疑問がある。
変化するデータを追記オンリーのストレージ上で表現しようとすると、なんらかの形で、アドレスの予約が必要になる。アドレスを予約できなければ、データが追記されたとき、そのデータのアドレスを知る方法がない。アドレスが予約されているということは、そのアドレスについて「まだデータが書き込まれていない」という状態が存在する。更新つまり状態の変更はないはずなのに、「まだデータが書き込まれていない」という状態の変更だけは許している。
これは深刻な破れ目のように感じる。
予約アドレスA1への追記が生じたときには、おそらく別の新しい予約アドレスA2が生成されるだろう。でなければデータの変化のたびに予約アドレスが減っていく。そしておそらくA1とA2は意味的に同じものだろう。だが、そうでないこともありうる。どこかで一度に100個の予約アドレスを確保して、それを99個まで使ってから、また100個の予約アドレスを確保する、というポリシーもありうるからだ。A1とA2が意味的に同じであると保証できないだけでなく、A2が常に生成されるともいえない。
それがなにか問題なのか? 分散環境では問題になる。
分散環境では可能なかぎりポーリングを減らす必要がある。予約アドレスが使われたときに、そのことを通知する仕組みが必要だ(予約アドレス追記通知)。この通知が、事実上、キャッシュ無効化通知と同じ役割を果たす。予約アドレス追記通知とキャッシュ無効化通知、どちらがより効率よく機能するか? おそらく、キャッシュ無効化通知だ。
なぜか。キャッシュ無効化通知なら、同じデータが複数回変更されたとき、それを1つのキャッシュ無効化通知として処理できる。それに対して予約アドレス追記は、常に異なるアドレスについて起こる。複数の追記を1つの通知として処理するには、その予約アドレスの意味を知っていなければならない。もちろん、キャッシュ無効化通知も、データの意味と切り離されたやりかた(ブロックデバイスのアドレスなど)でデータを指し示すなら同じことになる。
だから分散永続化システムは、エントリを指し示すのにsemantic IDを使い、エントリへの操作として更新を提供する。
更新は、「データの枠組みはそのままで内容を変化させた」という状態を作り出す。たとえばRDBMSのインデックスは、INSERTやDELETEやUPDATEのたびに更新される。これは意味的に更新であるだけではない。キャッシュ無効化通知の効率からも、この更新を、削除と作成で置き換えることはできない。
性能と意味がくっついているときには、できるだけ切り離さないようにすべきだ。ネットワークはHDDより柔軟なところがあるのだから、どこで切るかをよく考え直す必要がある。
昨日の修正。
マルチキャストアドレスで定められる枠をもっと使うべきだ、との結論に達した。ネットワークのトラフィックに局所性を作る方法がないと辛い。
分散永続化システムの上で動くもの(ファイルシステムやRDBMS)を、分散永続化システムとの関係において、「サービス」と呼ぶことにする。サービスは必ず1個のservice IDと1個のマルチキャストアドレスを持つ。無効化発行ノードの決定にservice IDを使う。システム上の全ノードのリストは用いず、かわりにサービス内の全ノードのリストを用いる。
ガベージコレクションがあると楽だと気づいた。ただしマークアンドスイープをするのは、分散永続化システムではなく、サービスだ。エントリのメタデータに、service IDと、マークアンドスイープのマーク用の領域を設ける。
昨日の補足。わからなかった人がいるようなので蛇足ながら。
1つのエントリに対して取得要求が集中しても、簡単に負荷分散できる。
ノードXに対してノードA、B、C、Dから同時に取得要求が来たとしよう。問題のエントリのバックアップノードはYとする。これらのノードを、UUID距離がもっとも近いもの同士が隣り合うように並べると、A・B・X・Y・C・Dとなるものとする。このときXは、Bの要求に応える。同時に、Aに対しては「Bに中継してもらえ」、Cに対しては「Yのバックアップをもらえ」、Dに対しては「Cに中継してもらえ」と返答する。
ネットワークがGbEであれば、分散永続化システム自体はかなり高速に動く。総ノード数2でも、ローカルHDDと遜色ないスループットと遅延が期待できる。しかしだからといって全体性能が約束されるわけがない。鎖の強さはもっとも弱い環で決まる。たとえば、各ノード上で動く分散処理が、ローカルキャッシュにできるだけヒットするような局所性の高い処理になっているかどうか。局所性がゼロなら、すぐにネットワークが飽和してしまうし、遅延も短くできない。
ファイルシステムやRDBMSは、なんらかの形でロック機構を持っている。ロック機構がなくてはデータの一貫性が保てない。
分散環境ではロック機構が性能の鍵になる。ノードの数を増やせば記憶容量が増える(スケールアウトする)のは自明だが、ロック機構はそうではない。
また、各ノードに備わるキャッシュ(ローカルキャッシュ)も問題になる。無効になったローカルキャッシュを適切に無効化しなければならない。
これらの要求は、ファイルシステムやRDBMSなどの永続化システムに共通している。また、分散環境では、素朴な方法(環境全体が一定数の同期オブジェクトを共有するなど)ではこれらの要求を効率よく満たすことはできない。
というわけで私は、分散ファイルシステムや分散RDBMSとHDDのあいだに、もう一つのレイヤを設けることを考えた。このレイヤのことを仮に「分散永続化システム」と呼ぶ。分散永続化システムは、以下のような分散環境で有効に働き、性能がスケールアウトするような分散ロック機構を提供する。
・Ethernet相当以上の信頼性・帯域幅・遅延のネットワーク
・スイッチングハブ相当以上のパケット配送管理
・全ノードのCPU性能・ネットワーク性能・HDD容量が同等または十分
・全ノードのリストを管理できる程度の、ノードの参加・離脱頻度
・総ノード数は2以上
分散永続化システムは、以下のような特徴を備えた特殊なファイルシステムといえる。
・ファイル名のかわりにUUIDを使う。これを「semantic ID」と呼ぶ。semantic IDはファイルを作成した際に自動生成される
・ディレクトリや属性やパーミッション等の機能を持たない。ファイルエントリもない。semantic IDを知らなければ、そのファイルの存在を知る方法はない
・ファイルに対して可能な破壊的操作は、作成・更新・削除のみ。シーク等の操作はない。更新の際はファイル内容全体を置き換える
・作成・更新の際には、新しいファイル内容に対してUUIDが自動生成され、ファイルのメタデータとして保存される。このUUIDを「content ID」と呼ぶ
・ファイルのsemantic IDを知っていれば、ファイル内容だけでなく、content IDも得られる
・更新・削除の際には、そのファイルのsemantic IDだけでなく、操作前のファイル内容のcontent IDも知っていなければならない。これによってエントリに楽観ロックが働く
lsもできず、ファイル名も自由につけられないので、これはファイルとはいえない。以下では「ファイル」のかわりに「エントリ」と呼ぶ。
総ノード数と総エントリ数が十分に多ければ、全ノードに均等にエントリを割り振ることができる。手順は以下のとおり。
・各ノードは自分を表すUUIDを持つ。これを「node ID」と呼ぶ
・128ビットの整数を円周上に等間隔に並べる。semantic IDの値の点と、node IDの値の点を選び出し、2つの点のあいだの円周上の最短の道のりを得る。このようにして算出される2つのUUID間の道のりを、仮に「UUID距離」と呼ぶ。
・全ノード中、UUID距離がもっとも短い(もっとも近い)node IDで表されるノードに、そのエントリを割り振る。割り振られたエントリとノードは、相互の関係においてそれぞれ、「担当エントリ」「担当ノード」と呼ばれる。なお、UUIDの性質上、2つのノードが等距離になることは事実上ない
・担当ノードは担当エントリへの操作を受け付ける。
以上の仕組みにより、分散永続化システムのロック性能はスケールアウトする。
とはいえもちろん、1つのエントリに集中して破壊的操作がなされる場合には、総ノード数を増やしてもロック性能は変わらない。分散永続化システムはつまるところHDDに書き込む仕組みであり、HDDの回転数以上の頻度で破壊的操作ができることを期待すべきではない(実は分散永続化システムならできるのだが後述。どうせスケールアウトはしない)。
また、各ノードがHDDを備えることで、記憶容量がスケールアウトする。
ローカルキャッシュの無効化について。
・エントリが更新・削除されたとき、古いエントリ内容は一定時間(猶予期間)消さずにおく
・エントリ内容を取得する際にcontent IDを指定すると、たとえそのエントリ内容がすでに更新・削除された後でも、猶予期間内であれば、エントリ内容を取得できる
・不変のUUIDを任意に定め、これをorigin IDとする。origin IDにもっとも近いノードを選んで、「無効化発行ノード」とする
・各ノードは、更新・削除の要求を受けたとき、内部的な操作(つまり楽観ロックとHDDへの書き込み)を完了したあと、操作成功を要求元に返答する前に、操作したエントリのsemantic IDと新しいエントリ内容のcontent IDを無効化発行ノードに通知する。通知に受領返答があるまでは、操作成功を要求元ノードに返答しない
・無効化発行ノードは、一定時間(無効化間隔)おきに、更新・削除されたエントリのsemantic IDと(更新の場合は)その最新のcontent IDのリストを、マルチキャストによって全ノードに通知する。この通知を「無効化通知」と名づける。
・無効化発行ノードは、更新・削除されたエントリがない場合にも、分散永続化システムの生存を示す通知をマルチキャストで発行する。これを「生存通知」と名づける
・無効化通知と生存通知には連番が振ってあり、パケットロスが生じた場合には個別にユニキャストで再送する。抜けなく受け取れているかぎりは受領返答などは返さない
・各ノードは、猶予期間よりも長いあいだ無効化通知と生存通知を受け取れない場合、分散永続化システムに異常が生じたと判断する
ここでのポイントは、
・更新・削除のたびにマルチキャストせず、一定時間ごとに一括して行う
・破壊的操作をせず、エントリ内容の取得時に必ずcontent IDを指定していれば、近い過去(猶予期間内)のある一点におけるデータが得られる
という2点である。
特に後者は重要だ。分散環境では、最新のデータを望むなら、無効化発行ノードのように、更新・削除の通知を受けるしかない。それも操作要求元に操作成功を返答する前にだ。これは原理的なものだ。だから、もし全ノードが最新のデータを用いようとしたら、更新・削除のたびにマルチキャストが発生する。しかも投げっぱなしのマルチキャストではなく、受領返答が全ノードから返ってくるまで待たされる。
そこで、非破壊的操作しかしない場合には、データはある一定期間より古くなければ十分とする。古いデータと新しいデータがごちゃまぜにならず、時間軸上のある一点のデータであれば十分とする。データのこのような性質を、以下では仮に、「時系列的一貫性」と呼ぶ。
無効化発行ノードは、時系列的一貫性を発生させるための仕組みだ。これがないと、無効化通知の到達順が入れ替わることで、先に破壊的操作を受けたエントリのローカルキャッシュが無効化されないまま、後に破壊的操作を受けたエントリのローカルキャッシュが無効化されるという事態が生じ、ローカルキャッシュの時系列的一貫性が崩れる。
無効化発行ノードにはパケットが集中するので、ボトルネックになる可能性がある。一応、複数の無効化発行ノードを使うこともできる。たとえば以下のとおり。
・各無効化発行ノードはそれぞれ、node ID同士のUUID距離により、担当ノードを割り振られている
・無効化通知を発行するときには、それに先立って、すべての無効化発行ノードにトークンを周回させる(トークンリングのイメージ)
・トークンを受け取ったら、トークンに自分の所轄の無効化情報を付け加えて、次に渡す
・トークンを次に渡したあとは、そのトークンが一周して発行された無効化通知を受領するまでのあいだ、担当ノードからの破壊的操作の通知への返答を待つ
・トークンが一周したら、トークンについてきた無効化情報を整理し、無効化通知を発行する
しかしこの方法も無限にスケールアウトはしない。
ここまでの記述では、分散永続化システムの規模によらず無効化通知用のマルチキャストアドレス(Class DのIPアドレス)は常に1つであるかのように書かれている。実際には、一つの分散永続化システムの中で複数のマルチキャストアドレスを使うこともできる。ただし、時系列的一貫性のスコープはマルチキャストアドレスごとに異なる。異なるマルチキャストアドレスのあいだではデータの一貫性はない。(ただし分散トランザクションで一貫性を得ることはできる。後述)
時系列的一貫性は、他の一貫性(たとえばRDBMSの制約など)よりも柔軟で低コストだが、一貫性である以上、無限にスケールアウトすることはない。
非破壊的な楽観ロックと分散トランザクションについて。
破壊的操作を行う際、それと関係するデータが古くなっていては困る、という場合がある。分散永続化システムの提供するデータは、時系列的に一貫してはいるが、最新かどうかはわからない。破壊的操作をしてみなければ最新であることを保証できない、というのでは効率が悪い。そこで、非破壊的な楽観ロックが必要になる。content IDを渡して、現在もそのエントリ内容のままかどうかを問い合わせるわけだ。
非破壊的な楽観ロックは、別の破壊的操作の前提として必要になるものだ。つまり、複数のエントリに同時に楽観ロックを行う必要がある。複数のエントリはおそらく複数の担当ノードに対応する。つまり分散トランザクション処理が必要になる。
分散トランザクション処理は、担当ノード間の通知によって行える。各担当ノードは、自分の担当エントリの楽観ロックに成功したら、同じトランザクションに含まれる他のエントリの担当ノードに、自分の成功を通知する。自分の通知の受領返答が揃い、他の全担当ノードから成功の通知が揃えば、操作要求元ノードに操作成功を返答してコミット完了だ。
分散トランザクションの仕組みは、時系列的一貫性に頼らないので、時系列的一貫性のスコープが異なるエントリにまたがっていても一貫性が保たれる。
耐障害性について。
システムに2つ以上のノードがある場合、content IDに2番目に近いnode IDを持つノードが常に存在し、一意に決まる。このノードを「バックアップノード」と呼ぶ。
エントリの破壊的操作を要求するノードは、担当ノードのほかにバックアップノードにも、同じ内容の要求を出す。バックアップノードは自分では楽観ロックを処理せず(処理できるが無駄)、担当ノードが結果を知らせてくれるのを待ち、そのとおりにする。操作の要求元は、両方のノードからの返答を得て初めて操作完了とみなす。
ノード離脱時には、UUID距離の性質上、あらゆるエントリについて、バックアップノードが担当ノードに昇格する。このためノードが離脱したときも、分散永続化システムはほとんど止まらない。
ノードの参加・離脱の細かい処理は面倒なので省略するが、どうにでもなる。
前に、『HDDの回転数以上の頻度で破壊的操作ができる』と書いたが、説明しよう。
担当ノードとバックアップノード、この2つのノードに同時に破壊的操作の要求が出されるなら、楽観ロックが通った時点で、HDDへの書き込みが完了する前に、操作完了と返答してよい。
(2つのノードが同時に落ちたら? あきらめろ、だ。1つのシステムには最低で2系統の無停電電源を使い、UUID距離で隣り合うノード同士は互いに別系統の無停電電源につなぐことをお勧めする。ノードを置く部屋も電源系統ごとに分ける。遅延の短縮で得られる性能には、それだけの価値がある)
これにより分散永続化システムは、HDDの回転数以上の頻度で、1つのエントリに対する破壊的操作ができる。
Gigabit Ethernetでジャンボフレームを使えば、8KB程度のデータが1個のパケットに収まる。破壊的操作の要求元が操作成功の返答を受け取るまでの平均時間が、1msを切ることも十分ありうる。これはHDDに書き込むよりも速い。1つのエントリに破壊的操作が集中した場合にも、毎秒1000回まで耐えられるわけだ(同じノードからの連続した要求でないかぎり、楽観ロックが失敗しまくるので、成功する操作はずっと少ないが)。
各ノードはCPU・HDD・Gigabit Ethernetのセット、つまりPCを箱から出して線をつなげば一丁あがりだ。異常が起こればノードごと切り離して入れ替えればいい。
帯域が足りなければ、分散永続化システム上に実装する分散ファイルシステムでストライピングを提供するという方法がある。1つのファイルを複数のエントリにストライピングするわけだ。
分散永続化システム上に実装された分散RDBMSには、ロック機構と物理設計が不要になる。1つのエントリに破壊的操作が集中しないようにするだけでいい。
補遺。
上では、ファイルエントリに相当するものはないと書いたが、本当にまったくなければ、semantic IDとHDD上のセクタ番号を結びつけることもできない。ファイルエントリ相当のテーブルは、各ノードの内部でのみ使われる。
総ノード数が十分に多いとはいえない場合、エントリの割り振りがある程度均等になるように、node IDの値を配慮する必要がある。
上では、各ノードは分散永続化システムに関する処理しかしていないように見えるが、ほかの分散処理(Webアプリケーションなど)を動かせるし、そうすべきだ。
分散永続化システム上には、分散ファイルシステムや分散RDBMSを設けるのがいいと思うが、必要なら仮想ブロックデバイスを設けることもできる。パケットサイズにあわせた効率のいいサイズでブロックをチャンクして、エントリにマップする。チャンクサイズ以上の連続転送ではストライピングが効くので、ローカルのHDDより速いケースもあるだろう。ただし、分散ロック機構が使われないのでもったいない。
全ノードのリストはできるだけ全ノードが同じ最新のものを持っているほうが効率がいい。持っているノードリストが互いに違っていて、その違いが問題になるようなやりとりが発生した場合は、どちらのノードリストが新しいかをネゴシエーションで決める必要が生じる。
分散永続化システムは、悪意あるノードや、動作異常のノードに対して脆弱だ。動作異常のノードに対しては、他のノードがそれを検出して問題のノードを自動的に切り離せるといいかもしれない。が、下手にこれをやると、1つの異常(1つのエントリに対する操作要求の異常な集中など)が連鎖的に隣り合うノードを落としてデータの欠損に至る可能性がある。QoSなどをうまく使う必要があるだろう。
分散永続化システム上に悲観的ロックを実装する場合、ロック単位ごとにエントリを使い、ロック操作のたびにそのエントリを更新する。このときエントリ内容には、ロックをかけたノードを表すnode IDを含めなければならない。でないと、悲観的ロックをかけたノードがロックを解放しないまま落ちたとき、そのことを検出する方法がない。
頻繁に破壊的操作が行われるエントリについては、無効化通知が冗長になる。そのようなエントリは、ローカルキャッシュを無効にすればいい。操作要求への返答に、「このエントリのローカルキャッシュは常に無効です」という意味の情報を加えるわけだ。ただしこの場合も、猶予期間内はcontent IDで古いデータを参照できなければならない(でないと時系列的一貫性が崩れる)。
以上、分散永続化システムについて述べた。
おそらく、既存の研究や製品のどれかと非常によく似ているのではないかと思う。私には見つけられなかったが、ないとは思えない。ご存知のかたはご一報ください。
UUID距離というアイディアは当然ながらすでにある。たとえば分散ハッシュテーブル(DHT)はハッシュのキーの距離を利用している。楽観ロックは感動的な大発明だ。content IDで古いエントリ内容を取得できるという仕組み(つまり時系列的一貫性)は、RDBMSのMVCCを一歩進めたもので、Plan 9のVentiも似たようなことをやっている。UUID距離と楽観ロックとMVCCがあれば、semantic ID・content ID・node IDまでは一直線だ。あとの話はすべておまけにすぎない。
(semantic ID・content ID・node IDまで聞けばあとは聞く必要がない、という人でないと、この分散永続化システムの仕組みを理解するのは難しいのではないかと思う)
この分散永続化システムに、凝ったところ、作為的なところはない。あえていえば時系列的一貫性だが、ほかに合理的な解があるという気がしない。
分散永続化システムは必ず作られるか、あるいはもうどこかで作られている。
Google File System? Googleにはいいだろうが、世の中のほとんどの人はGoogle関係者ではない。あえて言おう、カスであると。
2chのレズ声優スレが過熱する今日このごろ、読者諸氏はいかがお過ごしだろうか。
私はもちろん脳内キャスティングで楽しんでいる――と言いたいところだが、私の声オタ能力はあまりに低く、声優の名前と声が結びつかない。
*
お部屋の障子の外に座り、
「陛下に申し上げます。設楽ひかるが参りました」
「どうぞー」
障子を滑らせると――陛下のご様子に、緊張した。
脇息の上に突っ伏しておられ、お顔が見えない。お身体に障りがあるのだろうか。すると、私の心配をまるで察してくださったかのように、
「ちょっと待って、いま悩んでるの」
と元気なお声で、陛下はおっしゃった。
「私でよろしければ、お力になりたいと存じます」
「どんな顔して始めればいいかなー、って。
これから、ひかるちゃんのこと、泣かせるからね。私がにこにこしてたら、ひかるちゃんは泣きにくいでしょ?」
私はお側に寄った。脇息をあいだに挟まないように横に、膝が触れるくらい近くに。
「ご高配に痛み入ります。泣いていいとのお許しがあれば、なんの不都合もございません」
陛下は初めてお顔を上げて、私を上目づかいにご覧になった。いつもの信頼のこもったお顔とは様子の違う、警戒を解かないお顔だった。
陛下は低いお声でおっしゃった。
「私は許さないけど、ひかるちゃんは泣いちゃうの」
どう返事したものかわからずにいると、陛下は脇息を脇にやって、お膝を指で示された。
「膝枕させて」
それで私はジャケットを脱いだ。その途中に、
「あ、そうだ、防弾チョッキも脱いで」
ワイシャツも脱ぎ、防刃防弾チョッキを外す。チョッキの下は専用の下着になっている。
私がワイシャツのボタンを外してゆくのを、陛下はしげしげと見つめておられた。まぶたの重そうな、あのまなざしで。恥ずかしくなって私は、
「服を脱ぐのがそんなに珍しいでしょうか」
「うん。ひさちゃんは脱がさなかったし」
なんのためらいもなく緋沙子の名前が出たことに驚く。陛下にとって緋沙子はその程度の存在だったのだろうか。そうかもしれない。
「スラックスも脱ぎましょうか」
下半身はスラックスで上半身は下着というのは変な感じだ。
「逆。ワイシャツ着て」
私の仕事着は、ソックスとネクタイ以外はすべてテーラーメイドだ。ワイシャツは、防刃防弾チョッキを下に着た状態に合わせてできている。下着の上に着ると、胸回りが余って気持ちが悪い。胸の線が無防備に出てしまうのも気になる。心なしか陛下の視線も、胸のあたりに向いているような気がする。
「お膝を拝借します」
横になり、陛下のお膝に頭を乗せる。
「さーて、ひかるちゃんに質問。これは、なんでしょう?」
目の前に、竹の耳掻きが差し出された。
「耳掻きのように見えます」
「それじゃ見たまんまでしょ? 空想して。お話して」
「昔むかしあるところに、でしょうか?」
「そんなんじゃなくて。
これを、ひかるちゃんの傷つきやすいところに、ふかーく差し込んで、かきまわすんだよ?」
そのお言葉に、さまざまな感情が同時にあふれてきて、胸がいっぱいになった。
羞恥――他愛ないと頭ではわかっていても、気持ちは止められない。反発――男性器の隠喩が私を苛立たせた。それは安易に強力で、微妙なニュアンスを吹き飛ばしてしまう。期待――私の身体を、短いあいだのほんの一部とはいえ、陛下の御手にすっかり委ねてしまう、その快楽に。
そして、違和感。
私は陛下にこんなことを求めているのだろうか。というより、私が陛下に捧げるべきことは、こんなことなのだろうか。
もう決心を固めたから、そう感じるのかもしれない――いや、と思い直す。私は確かに、ずっと悔やんでいた。自分のいるべき場所、果たすべき役割を踏み越えてしまった、あの瞬間から、ずっと。
悔やんでいる。けれど知っている。それは避けられなかった。
「では、これは、小さな孫の手でございます。私はおばあちゃんで、陸子さまは私の孫」
「なにそれ、おばあちゃんと孫娘なんて、マニアックすぎ。ついてけなーい。
あーもうなんでもいいから、しちゃえ」
陛下は私の耳を押さえて、耳掻きを差し込んでくださった。身体が小さく震えるのをこらえる。
「ひかるちゃん、えっちな顔してる」
横を向いている私は、陛下のお顔をうかがうことができない。見るかわりに、思い浮かべる。陛下の、少し嗜虐的な、まぶたの重そうなお顔を。
Continue