[groonga-dev,00924] Re: select count(*) で正しい件数がとれない

Back to archive index

Jun Nishikawa topaz****@m0n0m*****
2012年 6月 5日 (火) 00:44:58 JST


西川です。

すいません。再現手順に漏れがあったみたいです。

query cache が 有効な状態で、
start transaction;
の直後に
select max(id) from test for update;
を発行すると発症するようです。

その状態に陥ると drop table しても
mysql を再起動しても同じ症状になるようです。

試しに『query_cache_size=0』にしてみて
mysql を再起動してみたら症状が出なくなりました。

よろしくお願いします。

2012年6月4日 19:47 Kouhei Sutou <kou****@clear*****>:
> 須藤です。
>
> In <CABp+****@mail*****>
>  "[groonga-dev,00916] select count(*) で正しい件数がとれない" on Sun, 3 Jun 2012 13:59:39 +0900,
>  Jun Nishikawa <topaz****@m0n0m*****> wrote:
>
>> mroonga 導入の為検証をしているのですが、
>> 特定の条件で select count(*) の値が必ずずれます。
>>
>> この現象は下記チケットが close すれば治るという理解でよろしいでしょうか?
>> http://redmine.groonga.org/issues/1318
>
> あ、いえ、このチケットの問題は修正済みです。
> (私が変更の詳細をまだ確認していないのでcloseになっていない
> だけです。)
>
>> 環境は以下の通りです。
>> $ facter lsbdistdescription
>> Ubuntu 12.04 LTS
>> $ aptitude show mysql-server-mroonga mysql-server | grep Version
>> Version: 2.03-1
>> Version: 5.5.22-0ubuntu1
>> 以下、再現手順です。
>
> ありがとうございます!
> chroot環境下ですが、試してみました!
> が、再現しませんでした。。。
>
>  # facter lsbdistdescription
>  Ubuntu 12.04 LTS
>  # LANG=C aptitude show mysql-server-mroonga mysql-server | grep Version
>  Version: 2.03-1
>  Version: 5.5.22-0ubuntu1
>
> terminal 1:
>
>  mysql> CREATE TABLE `test` (   `id` int(11) NOT NULL,   `culture` varchar(7) COLLATE utf8_unicode_ci NOT NULL,   `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,   `description` text COLLATE utf8_unicode_ci,   `tags` text COLLATE utf8_unicode_ci,   PRIMARY KEY (`id`,`culture`) USING BTREE,   FULLTEXT KEY `name_description` (`name`,`description`),   FULLTEXT KEY `tags` (`tags`) ) ENGINE=mroonga DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='engine "innodb"';
>  Query OK, 0 rows affected, 2 warnings (0.43 sec)
>
>  mysql> insert into test values (1, 'ja', 'ワンピース', '1巻', 'ワンピース');
>  Query OK, 1 row affected (0.06 sec)
>
>  mysql> insert into test values (1, 'en', 'One Piece', 'Volume 1', 'Manga');
>  Query OK, 1 row affected (0.05 sec)
>
> terminal 2:
>
>  mysql> start transaction;
>  Query OK, 0 rows affected (0.00 sec)
>
>  mysql> insert into test values (2, 'ja', 'ワンピース', '2巻', 'ワンピース');
>  Query OK, 1 row affected (0.00 sec)
>
> terminal 1:
>
>  mysql> select count(*) from test WHERE culture='ja' AND MATCH (test.TAGS) AGAINST ('+ワンピース' IN BOOLEAN MODE) AND MATCH (test.NAME, test.DESCRIPTION) AGAINST ('+ ワンピース' IN BOOLEAN MODE);
>  +----------+
>  | count(*) |
>  +----------+
>  |        1 |
>  +----------+
>  1 row in set (0.02 sec)
>
> terminal 2:
>
>  mysql> commit;
>  Query OK, 0 rows affected (0.04 sec)
>
> terminal 1:
>
>  mysql> select count(*) from test WHERE culture='ja' AND MATCH (test.TAGS) AGAINST ('+ワンピース' IN BOOLEAN MODE) AND MATCH (test.NAME, test.DESCRIPTION) AGAINST ('+ワンピース' IN BOOLEAN MODE);
>  +----------+
>  | count(*) |
>  +----------+
>  |        2 |
>  +----------+
>  1 row in set (0.00 sec)
>
>  mysql> select * from test;
>  +----+---------+-----------------+-------------+-----------------+
>  | id | culture | name            | description | tags            |
>  +----+---------+-----------------+-------------+-----------------+
>  |  1 | en      | One Piece       | Volume 1    | Manga           |
>  |  1 | ja      | ワンピース      | 1巻         | ワンピース      |
>  |  2 | ja      | ワンピース      | 2巻         | ワンピース      |
>  +----+---------+-----------------+-------------+-----------------+
>  3 rows in set (0.00 sec)
>
>
> うーん、何が違うんですかねぇ。。。
> 念のため、MySQLを再起動してみてもらえますか?
>
>
> --
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)
>
> groongaサポート:
>  http://groonga.org/ja/support/
> プログラミングが好きなソフトウェア開発者を募集中:
>  http://www.clear-code.com/recruitment/
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev



-- 
---------------------------------------------------------------------
Jun Nishikawa, CEO
Monomono Co., Ltd.

西川 潤, CEO
合同会社モノモノ

Tel: 090-6155-4271
Mail: topaz****@m0n0m*****
Skype: topaz2.3333
Y!J Messenger: submarine_motor
Twitter: http://twitter.com/topaz2_3333
Corporate Site: http://m0n0m0n0.com/
----------------------------------------------------------------------



groonga-dev メーリングリストの案内
Back to archive index