From ko @ yappo.ne.jp Fri Jul 1 05:23:39 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Fri, 01 Jul 2005 05:23:39 +0900 (JST) Subject: [Senna-dev 100] =?iso-2022-jp?b?UmU6IE15U1FMGyRCJVAlJCVzJUcbKEI=?= =?iso-2022-jp?b?GyRCJSMlcyUwJEdCZ05MJE4lbCUzITwlSSQsJVIlQyVIJDkkayRIGyhC?= =?iso-2022-jp?b?GyRCJC0bKEI=?= In-Reply-To: <20050629045256.GA14369@fracture.net.dhis.org> References: <20050623144446.GB9397@fracture.net.dhis.org> <20050629.041412.74723565.ko@yappo.ne.jp> <20050629045256.GA14369@fracture.net.dhis.org> Message-ID: <20050701.052339.74731074.ko@yappo.ne.jp> 大沢です。 > > SQL_CALC_FOUND_ROWS使っているから大丈夫だろうと思っていたのですが > > よく考えれば全件MYDを読んじゃう処理になるのですね。。。 > > そうなんですよー。 他にも limit 10000,100とかやると10100行の読み込みが発生するようですね。 基本的に select title, comment from sites where match(keywords) against('+key +key2' in boolean mode) limit 100, 10; というようなクエリしか使っていないので、途中の行を読み込むのが無駄だったので 無駄な行の読み込みをスキップするパッチを作ってみました。 結果的にSQL_CALC_FOUND_ROWSも速くなりました。 http://tech.yappo.jp/download/senna/mysql-4.0.24.senna.sen_skipmode_set.diff in boolean modeのみに対応しています。 linux&mysql 4.0.24&senna rev21 での動作は確認できてます。 sen_skipmode_setというMySQLネイティブな関数を追加しており select sen_skipmode_set(1)でスキップモードon select sen_skipmode_set(0)でスキップモードoff となります。 使い方としては select sen_skipmode_set(1); select sql_calc_found_rows title, comment from sites where match(keywords) against('+key +key2' in boolean mode) limit 10000, 100; select sen_skipmode_set(0); select found_rows(); こんな感じです。 where句に他の条件式をつけたり、order by/group by/having等と 一緒に使うとおかしな事になると思います。 > udfにrowidを渡す手があるなら望みがありそうな気がします。 ./myisam/と./sql/の各ソース間でのデータ受け渡し方法を考えていたのですが pthread_key_*を使うのが手っ取り早そうでした。 今回のパッチでも使いました。 --- osawa From morita @ razil.jp Fri Jul 1 16:56:49 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Fri, 1 Jul 2005 16:56:49 +0900 Subject: [Senna-dev 101] =?iso-2022-jp?b?UmU6IE15U1FMGyRCJVAlJCVzJUcbKEI=?= =?iso-2022-jp?b?GyRCJSMlcyUwJEdCZ05MJE4lbCUzITwlSSQsJVIlQyVIGyhC?= =?iso-2022-jp?b?GyRCJDkkayRIJC0bKEI=?= In-Reply-To: <20050701.052339.74731074.ko@yappo.ne.jp> References: <20050623144446.GB9397@fracture.net.dhis.org> <20050629.041412.74723565.ko@yappo.ne.jp> <20050629045256.GA14369@fracture.net.dhis.org> <20050701.052339.74731074.ko@yappo.ne.jp> Message-ID: <20050701075649.GA11124@fracture.net.dhis.org> > 無駄な行の読み込みをスキップするパッチを作ってみました。 > 結果的にSQL_CALC_FOUND_ROWSも速くなりました。 すばらしいハックだと思います!! 汎用化のためにのちのち手を入れるかもですが、早速 rev 27 に取り込ませて頂きました。 > > udfにrowidを渡す手があるなら望みがありそうな気がします。 > > ./myisam/と./sql/の各ソース間でのデータ受け渡し方法を考えていたのですが > pthread_key_*を使うのが手っ取り早そうでした。 > 今回のパッチでも使いました。 参考にさせていただきます。 -- morita From ko @ yappo.ne.jp Fri Jul 1 17:40:13 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Fri, 01 Jul 2005 17:40:13 +0900 (JST) Subject: [Senna-dev 102] =?iso-2022-jp?b?UmU6IE15U1FMGyRCJVAlJCVzJUcbKEI=?= =?iso-2022-jp?b?GyRCJSMlcyUwJEdCZ05MJE4lbCUzITwlSSQsJVIlQyVIJDkkayRIGyhC?= =?iso-2022-jp?b?GyRCJC0bKEI=?= In-Reply-To: <20050701075649.GA11124@fracture.net.dhis.org> References: <20050629045256.GA14369@fracture.net.dhis.org> <20050701.052339.74731074.ko@yappo.ne.jp> <20050701075649.GA11124@fracture.net.dhis.org> Message-ID: <20050701.174013.74747695.ko@yappo.ne.jp> 大沢です。 > 汎用化のためにのちのち手を入れるかもですが、早速 rev 27 に取り込ませて頂きました。 ごめんなさい。 このpatch中のsen_index_createのオプションがrev19のオプションと違う (N-Gramを使用するオプション)になっています。 迂闊でした。。。 御手数ですがsvnのソースを修正して頂けますか。 一応 > http://tech.yappo.jp/download/senna/mysql-4.0.24.senna.sen_skipmode_set.diff こちらのdiffファイルは書き変えました。 --- osawa From morita @ razil.jp Tue Jul 5 13:03:22 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 5 Jul 2005 13:03:22 +0900 Subject: [Senna-dev 103] =?iso-2022-jp?b?TEdQTBskQjBcOVQkPSROQj4bKEI=?= Message-ID: <20050705040322.GA27510@fracture.net.dhis.org> rev28 に上げました。 * 大沢さんの新しいmysqlパッチを取り入れた。 * ライセンスをLGPLに変えた。 * 高度API関数を一通り実装した。 高度APIについては徐々にドキュメントを書いて行きたいと思いますが、 1) 検索結果集合の各種演算(and, or, not, ソート, グループ化..) 2) 段落検索機能 3) 類似文書検索機能 4) 近傍検索機能 などいろいろパワフルになっています。 -- morita From tatemax @ kagoya.net Sat Jul 9 18:33:19 2005 From: tatemax @ kagoya.net (=?ISO-2022-JP?B?GyRCTik+PiEhQDs1VxsoQg==?=) Date: Sat, 09 Jul 2005 18:33:19 +0900 Subject: [Senna-dev 104] =?iso-2022-jp?b?GyRCJVElQyVBRSxNUThlGyhCbXlzcWw=?= =?iso-2022-jp?b?GyRCJCxGMDpuJDckXiQ7JHMbKEI=?= Message-ID: <20050709181753.940E.TATEMAX@kagoya.net> 初めまして。タテマツです。 sennaを使用したく思っていますが導入に苦戦しております。 よろしくお願い致します。 RedHatES3 mysql2.0.24 mecab-0.81 senna kernel 2.4.21-27.0.1.ELsmp SMP HDDはシリアルATAのレイド5構成です。 sennaとmecabのインストールはエラーもなく完了しました。 mysqlで問題が発生致します。以下に手順を・・ patch -p1 < ../senna/bindings/mysql/mysql-4.0.24.senna.diff touch ./Docs/Images/cluster-components-1.txt touch ./Docs/Images/multi-comp-1.txt touch ./Docs/errmsg-table.texi touch ./Docs/cl-errmsg-table.texi aclocal;autoconf;automake ./configure --with-charset=ujis --with-extra-charset=all --with-mysql-user=mysql --prefix=/usr/local/mysql --sysconfdir=/etc make;make install ここまではエラーもなく進みます。 で、/usr/local/mysql/bin/mysql_safe &とするとログに mysqld got signal 11; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will try our best to scrape up some info that will hopefully help diagnose the problem, but since we have already crashed, something is definitely wrong and this may fail. key_buffer_size=16777216 read_buffer_size=131072 max_used_connections=0 max_connections=100 threads_connected=0 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 80383 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd=0x9537b68 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... Bogus stack limit or frame pointer, fp=0xbfff7538, stack_bottom=0x5f656d6f, thread_stack=1 96608, aborting backtrace. Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x685f7075 is invalid pointer thd->thread_id=0 The manual page at http://www.mysql.com/doc/en/Crashing.html contains information that should help you find out what is causing the crash. と出ます。 2回同じことを初めから(ソースのダウンロード、パッチから)行っても同じエ ラーログが出ます。 sennaのパッチを当てずに普通に./configure .. make make install したら問 題は起きません。 以上よろしくお願いいたします。 From morita @ razil.jp Mon Jul 11 11:33:30 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Mon, 11 Jul 2005 11:33:30 +0900 Subject: [Senna-dev 105] =?iso-2022-jp?b?UmU6IBskQiVRJUMlQUUsTVE4ZRsoQm15?= =?iso-2022-jp?b?c3FsGyRCJCxGMDpuJDckXiQ7JHMbKEI=?= In-Reply-To: <20050709181753.940E.TATEMAX@kagoya.net> References: <20050709181753.940E.TATEMAX@kagoya.net> Message-ID: <20050711023330.GA29722@fracture.net.dhis.org> > sennaを使用したく思っていますが導入に苦戦しております。 > よろしくお願い致します。 よろしくおねがいします。 > sennaとmecabのインストールはエラーもなく完了しました。 mecabにはmteパッチを当てていただいてますでしょうか? あとお使いのsennaのrevision番号も教えて下さい。 > ここまではエラーもなく進みます。 > で、/usr/local/mysql/bin/mysql_safe &とするとログに mysql起動と同時に上記のエラーが発生するのでしょうか? それとも起動後何らかの操作を加えた時に発生するのでしょうか? よろしければ my.cnf の内容も拝見したいです。 -- morita From tatemax @ kagoya.net Sat Jul 23 13:54:21 2005 From: tatemax @ kagoya.net (=?ISO-2022-JP?B?GyRCTik+PiEhQDs1VxsoQg==?=) Date: Sat, 23 Jul 2005 13:54:21 +0900 Subject: [Senna-dev 106] =?iso-2022-jp?b?UmU6IBskQiVRJUMlQUUsTVE4ZRsoQm15?= =?iso-2022-jp?b?c3FsGyRCJCxGMDpuJDckXiQ7JHMbKEI=?= In-Reply-To: <20050711023330.GA29722@fracture.net.dhis.org> References: <20050709181753.940E.TATEMAX@kagoya.net> <20050711023330.GA29722@fracture.net.dhis.org> Message-ID: <20050723135017.4F98.TATEMAX@kagoya.net> こんにちは。タテマツです。 無事にmysqlが起動するようになりました。 原因は、既存のDBがおかしかったようです。 とりあえずmysql_insqll_db を行ってDBを消したらOKでした。 現在稼働しているMySQLを上の操作なしに置き換えることは出来ないのでしょう か? 今から待避してあるDBを戻して、動作確認をしてみます。 取り急ぎご報告まで。 > > sennaを使用したく思っていますが導入に苦戦しております。 > > よろしくお願い致します。 > > よろしくおねがいします。 > > > sennaとmecabのインストールはエラーもなく完了しました。 > > mecabにはmteパッチを当てていただいてますでしょうか? > > あとお使いのsennaのrevision番号も教えて下さい。 > > > ここまではエラーもなく進みます。 > > で、/usr/local/mysql/bin/mysql_safe &とするとログに > > mysql起動と同時に上記のエラーが発生するのでしょうか? > それとも起動後何らかの操作を加えた時に発生するのでしょうか?s > > よろしければ my.cnf の内容も拝見したいです。 > > -- > morita > From daisuke @ wafu.ne.jp Mon Jul 25 09:34:48 2005 From: daisuke @ wafu.ne.jp (Daisuke Maki) Date: Mon, 25 Jul 2005 09:34:48 +0900 Subject: [Senna-dev 107] [RFC] Senna-perl Change Message-ID: <42E433A8.7010304@wafu.ne.jp> Senna.pmを書いている牧です。 ここのところ某プロジェクト(Perl DateTime)でXSコードをそれはそれは大量に 書きまして、そのおかげで以前は知らなかったようなXSの使い方を覚えてくるこ とができました。 ついてはその新たに得た知識を元にSenna-perlの裏方に手を入れたいと思いま す。具体的には一番大きな変更としてはこれまでハッシュをbless()したもの だったそれぞれのオブジェクトをスカラーを元にしたいと思います。 自分で $index->{custom_attribute} = $hoge; とかやっていない限り上記の変更はユーザーには直接関係ないとは思われます が、一応確認のためメールを投げておきます。もし問題があるようでしたらこち らまでご一報ください。 --d From daisuke @ wafu.ne.jp Mon Jul 25 11:20:34 2005 From: daisuke @ wafu.ne.jp (Daisuke Maki) Date: Mon, 25 Jul 2005 11:20:34 +0900 Subject: [Senna-dev 108] Re: [RFC] Senna-perl Change In-Reply-To: <42E433A8.7010304@wafu.ne.jp> References: <42E433A8.7010304@wafu.ne.jp> Message-ID: <42E44C72.90004@wafu.ne.jp> ・・・というわけでとりあえずちょこまかと変更したバージョンをsvnに入れて みました。 機能的に変更はありませんが、ちゃんとコンパイルするかどうかチェックしてい ただけると助かります。 --d Daisuke Maki wrote: > Senna.pmを書いている牧です。 > > ここのところ某プロジェクト(Perl DateTime)でXSコードをそれはそれは大量に > 書きまして、そのおかげで以前は知らなかったようなXSの使い方を覚えてくるこ > とができました。 > > ついてはその新たに得た知識を元にSenna-perlの裏方に手を入れたいと思いま > す。具体的には一番大きな変更としてはこれまでハッシュをbless()したもの > だったそれぞれのオブジェクトをスカラーを元にしたいと思います。 > > 自分で > > $index->{custom_attribute} = $hoge; > > とかやっていない限り上記の変更はユーザーには直接関係ないとは思われます > が、一応確認のためメールを投げておきます。もし問題があるようでしたらこち > らまでご一報ください。 > > --d > _______________________________________________ > Senna-dev mailing list > Senna-dev @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/senna-dev >