|
From: HAYASHI K. <ha...@cl...> - 2016-03-29 03:05:48
|
Hi, Groonga 6.0.1 has been released! http://groonga.org/docs/news.html#release-6-0-1 Install: http://groonga.org/docs/install.html Charcteristics: http://groonga.org/docs/characteristic.html The topics in this release: * [hash] Supported 4GiB over total key size * Supported to remove dependent tables * [experimental] Supported to split chunks in static indexing This release includes some bug fixes of load command, so upgrade Groonga! ## [hash] Supported 4GiB over total key size In this release, 4GiB over total key size is supported for a hash table. In the previous versions of Groonga, there is a limitation about total key size of a table - 4GiB total key size. Such a limitation is now relaxed. By using KEY_LARGE flag with a table, the value of new limitation of the total key size is changed to 1TiB. Here is the example to use KEY_LARGE flag: table_create Users TABLE_HASH_KEY|KEY_LARGE ShortText As a result, it handles more large table data in a hash table. ## Supported to remove dependent tables In this release, a feature to remove dependent tables is supported for table_remove and logical_table_remove command. In the previous versions of Groonga, removing tables are failed by default when the following conditions are met: * One or more tables use the table as key type. * One or more columns use the table as value type. This is a intended behavior because it is aimed not to remove referenced table unexpectedly by default. On the other hand, it is a bit hard to remove if there are many dependent tables which you want to remove at once. For such a purpose, the feature "--dependent yes" is implemented. Here is the sample schema: table_create ReferencedTable TABLE_HASH_KEY ShortText table_create Table1 TABLE_HASH_KEY ReferencedTable table_create Table2 TABLE_NO_KEY column_create Table2 reference_column COLUMN_SCALAR ReferencedTable When "table_remove ReferencedTable" is executed, it just fails because ReferencedTable is the key of Table1 and referenced from reference_column of Table2. Execute "table_remove ReferencedTable --dependent yes" is executed, Table1 and reference_column of Table2 are removed correctly. NOTE: there is a case that "--dependent yes" consumes a lot of resources if there are many dependent tables because it opens all dependent tables and columns temporary. In such a case, reduce the max number of threads by "thread_limit 1" command. ## [experimental] Supported to split chunks in static indexing In this release, splitting chunks in static indexing are supported. It is aimed to achieve fast phrase search when frequently used word and rarely used word are specified at the same time. To enable this feature, set the following environment variable and execute offline index construction: GRN_INDEX_CHUNK_SPLIT_ENABLE=1 And enable the following environment variable: GRN_II_CURSOR_SET_MIN_ENABLE=1 This feature is disabled by default because it is not widely tested yet, but it is verified to improve phrase search performance in a test case which is described above. ## Improvements * [mruby] Updated bundled mruby to fix a crash bug related to GC and backtrace. * Exported the following API * grn_expr_take_obj() * grn_request_canceler_cancel_all() * grn_obj_remove_dependent() * grn_obj_is_text_family_type() * [hash] Supported 4GiB over total key size when KEY_LARGE flag is set to a table: * table_create Users TABLE_HASH_KEY|KEY_LARGE ShortText * [load] Support request ID with raw JSON input case: POST /d/load?table=XXX&request_id=x and load --table XXX --request_id x [ ... ] * [shutdown] Added mode argument to shutdown immediately. Use "shutdown --mode immediate" in such a purpose. * [Mac OS X] Added a instruction to setup MeCab dictionary for Homebrew. * [load] Supported to stop load when cancel is requested. * [table_remove] Supported to remove dependent tables. Use "--dependent yes" for it. * [logical_table_remove] Supported to remove dependent tables. * [Windows] Supported memory debug mode on Windows. * Supported to dump allocation information by status on memory debug mode * [I18N] Added installation step for Sphinx. * [experimental] Supported to split chunks in static indexing. Use GRN_INDEX_CHUNK_SPLIT_ENABLE=yes to enable it. [GitHub#479] ## Fixes * [load] Fixed a crash bug when nonexistent column is specified. [GitHub#493] * [load] Fixed a bug that load command does not return error code correctly. [GitHub#495] * [load] Fixed a memory leak when parsing columns parameter in load command. * [load] Fixed a bug that only the first array in --values is handled as a list of column names if --columns is not specified. [GitHub#497] * [load] Fixed to check --columns more precisely [GitHub#496] * Fixed a insufficient critical section handling for thread-safety. * [column_create] Fixed a crash bug when failed to create a column. * [table_remove] Fixed a crash bug to remove nonexistent table. [GitHub#504] * Fixed a bug that offline index construction against WITH_POSITION + non-text VECTOR column ignores position. * [grndb] Fixed a bug that cycle reference causes stack over flow. * [deb] Dropped support for Ubuntu 15.04 (Vivid Vervet) ## Thanks * YUKI Hiroshi -- HAYASHI Kentaro <ha...@cl...> |