BloGroonga

2016-03-29

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!