Navigation Menu

Skip to content

Commit

Permalink
Add release announce about Groonga 4.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
kenhys committed Jan 29, 2015
1 parent 6ea151a commit 13001c4
Showing 1 changed file with 144 additions and 0 deletions.
144 changes: 144 additions & 0 deletions en/_posts/2015-01-29-release.md
@@ -0,0 +1,144 @@
---
layout: post.en
title: Groonga 4.1.1 has been released
description: Groonga 4.1.1 has been released!
---

## Groonga 4.1.1 has been released

[Groonga 4.1.1](/docs/news.html#release-4-1-1) has been released!

How to install: [Install](/docs/install.html)

### Changes

In this release, there are following topics:

* Improvements
* Supported [drilldown](/docs/reference/commands/select.html#select-drilldown) with sum up feature
* Supported groonga-httpd with stream dump processing
* Experimental improvements
* Supported more compact default database size on Windows
* Supported Groonga with jemalloc to improve performance in
multi-threaded usage

#### Improvement - Supported drilldown with sum up feature

In this release, drilldown with named label is extended. It supports drilldown with SUM, MIN, MAX or AVG by each group.
See [calc_types](/docs/reference/commands/select.html#select-drilldown-calc-types) about detail of each operator.

Try to pass following parameter to select command:

--drilldown[${LABEL}].calc_types=(SUM,MIN,MAX or AVG) \
--drilldown[${LABEL}].calc_target=(COLUMN)

Here is the simple example which use MAX.

table_create Tags TABLE_PAT_KEY ShortText

table_create Memos TABLE_HASH_KEY ShortText
column_create Memos tag COLUMN_SCALAR Tags
column_create Memos priority COLUMN_SCALAR Int64

load --table Memos
[
{"_key": "Groonga1", "tag": "Groonga", "priority": 10},
{"_key": "Groonga2", "tag": "Groonga", "priority": 20},
{"_key": "Groonga3", "tag": "Groonga", "priority": 40},
{"_key": "Mroonga1", "tag": "Mroonga", "priority": 50},
{"_key": "Mroonga2", "tag": "Mroonga", "priority": 25},
{"_key": "Mroonga3", "tag": "Mroonga", "priority": 10},
{"_key": "Rroonga1", "tag": "Rroonga", "priority": 25},
{"_key": "Rroonga2", "tag": "Rroonga", "priority": -25},
{"_key": "Rroonga3", "tag": "Rroonga", "priority": 0}
]

select Memos \
--limit 0 \
--drilldown[tag].keys tag \
--drilldown[tag].calc_types MAX \
--drilldown[tag].calc_target priority \
--drilldown[tag].output_columns _key,_max

Here is the drilldown results.

{
"tag": [
[
3
],
[
[
"_key",
"ShortText"
],
[
"_max",
"Int64"
]
],
[
"Groonga",
40
],
[
"Mroonga",
50
],
[
"Rroonga",
25
]
]
}

The data is grouped by tag, there are three groups - "Groonga", "Mroonga" and "Rroonga". Each result contains the max value in group. Note that calculated value is accessed by [pseudo](/docs/reference/columns/pseudo.html) columns such as `_max` and `_min` in [output_columns](/docs/reference/commands/select.html#select-drilldown-label-output-columns).

If you want to get not only max value, but also min value, specify multiple types for calc_types.
Here is the example which gets max value and min value:

--drilldown[tag].calc_types MAX,MIN

Don't forget to specify pseudo column name "_min".

--drilldown[tag].output_columns _key,_max,_min

Then, you can get max value and min value in each group.

#### Supported groonga-httpd with stream dump processing

In this release, groonga-httpd supported dump command with stream processing.
By this change, it will not happen to exhaust memory by executing dump command.

#### Experimental improvement - Supported more compact default database size on Windows

In this release, more compact default database size on Windows is supported.

In the previous versions, Groonga uses more larger default database size (128MiB) on Windows. The size of database increases every you create new column.

It is not efficient, now Groonga supports to expand database size gradually as same as other GNU/Linux environment.

To enable this feature, set `GRN_IO_VERSION=1` as environment variable. By default, it is not enable because it is in experimental stage.

Please give us feedback how it improves disk usage. It is important to enable by default.

#### Experimental improvement - Supported Groonga with jemalloc to improve performance in multi-threaded usage

In this release, you can build Groonga with jemalloc support. This change will improve multi-threaded performance.
jemalloc support is suitable for groonga command or Mroonga because they are adobt multi-threaded model.

Note that it is no impact to groonga-httpd because it use multi-process model.

If you dislike to build Groonga on your own, try LD_PRELOAD environment variable.

Here is the example command:

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1 groonga

Please give us feedback how it affects performance.

### Conclusion

See [Release 4.1.1 2015-01-29](/docs/news.html#release-4-1-1) about detailed changes since 4.1.0.

Let's search by Groonga!

0 comments on commit 13001c4

Please sign in to comment.