Groonga 6.0.1 has been released
Groonga 6.0.1 has been released!
How to install: Install
Changes
Here are three 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 we recommend to 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. If command fails, reduce the max number of threads by "thread_limit 1" command as a workaround.
[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.
Conclusion
Please refer to Release 6.0.1 2016-03-29 about detailed changes since 6.0.0.
Let's search by Groonga!