<div dir="ltr">堀本さん<div><br></div><div>お世話になっております。宮下です。</div><div>教えていただき、ありがとうございます!</div><div><br></div><div>「サポート」の意味はお察しの通りです。表現が間違っていましたorz</div><div>今後はその方法での運用を検討したいと思います!</div><div><br></div><div>エラーの件ですが、t1テーブルのインデックス(t1#ftx4)ではなくて、t1テーブルが影響するんですね。。。</div><div>ラッパーモードなのでてっきりt1テーブルのインデックス(t1#ftx4)が影響するのかと思っていましたorz</div><div><br></div><div>さらに、Groonga, Mroongaを調べたいと思います!</div><div>ありがとうございましたm(_ _)m</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017年10月4日 13:19 Horimoto Yasuhiro <span dir="ltr"><<a href="mailto:horim****@clear*****" target="_blank">horim****@clear*****</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">宮下さん<br>
<br>
こんにちは。堀本です。<br>
<br>
<br>
ご質問の「これがサポートされる方法なのか?」については、「<wbr>サポート」というのが、「正常に動作する」という意味であれば、<br>
宮下さんが実施した対策で、正常に動作します。<br>
<br>
「さらに良い方法はないか?」についてですが、こちらは、<wbr>Mroongaからテーブルを作成する際に、現状、KEY_<wbr>LARGEを指定する方法がないので、KEY_<wbr>LARGEを指定できるようにしてみます。<br>
<br>
また、「インデックステーブルは「TABLE_PAT_KEY」<wbr>で作成されているのに、なぜエラーログには「[hash]」<wbr>と出力されるのか?」ですが、こちらは、<wbr>キーサイズが制限を超えたテーブルが「TABLE_HASH_<wbr>KEY」で作成されているt1テーブルだからだと思います。<br>
<br>
このエラーログは、<wbr>t1テーブルにたくさんのレコードを挿入した結果、<wbr>t1テーブルのキーサイズが増加していき、<wbr>4GBを超えてしまったために発生したエラーログです。<wbr>t1テーブルは「TABLE_HASH_KEY」<wbr>で作成されているので、ログには「[hash]」<wbr>と出力されます。<br>
<br>
<br>
以上です。失礼いたします。<br>
<span class=""><br>
On 2017年10月02日 13:25, Masanori Miyashita wrote:<br>
> いつもお世話になっております。宮下と申します。<br>
><br>
> Mroongaにてデータの挿入時およびインデックスをオフライ<wbr>ンで作成するときに<br>
> 以下のエラーがgroonga.logに出力されました。<br>
> この事象について、自分なりの対策を講じたのですが<br>
> ・これがサポートされる方法なのか?<br>
> ・さらに良い方法はないか?(<wbr>Mroonga経由でGroongaにテーブル作成時のflag<wbr>を渡せないか?)<br>
> について、もしご存知であれば教えていただけますと幸いです。<br>
> また、インデックステーブルは「TABLE_PAT_KEY」<wbr>で作成されているのに、なぜエラーログには「[hash]」<wbr>と出力されるのか?<br>
> こちらについても、<wbr>もしご存じでしたら教えていただけますと幸いです。<br>
><br>
> groonga.log:<br>
</span>> |e|af56e700|[hash][key][put] total key size is over: <t1>: max=4294967295 <tel:4294967295>: current=4294966695 <tel:4294966695>: new key size=1179<br>
<span class="">><br>
> 対策:<br>
> 1)mroonga_command('schema')<wbr>を使用して、対象のテーブル作成コマンドを記録<br>
> 2)mroonga_commandを使ってテーブル削除<br>
> 3)1で記録しておいたtable_<wbr>createコマンドの内容に「KEY_LARGE」<wbr>を追加してテーブル作成<br>
> 4)alter table ... disable/enable keysでインデックスを再構築<br>
><br>
><br>
> 以下は詳細を記載しております。必要に応じてご覧ください。<br>
> よろしくお願いいたします。<br>
><br>
><br>
> groonga.log詳細:<br>
</span>> 2017-09-26 01:10:12.221752|e|af56e700|[<wbr>hash][key][put] total key size is over: <t1>: max=4294967295 <tel:4294967295>: current=4294966695 <tel:4294966695>: new key size=1179<br>
<div><div class="h5">> 2017-09-26 01:10:12.366788|e|af56e700|/<wbr>usr/loca/groonga/lib/<wbr>libgroonga.so.0(+0x222f81) [0x7fba3c822f81]<br>
> 2017-09-26 01:10:12.366849|e|af56e700|/<wbr>usr/loca/groonga/lib/<wbr>libgroonga.so.0(+0x223549) [0x7fba3c823549]<br>
> 2017-09-26 01:10:12.366872|e|af56e700|/<wbr>usr/loca/groonga/lib/<wbr>libgroonga.so.0(+0x225a2a) [0x7fba3c825a2a]<br>
> 2017-09-26 01:10:12.366882|e|af56e700|/<wbr>usr/loca/groonga/lib/<wbr>libgroonga.so.0(grn_hash_add+<wbr>0x974) [0x7fba3c826523]<br>
> 2017-09-26 01:10:12.366890|e|af56e700|/<wbr>usr/loca/groonga/lib/<wbr>libgroonga.so.0(grn_table_add+<wbr>0x7f9) [0x7fba3c6cb9d9]<br>
> 2017-09-26 01:10:12.366898|e|af56e700|/<wbr>usr/local/mysql/lib/plugin/ha_<wbr>mroonga.so(_ZN10ha_<wbr>mroonga23wrapper_write_row_<wbr>indexEPh+0x3a6) [0x7fb9fb5b3e34]<br>
> 2017-09-26 01:10:12.366907|e|af56e700|/<wbr>usr/local/mysql/lib/plugin/ha_<wbr>mroonga.so(_ZN10ha_<wbr>mroonga17wrapper_write_rowEPh+<wbr>0x25a) [0x7fb9fb5b3a5e]<br>
> 2017-09-26 01:10:12.366915|e|af56e700|/<wbr>usr/local/mysql/lib/plugin/ha_<wbr>mroonga.so(_ZN10ha_<wbr>mroonga9write_rowEPh+0xbd) [0x7fb9fb5b674f]<br>
> 2017-09-26 01:10:12.366923|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>ZN7handler12ha_write_rowEPh+<wbr>0x15d) [0x64e23d]<br>
> 2017-09-26 01:10:12.366931|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z12write_<wbr>recordP3THDP5TABLEP9COPY_<wbr>INFOS4_+0xc13) [0x7c3c6d]<br>
> 2017-09-26 01:10:12.366939|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z12mysql_insertP3THDP10TABLE_<wbr>LISTR4ListI4ItemERS3_IS5_ES6_<wbr>S6_15enum_duplicatesb+0x1006) [0x7c1a74]<br>
> 2017-09-26 01:10:12.366947|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z21mysql_execute_commandP3THD+<wbr>0x2e19) [0x7e48b9]<br>
> 2017-09-26 01:10:12.366955|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z11mysql_<wbr>parseP3THDPcjP12Parser_state+<wbr>0x428) [0x7ec536]<br>
> 2017-09-26 01:10:12.366963|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z16dispatch_command19enum_<wbr>server_commandP3THDPcj+0xc94) [0x7df6e8]<br>
> 2017-09-26 01:10:12.366971|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z10do_commandP3THD+0x340) [0x7de812]<br>
> 2017-09-26 01:10:12.366979|e|af56e700|/<wbr>usr/local/mysql/bin/mysqld(_<wbr>Z24do_handle_one_<wbr>connectionP3THD+0x1be) [0x7a57ed]<br>
><br>
> 発生状況:<br>
> 対象のテーブルに対して総ファイルサイズ870MB(<wbr>420万行)のデータを10万行ずつに分けてbulk insertしたところ<br>
> 740MB~760MBあたり(360万行~370万行)<wbr>でstdout or stderrに以下が出力された。併せて、groonga.<wbr>logに上記エラーが出力された。<br>
> ※順不同。実際には同じ内容が連続して出力されていた。<br>
> ---<br>
> Warning (Code 1026): failed to add a new record into groonga: key=<&><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<'><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<L><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<V><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<[><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<]><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<c><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<f><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<m><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<q><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<�<br>
>><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ヲ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ヲ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ェ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ォ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ョ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ケ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ニ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ノ<br>
>><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ヤ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ヨ><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<ン><br>
> Warning (Code 1026): failed to add a new record into groonga: key=<゙><br>
><br>
> ---<br>
><br>
> 影響:<br>
> 上記エラー移行にインデックス作成の対象とされた行については、<wbr>インデックスが正常に作成されていない可能性がある。<br>
><br>
> システム環境:<br>
> CentOS6.5, MySQL-5.6.17, Groonga-7.0.5, Mroonga-7.05<br>
><br>
> テーブル定義(ラッパーモード):<br>
> CREATE TABLE `t1` (<br>
> `col1` int(11) NOT NULL,<br>
> `col2` varchar(64) NOT NULL DEFAULT '',<br>
> `col3` varchar(64) NOT NULL DEFAULT '',<br>
> `col4` int(11) NOT NULL,<br>
> `col5` bigint(20) NOT NULL,<br>
> `col6` varchar(255) NOT NULL DEFAULT '',<br>
> `col7` bigint(20) NOT NULL,<br>
> `col8` varchar(255) DEFAULT NULL,<br>
> `col9` datetime DEFAULT NULL,<br>
> `col10` datetime DEFAULT NULL,<br>
> PRIMARY KEY (`col1`,`col2`,`col3`,`col4`,`<wbr>col5`,`col6`,`col7`),<br>
> KEY `btr1` (`col1`,`col2`,`col3`,`col8`,`<wbr>col7`),<br>
> KEY `btr2` (`col1`,`col2`,`col3`,`col4`,`<wbr>col8`,`col7`),<br>
> KEY `btr3` (`col1`,`col2`,`col7`,`col5`),<br>
> FULLTEXT KEY `ftx4` (`col8`)<br>
> ) ENGINE=Mroonga DEFAULT CHARSET=utf8 COMMENT='engine "InnoDB" テスト用テーブル'<br>
><br>
><br>
> テーブルリスト:<br>
> mroonga_command('table_list --output_pretty yes'): [<br>
> [<br>
> ---省略---<br>
> ],<br>
> [<br>
> 256,<br>
> "mroonga_operations",<br>
</div></div>> "d1.mrn.0000100 <tel:0000100>",<br>
<span class="">> "TABLE_NO_KEY|PERSISTENT",<br>
> null,<br>
> null,<br>
> null,<br>
> null<br>
> ],<br>
> [<br>
> 265,<br>
> "t1",<br>
</span>> "d1.mrn.0000109 <tel:0000109>",<br>
<div><div class="h5">> "TABLE_HASH_KEY|KEY_LARGE|<wbr>PERSISTENT", ←「KEY_LARGE」は自分で追加しました。<br>
> "ShortText",<br>
> null,<br>
> null,<br>
> null<br>
> ],<br>
> [<br>
> 266,<br>
> "t1#ftx4",<br>
> "d1.mrn.000010A",<br>
> "TABLE_PAT_KEY|PERSISTENT",<br>
> "ShortText",<br>
> null,<br>
> "TokenBigram",<br>
> "NormalizerMySQLGeneralCI"<br>
> ]<br>
> ]<br>
><br>
> カラムリスト1:<br>
> mroonga_command('column_list t1 --output_pretty yes'): [<br>
> [<br>
> ---省略---<br>
> ],<br>
> [<br>
> 265,<br>
> "_key",<br>
> "",<br>
> "",<br>
> "COLUMN_SCALAR",<br>
> "t1",<br>
> "ShortText",<br>
> [<br>
> ]<br>
> ]<br>
> ]<br>
><br>
> カラムリスト2:<br>
> mroonga_command('column_list t1#ftx4 --output_pretty yes'): [<br>
> [<br>
> ---略---<br>
> ],<br>
> [<br>
> 266,<br>
> "_key",<br>
> "",<br>
> "",<br>
> "COLUMN_SCALAR",<br>
> "t1#ftx4",<br>
> "ShortText",<br>
> [<br>
> ]<br>
> ],<br>
> [<br>
> 267,<br>
> "index",<br>
> "d1.mrn.000010B",<br>
> "index",<br>
> "COLUMN_INDEX|WITH_POSITION|<wbr>PERSISTENT",<br>
> "t1#ftx4",<br>
> "t1",<br>
> [<br>
> ]<br>
> ]<br>
> ]<br>
><br>
> insertファイル:<br>
> 内容:insert(bulk)文<br>
> 容量:それぞれ11MB~35MB、計870MB<br>
> 行数:各10万行、計420万行弱<br>
><br>
> 主なmrnファイル:※()内はサフィックス<br>
</div></div>> ・d1.mrn.0000109 <tel:0000109>(.001, .002, .003, 004):計4.8GB<br>
<span class="">> ・d1.mrn.000010A:12MB<br>
> ・d1.mrn.000010B(.C):490MB<br>
><br>
> ibdファイル:<br>
> ・t1.ibd:4GB ※B-Treeインデックスでかなり増加してます。<br>
><br>
> フルテキストインデックス作成対象のカラムサイズ:<br>
> ・420万行(全体):420MB<br>
> ・360万行(エラー発生付近):350MB<br>
><br>
><br>
> 以上<br>
><br>
><br>
><br>
</span>> ______________________________<wbr>_________________<br>
> groonga-dev mailing list<br>
> <a href="mailto:groon****@lists*****">groon****@lists*****</a><br>
> <a href="https://lists.osdn.me/mailman/listinfo/groonga-dev" rel="noreferrer" target="_blank">https://lists.osdn.me/mailman/<wbr>listinfo/groonga-dev</a><br>
><br>
<br>
______________________________<wbr>_________________<br>
groonga-dev mailing list<br>
<a href="mailto:groon****@lists*****">groon****@lists*****</a><br>
<a href="https://lists.osdn.me/mailman/listinfo/groonga-dev" rel="noreferrer" target="_blank">https://lists.osdn.me/mailman/<wbr>listinfo/groonga-dev</a><br>
</blockquote></div><br></div>