From a @ razil.jp Fri Jul 21 19:30:05 2006
From: a @ razil.jp (Tasuku SUENAGA)
Date: Fri, 21 Jul 2006 19:30:05 +0900
Subject: [Senna-dev 246] =?iso-2022-jp?b?R1JFRRskQiRLJGgkayVRJUMlQSQsGyhC?=
=?iso-2022-jp?b?GyRCPGgkajl+JF4kbCReJDckPxsoQg==?=
Message-ID: <20060721192024.1100.A@razil.jp>
未来検索ブラジルの末永です。
revision 191にて、
GREEの小泉さんが作成したパッチが
Senna本体に取り込まれました。
小泉さん、ありがとうございます!!
このパッチによって、
インデックスの形式をCREATE TABLEの際に
選んだりすることができます。
詳しくは、
http://labs.gree.jp/opensource/mysql_senna.html
をごらんください。
今はMySQL 4.0.26(27)用のパッチのみ用意されています。
順次4.1用、5.0用のパッチを用意していく予定です。
なお、このパッチの取り込みに伴って、
Sennaを組み込んだMySQLの構築手順が大きく変わっております。
今までは、
パッチを当てたMySQLのディレクトリにて
autoconfを実行したあとにconfigure, makeを行っていました。
今回からは、以下の手順を行ったあとに、
configure, makeを行ってください。
% libtoolize -c -f
% aclocal
% autoheader
% automake -c -a -i
% autoconf
なお、最近のリビジョンでは、
さまざまなプラットフォーム上にて動作確認を進めております。
非Linux環境であるWindowsやMac OS Xでの安定性も向上しています。
--
末永 匡
(有)未来検索ブラジル http://razil.jp/
●検索のことならSennaにお任せください→ http://qwik.jp/senna/
●ネットでの少額決済ならモリタポで→ http://moritapo.jp/
From a @ razil.jp Wed Jul 26 16:34:00 2006
From: a @ razil.jp (Tasuku SUENAGA)
Date: Wed, 26 Jul 2006 16:34:00 +0900
Subject: [Senna-dev 247] =?iso-2022-jp?b?TXlTUUwbJEIlUCUkJXMlRyUjJXMbKEI=?=
=?iso-2022-jp?b?GyRCJTAkcjYvMj0kNyReJDckPxsoQihHUkVFGyRCJVElQyVBGyhCLCBi?=
=?iso-2022-jp?b?dWcgZml4KQ==?=
Message-ID: <20060726163247.22A5.A@razil.jp>
未来検索ブラジルの末永です。
revision 202にて、MySQLバインディングを以下のように強化しました。
1. MySQL各バージョンにGREEパッチを反映
GREEの小泉さんが作成したパッチを、
MySQL 4.0.27, 4.1.20, 5.0.22, 5.1.11-beta の各バージョンに対応させました。
なお、構築・使用方法は、
http://labs.gree.jp/opensource/mysql_senna.html
に記述されている通りですが、以下の点が異なります。
1.1. デフォルトの動作
インデックス作成時にUSINGを指定しない場合は、
正規化つきでsenna(mecab)のインデックスを作成します。
(例1) 正規化機能つきで、単語(mecab)インデックスを作成する場合
CREATE INDEX test (
id INTEGER AUTO_INCREMENT,
PRIMARY KEY (id),
text TEXT NOT NULL,
FULLTEXT INDEX (text)
);
(例2) MySQLの素のfulltext indexを作成する場合
CREATE INDEX test (
id INTEGER AUTO_INCREMENT,
PRIMARY KEY (id),
text TEXT NOT NULL,
FULLTEXT INDEX USING NO SENNA (text)
);
(例3) 正規化なしでNGRAMインデックスを作成する場合
CREATE INDEX test (
id INTEGER AUTO_INCREMENT,
PRIMARY KEY (id),
text TEXT NOT NULL,
FULLTEXT INDEX USING SENNA, NO NORMALIZE, NGRAM (text)
);
1.2. DELIMITED指定
NGRAMインデックス、単語インデックス以外に、空白で区切られた文字列単位で
インデックスを作成することができるようになりました。
(例4) DELIMITEDインデックスを作成する場合
CREATE INDEX test (
id INTEGER AUTO_INCREMENT,
PRIMARY KEY (id),
text TEXT NOT NULL,
FULLTEXT INDEX USING DELIMITED (text)
);
1.3. INITIAL_N_SEGMENTS指定
INITIAL_N_SEGMENTS(インデックスバッファ領域の初期値)をインデックス作成時に
指定できるようになりました。
(例5) INITIAL_N_SEGMENTS=2048でインデックスを作成する場合
CREATE INDEX test (
id INTEGER AUTO_INCREMENT,
PRIMARY KEY (id),
text TEXT NOT NULL,
FULLTEXT INDEX USING SENNA, 2048 (text)
);
なお、前回のメール[Senna-dev 246]では、
---
今回からは、以下の手順を行ったあとに、
configure, makeを行ってください。
% libtoolize -c -f
% aclocal
% autoheader
% automake -c -a -i
% autoconf
---
と記載いたしましたが、
configureに--with-sennaオプションを
追加しなければならない点を追記します。
2. DISTINCT問題の解消
[Senna-dev 237]で立松さんに御指摘を受けていた問題を修正しました。
--
末永 匡
(有)未来検索ブラジル http://razil.jp/
●検索のことならSennaにお任せください→ http://qwik.jp/senna/
●ネットでの少額決済ならモリタポで→ http://moritapo.jp/
From ml @ ryne.jp Mon Jul 31 00:53:37 2006
From: ml @ ryne.jp (=?UTF-8?B?5bO25p2RIOWEquWkqumDjg==?=)
Date: Mon, 31 Jul 2006 00:53:37 +0900
Subject: [Senna-dev 248] =?utf-8?b?U2VubmHjgqTjg7Pjg4fjg4Pjgq/jgrnnoLQ=?=
=?utf-8?b?5pCN44Gr44Gk44GE44Gm?=
Message-ID: <14231E6C-4B41-4587-A08F-3E146ED191A6@ryne.jp>
島村です。
先日MySQLがクラッシュしました。
環境は以下の通りです。
OS : FreeBSD 6.0-RELEASE-p7 i386(uname -mrs)
MySQL : 4.0.26
Senna : 5/11時点のlatest-svn(revわからないです。。) + 2ind
Patch
Index: SEN_INDEX_NGRAM
クラッシュの原因はメモリ不足によるものでした。
5/11以降、メモリ不足で8度再起動がかかっています。
8度目の時(7/7)に、テーブル(Sennaインデックス未使
用、300MB弱 約100万レコード)が破損、
REPAIRで修復しました。
これは何も問題もなく終了しました。
今回再起動が起こったときに破損したテーブルは
500KB弱 / 5000レコードで、varchar(50)に一つFULLTEXTを
張っています。
動作が挙動不審になった時に.errを見たところ、
Can't open file: '[table].MYI'. (errno: 145)
が大量に出現していました。
5回ほどcore dumpもしていたようです。
今回も前回同様ただのテーブルの破損と思い、REPAIR
で対処しようと思いました。
しかし、REPAIRを叩いたところエラー無しでコマンド
が終了しました。
と、同時にログから1秒に20~30行は出力されていた
Can't〜が出てこなくなり、
ちょこちょこと
/usr/local/libexec/mysqld: Got error 134 from table handler
が代わりに出力されだしました。
ちょこちょこの頻度がそこそこだったので検索が悪
いのかな、と思い
見当するテーブルでMATCH()してみたところ見事にエ
ラー、
なのでSennaのインデックスをDROP -> ALTERしてみたとこ
ろぴったりと止みました。
残念ながら、テンパっていて
Sennaの動作ログは取っていませんでした。。
前置きが長いのですが、
・今回のように破損したSennaインデックスを修復す
る方法は
ALTERでインデックス再構築しかないのでしょうか?
・Sennaのインデックスが破損したところで、
CHECKコマンド等では発見できないのでしょうか?
・REPAIRでエラーなしで終了したのにCan't〜が消える
現象はなんだったのだろうか‥
一番下は原因が未だよくわかっていないのですが、
上記3つについてわかる方がいましたらご回答よろ
しくお願いします。
/* * * * *
AIO/DIOが安定次第、Sennaは
全てLinuxサーバーに移す予定です。
それまではFreeBSDで頑張ろうかと。。
* * * * */
------------------☆
島村 優太郎
ml @ ryne.jp
--群馬--
------------------☆
From a @ razil.jp Mon Jul 31 12:12:32 2006
From: a @ razil.jp (Tasuku SUENAGA)
Date: Mon, 31 Jul 2006 12:12:32 +0900
Subject: [Senna-dev 249] =?iso-2022-jp?b?UmU6IFNlbm5hGyRCJSQlcyVHJUMbKEI=?=
=?iso-2022-jp?b?GyRCJS8lOUdLQjskSyREJCQkRhsoQg==?=
In-Reply-To: <14231E6C-4B41-4587-A08F-3E146ED191A6@ryne.jp>
References: <14231E6C-4B41-4587-A08F-3E146ED191A6@ryne.jp>
Message-ID: <20060731120315.5372.A@razil.jp>
末永です。
>先日MySQLがクラッシュしました。
>環境は以下の通りです。
>
>OS : FreeBSD 6.0-RELEASE-p7 i386(uname -mrs)
>MySQL : 4.0.26
>Senna : 5/11時点のlatest-svn(revわからないです。。) + 2ind
>Patch
>Index: SEN_INDEX_NGRAM
>
>クラッシュの原因はメモリ不足によるものでした。
お使いのSennaのリビジョンはrev118だと思います。
rev.204でIN BOOLEAN MODE利用時のメモリリークのバグが修正されています。
IN BOOLEAN MODEをご利用でしたら、
rev.204以降を利用することによって
メモリ不足の問題が解決されるかもしれません。
> ・今回のように破損したSennaインデックスを修復す
> る方法は
> ALTERでインデックス再構築しかないのでしょうか?
現在のところ、インデックス破損時は
インデックス再構築を行わなければいけません。
> ・Sennaのインデックスが破損したところで、
> CHECKコマンド等では発見できないのでしょうか?
インデックスの破損チェック機能自体は必要だと思うのですが、
開発に手が回っていない状態です。
> ・REPAIRでエラーなしで終了したのにCan't〜が消える
> 現象はなんだったのだろうか‥
きちんと追っていないのですが、
REPAIRの場合、
インデックスは検査なしに再度作成しなおしているのかもしれません。
> /* * * * *
> AIO/DIOが安定次第、Sennaは
> 全てLinuxサーバーに移す予定です。
> それまではFreeBSDで頑張ろうかと。。
> * * * * */
AIO/DIOの安定化は
version 0.9.0系で進めていこうと考えております。
--
末永 匡
(有)未来検索ブラジル http://razil.jp/
●検索のことならSennaにお任せください→ http://qwik.jp/senna/
●ネットでの少額決済ならモリタポで→ http://moritapo.jp/
From ml @ ryne.jp Mon Jul 31 15:56:30 2006
From: ml @ ryne.jp (=?UTF-8?B?5bO25p2RIOWEquWkqumDjg==?=)
Date: Mon, 31 Jul 2006 15:56:30 +0900
Subject: =?UTF-8?Q?Re:_[Senna-dev_249]_Re:_Senna=E3=82=A4=E3=83=B3?=
=?UTF-8?Q?=E3=83=87=E3=83=83=E3=82=AF=E3=82=B9=E7=A0=B4=E6=90=8D?=
=?UTF-8?Q?=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6?=
In-Reply-To: <20060731120315.5372.A@razil.jp>
References: <14231E6C-4B41-4587-A08F-3E146ED191A6@ryne.jp>
<20060731120315.5372.A@razil.jp>
Message-ID:
島村です。
> お使いのSennaのリビジョンはrev118だと思います。
> rev.204でIN BOOLEAN MODE利用時のメモリリークのバグが修正
> されています。
> IN BOOLEAN MODEをご利用でしたら、
> rev.204以降を利用することによって
> メモリ不足の問題が解決されるかもしれません。
了解です。
BOOLEANの使用率が高めなので、4.0.27へのアップグレードも含
め、
入れ直してみようと思います。
> AIO/DIOの安定化は
> version 0.9.0系で進めていこうと考えております。
期待してます。
回答ありがとうございました。
------------------☆
島村 優太郎
ml @ ryne.jp
------------------☆