BloGroonga

2017-04-29

Groonga 7.0.2 has been released

Groonga 7.0.2 has been released!

How to install: Install

This release contains a fix to loose data by reindex command, please upgrade Groonga!

Changes

Here are important changes in this release:

  • Fixed a bug that data is lost by reindex
  • Supported Ubuntu 17.04 (Zesty Zapus)
  • Supported persistent cache
  • Added function to use an existing table as condition patterns.

Fixed a bug that data is lost by reindex

Since Groonga 5.1.0, reindex command is added, but there is a possibility that data is lost by this command.

Here is the sample to reproduce this bug.

> table_create User TABLE_HASH_KEY ShortText
[[0,1490948112.512871,0.004843950271606445],true]
> table_create Comment TABLE_NO_KEY
[[0,1490948112.517823,0.004474639892578125],true]
> column_create Comment user COLUMN_SCALAR User
[[0,1490948112.522444,0.00609898567199707],true]
> column_create User comment COLUMN_INDEX Comment user
[[0,1490948112.528664,0.009341239929199219],true]
> load --table Comment
> [
> {"user":"Mike"}
> ]
[[0,1490948112.538067,0.0004284381866455078],1]

> select User
[[0,1490948112.538533,0.0002899169921875],[[[1],[["_id","UInt32"],["_key","ShortText"],["comment","UInt32"]],[1,"Mike",1]]]]
> select Comment
[[0,1490948112.53886,4.744529724121094e-05],[[[1],[["_id","UInt32"],["user","User"]],[1,"Mike"]]]]

> reindex
[[0,1490948112.538933,0.02556586265563965],true]

> select User
[[0,1490948112.564538,5.91278076171875e-05],[[[0],[["_id","UInt32"],["_key","ShortText"],["comment","UInt32"]]]]]
> select Comment
[[0,1490948112.564621,3.457069396972656e-05],[[[1],[["_id","UInt32"],["user","User"]],[1,""]]]]

In above sample, the data of User table and Comment are lost after execution of reindex command.

Supported Ubuntu 17.04 (Zesty Zapus)

In this release, Ubuntu 17.04 (Zesty Zapus) is supported!

On the other hand, Ubuntu 12.04 reached EOL at April 28, 2017. So, it was dropped from supported platform.

Supported persistent cache

In this release, persistent cache feature is supported.

The cache of Groonga is lost after restarting, but by using this feature, there is no need to reconstruct cache from a scratch.

If you use groonga command, use --cache-base-path option.

This option specifies where to save persistent cache.

If you use groonga-httpd, use groonga_cache_base_path directive. Here is the sample configuration about groonga_cache_base_path.

http {
  ...
  groonga_cache_base_path /dev/shm/groonga-httpd-cache;
  ...
}

Persistent cache configuration is shared among workers. Thus the number of cache limit will be also shared in the future.

Here are some caution to use this feature:

  • Use base path on memory file system for performance reason.
  • Cache limit configuration is not supported yet.
  • Remove cache file when groonga has crashed.

Added function to use an existing table as condition patterns

In this release, ``in_records` function is added to use an existing table as condition patterns. Each record in the existing table is treated as a condition pattern.

By using in_records function, you may be able to reduce multiple queries to only one query by in_records.

Conclusion

See Release 7.0.2 2017-04-29 about detailed changes since 7.0.1.

Let's search by Groonga!