«前の日(03-24) 最新 次の日(03-26)» 追記

ぱぱネット(仮)


2009-03-25 久々にやっちまった

_ [料理] 途中まではカレーのはずだったんだ!

ところが。

なぜ2箱ある

\(^o^)/

なんで同じものが2箱あるんじゃ! 一箱はカレーだったはずなのに。どこでどう間違えたのやら。

仕方ないので

仕方ないのでポークシチューにしました・・・シチューは鳥の方が好きなんだけどなあ。

_ [時事] アイマス持っててもさすがにこれは・・・

【オタ商法】三井住友アイマスVISAカードの特典がやばい 。読んだら本当にヤバかった!なんだこれは。

本日のツッコミ(全2件) [ツッコミを入れる]

_ 通りすがり [三井住友VISAのこのシステムって、リボ払いの金額が上限いっぱいまで増やせるので事実上の一括払いで、ポイント高いから..]

_  [そーなんだwww勉強になります。]


2010-03-25 Tokyo Cabinet / Tyrantで遊ぶ(4)

_ [開発][Linux] Tokyo Cabinet / Tyrantで遊ぶ(4)

TC/TTの勉強がてら、2chの過去ログ検索システム(1投稿毎)を作るつもりだったのに、 なんかメチャクチャハマっとるぱぱんだです。こんにちは。

とにかく Q-GRAMの登録処理が遅い というのが前回までのあらすじ。 現象面からの洞察や、仕様書に書いてある最適化はやり尽くした感があるので、 もうソースを読むしかない。

_ [開発][Linux] モコモコ穴堀り

手打ちプロファイルにより、*.qgrファイルを更新する関数を調べる。 tctdbput()->tctdbidxputqgram()->tctdbidxsyncicc()と処理を追っていと...

tctdbidxsyncicc()関数内の

for(int i = 0; i < knum; i++){
   ...
   const char *vbuf = tcmapget(cc, kbuf, ksiz, &vsiz); //*T1
   if(vsiz > 0 && !tcbdbputcat(db, kbuf, ksiz, vbuf, vsiz)) //*T2
   tcmapout(cc, kbuf, ksiz); //*T3
 }

で時間の大半を消費していた。どうもQ-GRAMインデックス(を格納するB+木)を ディスクにフラッシュする部分のようだ。上記の関数のそれぞれの実行時間の合計を 洗い出すと、特にtcbdbputcat()の処理時間が多い。手持ちの2chのdatだと 18万件登録する頃には、もう 1投稿処理するのに1秒超えてしまう ....使い物にならない。

DELAY: tctdbput() = 1 . 178601
       t1 = 0 . 10234
       t2 = 1 . 137749
       t3 = 0 . 13995
       t4 = 0 . 0

でも、これが全キーワードの追加時に1秒超えるのではなくて、極々 特定のキーワードのみ のようなんですよ...... なんかピンときた ので、 スクリプトdumpbtree.plを作った。 これはB+木の、各キーワードと、キーワードごとの値の長さ (この場合は転置インデックスのバイナリが入っているのでバイト長)をダンプする。出力を

$ perl dumpbtree.pl test.tct.idx.6.qgr > qgram1
$ sort -n < qgram1 > qgram2
$ tail qgram2

とかするとバイト長のランキングがとれるわけだ。

304128 います
390504 た。
398256 した。
432816 ました
437760 です。
443232 ます。
758688 す。
2399688 。

「。」自重(笑)

えー?!句読点や記号を 正規化の段階で省かない のか....んーmikio wareがそんな基本を 忘れるはずがないので、たぶん検索精度か何かの問題でわざと入れてるだろう。

B+木はキーでサーチしたリーフにどんどん値をコンバインできるのだが、 いくらなんでもこれが入ったらまずかろう。今までのリーフ内メンバ数の調整なんて、こいつがメモリキャッシュに入ってきたら全部オジャンじゃん.....しかも書き足したら書き出す必要がある=ディスクにアクセスする、という悪循環。

尚、「。」を含めた上位100傑を取り除いた全体の分布はこうなる。 横軸が単語ごと、縦軸がバイト長(ソート済み)ね。壮絶に偏るなあ...

すごい偏りワロタ

別に2ちゃんねるの文章が飛び抜けて特殊なわけではなく、対象文章がちょっと多ければ、いずれ同じ問題にブチ当たると思う。つまり現状のTCのQ-GRAMは、本当に個人ブログの文章のみなど、文字の組み合わせが少ない場合にしか使えないということだね。

まあ、たぶん.....掲示板などの文字の組み合わせが膨大になる場合は Tokyo Distopiaつかえってことだな。 でもこれ、ツンツン過ぎて俺のような素人には辛いぞ!


2011-03-25 Debian様の高潔主義

_ [Linux] Debian Squeezeにしたら古いIntel PRO/100カードが使えなくなった

会社で長らく使っていたファイルサーバのHDDが部分的にお亡くなりに。バックアップを探し出すのが重労働だった。ついでなので、 Debian etchからDebian squeezeに変えたわけですが..... Intel NICが通信できなくなった。 ifconfigコマンドでMACアドレスまではとれてくるのだが、 実際の通信ができないので、しばらく首を傾げていた。

調べてみると、 いつの頃からかDebianのポリシーにしたがって、 カーネルドライバが読み込むファームウェアまで別パッケージに分離しちゃった らしいんだ。そこまで高潔にしなくてもいいのに。つーか不便だよ!

# apt-get install linux-firmware-nonfree

でOK。嘘のように動き出したナニコレ。 せめてカーネルパッケージのdependsには入れておいてほしかった....

_ [Linux] おまけ:apt-getのGPG errorの修正

最初は平気だったのに、何かの過程で壊してしまったのか、 apt-getを実行するたびに以下のようなエラーが。

W: GPG error: http://ftp.jp.debian.org squeeze Release:
公開鍵を利用できないため、以下の署名は検証できませんでした:
NO_PUBKEY AED4B06F473041FA

しょうがないので こちらの方 の言うとおりキーリングを上書きして修正。

# aptitude download debian-archive-keyring
# dpkg --force-depends -i debian-archive-keyring_2010.08.28_all.deb

疲れた。


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2007年
3月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(11777+2560143)