News

1.0.9: 2014-12-01

  • droonga-engine-join, droonga-engine-unjoin, and droonga-engine-absorb-data work on any host. Instead, you have to specify the host name or the IP address of the working host via the --receiver-host option.
  • Clusters are managed with their own unique id. In previous version, a node unjoined from the Droonga cluster is still a member of the Serf cluster, and there is no information that protocol adapter nodes detect which is actual member or not.

1.0.8: 2014-11-29

  • Better compatibility to Groonga's select command:
    • Whitespace-separeted output_columns (it is valid on command_version=1 environments) is now available.
    • output_columns=* works correctly even if it is a TABLE_NO_KEY table.
  • Better compatibility to Groonga's column_list command:
    • A _key virtual column is correctly appear in the result, for tables with one of flags: TABLE_HASH_KEY, TABLE_PAT_KEY, and TABLE_DAT_KEY.
    • At an index column, its source is now compatible to Groonga's one.
  • Groonga's table_create command now requires key_type parameter for tables with one of flags: TABLE_HASH_KEY, TABLE_PAT_KEY, or TABLE_DAT_KEY. You'll get an error response, if the parameter is not given. (Groonga unexpectedly accepts table_create requests without key_type, but it is a bad behavior (too lazy) and it should not be covered as a compatibility.)
  • The daemon option is now ignored in the static configuration file. Now, you always have to specify --daemon option for the droonga-engine command to start it as a daemon.
  • The droonga-engine-configure command now shows prompts for all options always.
  • The rate of absorbed records are limited to 100 records per second by default, for droonga-engine-absorb-data and droonga-engine-join commands.
  • droonga-engine-absorb-data and droonga-engine-join commands now report their progress, if possible.

1.0.7: 2014-10-07

  • Better compatibility to Groonga: select command now supports query_flags option. Note: ALLOW_UPDATE is ignored even if you specify, because it is not implemented in Droonga yet.
  • saerch command has some improvements.
    • The value false for allowPragma and allowColumn options in query syntax search conditions is correctly applied. In old versions, they options are always true even if you intentionally specified false for them.
    • allowLeadingNot option is available in query syntax search conditions. It is false by default.
  • Works correctly as a service even if you restarted the computer itself.
  • droonga-engine-configure now asks the log level.

1.0.6: 2014-09-29

  • The installation script is now available. It automatically installs required softwares and configure the droonga-engine as a system service. Currently it works only for Debian, Ubuntu, and CentOS 7.
  • The service works as a process belonging to a user droonga-engine who is specific for the service. The configuration directory for the service is placed under the home directory of the user.
  • A static configuration file to define default parameters (host and so on) is now available. It must be placed into the directory same to catalog.json. You don't have to run droonga-engine command with many options, anymore.
  • droonga-engine-join now automatically fetches catalog.json from the specified source replica node. Now you don't have to copy catalog.json from another node before you run droonga-engine-join anymore.
  • A new catalog plugin is introduced as one of default plugins, to fetch catalog.json from existing cluster. The list of plugins in your catalog.json must include it.
  • A new command line utility droonga-engine-configure is available. It generates the static configuration file, the catalog.json for the service. Moreover, it clears old stored data to make the node empty.
  • Some options for utility commands become optional. Important parameters are automatically detected.
  • Restarts server processes more gracefully.

1.0.5: 2014-07-29

  • Restarts server processes more gracefully.
  • Works with search results with vector reference column values correctly.
  • Messages forwarded to other nodes are always buffered for now.
  • Works again for the case: nWorkers == 0
  • droonga-engine-join: Works correctly and safely for databases with much records.

1.0.4: 2014-06-29

  • New command (and plugin) status is now available.
  • New command line tools are available.

1.0.3: 2014-05-29

  • Alive monitoring (based on Serf) lands. Now, nodes in a cluster observe each other, and the cluster keeps working, even if one of replicas is dead.
  • New commands to dump whole contents of an existing cluster are available. They are used by drndump internally.
  • The command line tool droonga-catalog-generate is renamed to droonga-engine-catalog-generate.
  • Use Default as the name of the default dataset for a catalog.json, generated by droonga-catalog-generate .
  • The path of the configuration directory is now specified via an environment variable DROONGA_BASE_DIR.
  • Fix incompatibilities of the select Groonga command.
    • The default value of the drilldown_output_columns option becomes same to Groonga's one.
    • Column values of Time type clumns are returned as float numbers correctly.
    • The message structure of results becomes same to Groonga. In previous version, records are wrongly wrapped in an array.
  • Improve features of the select command..
    • The request parameter "attributes" for "elements" in "output" is now available.
    • The special value "*" for "attributes" in "output" is now available, to export all columns.
  • Server process does shutdown/restart gracefully.
  • Restart itself automatically when the catalog.json is updated.

1.0.2: 2014-04-29

The most important topic on this release is that the core component aka Droonga Engine becomes fluentd-free. As the result, the project (and gem package) fluent-plugin-droonga is renamed to droonga-engine. Of course the compatibility of the protocol is still there.

  • Becomes fluentd-free.
  • Supports new --daemon and --pid-file options for the daemon mode.
  • More Groonga-compatible features are available:
    • table_list command
    • column_list command
    • column_remove command
    • column_rename command
    • delete command
    • options for select command
      • filter
      • sortby
      • drilldown
      • drilldown_output_columns
      • drilldown_sortby
      • drilldown_offset
      • drilldown_limit
  • A useful command line tool droonga-catalog-generate is included. It helps you to write your custom catalog.json.
  • Parameters for the search command is validated more strictly.
  • The default port number is changed from 24224 (fluentd's one) to 10031.

1.0.1: 2014-03-29

Improvements

  • More documents around plugin APIs are now available. See the plugin development tutorial and the plugin API reference.
  • Some documented features of the catalog.json are actually implemented. For example:
  • Connections to other Droonga Engine nodes are automatically re-established correctly.
  • Some improvements about the search command
    • The column name _nsubrecs is available as a source with groupBy and sortBy.
    • The element elapsedTime is now available for a value of elements.
    • A new parameter adjusters is introduced. (Not documented yet, so see also Groonga's document)
    • groupBy becomes faster.
  • And some small bugfixes.

1.0.0: 2014-02-28

Improvements

  • Updated catalog.json specification to version2. version1 is still usable. But It is deprecated.
  • Supported log API in plugin.
  • Supported auto catalog.json reload.
  • Changed adapter API:

    Old:

    message.input_pattern  = []
    message.output_pattern = []
    

    New:

    input_message.pattern  = []
    output_message.pattern = []
    
  • Supported developing a plugin for handling phase. See tutorial for details.

0.9.9: 2014-02-09

Improvements

  • Supported gathering errors.
  • Added more error handled cases.
  • experimental: Added a MeCab filter that filters results from N-gram tokenizer based search by MeCab based tokenized search. It is disabled by default. You need to define DROONGA_ENABLE_SEARCH_MECAB_FILTER=yes environment variable when you run fluentd.
  • Supported developing a plugin. You can custom adaption phase for now. See tutorial for details.

0.9.0: 2014-01-29

Improvements

  • search: Supported "attributes" for elements of output.
  • table_remove: Implemented Groonga compatible table_remove command.
  • column_create: Implemented error handling.
  • catalog: Supported auto reloading.
  • Supported reducing responses from two or more nodes for Groonga compatible commands.
  • Supported three or more partitions.

0.8.0: 2013-12-29

Improvements

  • search: Supported groupBy with multiple partitions.
  • Changed job queue implementation to UNIX domain socket based implementation from Groonga's queue based implementation. It reduces shutdown time and fixes job queue break problem on crash.
  • Supported error response.
  • watch: Fixed a bug that duplicated notification is pushed when multiple column values are matched.
  • watch: Supported subscriber garbage collection.
  • Improved plugin API. Plugin API documentation will be published in the next release.
  • Added micro seconds information to time value. It uses W3C-DTF format such as 2013-12-29T00:00:00.000000Z.
  • Changed the name of adapter plugin that provides Groonga's select compatible API to groonga from select. The groonga adapter will provide more Groonga compatible commands.
  • Added version to catalog.json.
  • Changed plugin path format to droonga/plugin/#{PLUGIN_TYPE}/#{PLUGIN_NAME}.rb from droonga/plugin/#{PLUGIN_TYPE}_#{PLUGIN_NAME}.rb. We use a directory per plugin type instead of putting all plugins to droonga/plugin/ directory. Because it is more maintainable.
  • Split adapter plugin into input adapter plugin and output adapter plugin. You can in the next release.

0.7.0: 2013-11-29

The first release!!!