Droonga 1.1.0 has been released!
2015-04-29Very sorry for this delay, now we’ve released Droonga 1.1.0 with a long-cherished feature!
What’s Droonga?
Droonga is a distributed full text search engine, compatible to Groonga. A Droonga cluster works like an HTTP server compatible to Groonga with the replication feature.
Are you interested in Droonga: how it works and how useful? Let’s try the tutorial for an introduction, and see the overview to understand Droonga’s design strategy more and more.
True hot-add of replica nodes is now available!
The most important topic on this release Droonga 1.1.0 is true hot-add of replica nodes. It was one of long-planned features of Droonga, but we’ve got it. Now you can add new replica nodes to your Droonga cluster without any downtime, even if you don’t stop crawling/adding new data!
To do it, you have to have two or more replicas in the cluster, except the new adding replica node. For more information, see tutorial for adding replica nodes.
Detailed list of improvements
- Droonga-engine 1.1.0
- General:
- Graceful stopping/restarting works correctly with continual inpouring messages.
- A new parameter
single_operationis introduced to single step definitions. If you set it totrue, messages for the handler will be delivered to just single volume (one of replicas and slices). It is useful for commands which has to be executed only once in a cluster, likesystem.status. - A new parameter
use_all_replicasis introduced to single step definitions. If you set it totrue, messages for the handler will be delivered to all replica volumes always. It is useful for commands which has to be executed all replicas, likesystem.statistics.object.count.per-volume. addcommand now accepts requests with automatically-convertible mismatched type keys. For example, a string key"1"is available for a table with the key typeUInt32.dumpcommand: the value of a column referring any record of another table are correctly exported as its key string, instead of object value (it’s invalid value for a message of theaddcommand). As the result, now tables with reference columns are correctly copied between multiple clusters.dumpcommand: records in a table which has only one column_keyare exported correctly.dumpcommand: forwarded messages are now have their owndatefield.Collectors::RecursiveSumis introduced.system.statuscommand: now the reporter node and its internal name is reported as a part of response body.system.statistics.object.countcommand is now available. It is used by command line utilities internally.system.statistics.object.count.per-volumecommand is now available. It is useful to confirm equivalence of replicas.system.absorb-datacommand is now available. It is used by command line utilities internally.
- Message format:
targetRolefield is introduced to the envelope. Now you can specify the role of the engine node which can process the messsage. If mismatched role node receives the message, it will be bounced to suitable node automatically if possible.timeoutfield is introduced to the envelope. Now you can specify time to expire the request, in seconds.
- Command line utilities:
droonga-engine-joinanddroonga-engine-absorb-datacommands work more surely.- A new option
--verboseis introduced to monitor internal Serf operations, fordroonga-engine-joinanddroonga-engine-absorb-data. - A new command line utility
droonga-engine-set-roleis available (mainly for debugging).
- Compatibility with Groonga:
- Better compatibility to Groonga’s
deletecommand:- Works correctly for tables with integer key types. The report by funa1g inspired this improvement. Thanks!
- Accepts requests with automatically-convertible mismatched type keys.
For example, a numeric key
1is available for a table with the key typeShortText.
- Better compatibility to Groonga’s
- General:
- Droonga-http-server 1.1.2
- Bump required version of
express-droonga.
- Bump required version of
- Express-droonga 1.0.9
- Updated for the latest Droonga Engine 1.1.0.
- Supports uber-cache 2.0.0.
- New endpoints are introduced to inspect connections to Droonga Engine nodes.
/enginesreturns the list of currently conencted Droonga Engine nodes./connectionsreturns detailed status of internal connections to Droonga Engine nodes.
- Always reconnects to Droonga Engine nodes when there is any change around the Droonga cluster.
- Query parameters for
/droonga/*endpoints are used as the message body.
- Drndump 1.0.1
- Becomes modulable. You can use internal libraries for other products.
- Drntest 1.2.0
- Improvements
- Supported new directives to activate/diactivate completion and validation of messages.
#@enable_completionand#@disable_completioncontrols completion of request messages. Required fields of request messages are automatically completed by default.#@enable_validationand#@disable_validationcontrols validation of request messages. Messages are validated by default.
#@subscribe-untildirective, for subscription type commands likedump. You can unsubscribe the next request following to the directive automatically with given timeout, like:#@subscribe-until 10s- A
NO RESPONSEresult is now returned immediately, for a stalled engine process. - Invalid format responses for Groonga commands are now ignored.
- Supported new directives to activate/diactivate completion and validation of messages.
- Improvements
- Droonga-client-ruby 0.2.1
- Required fields of input messages are automatically completed by default.
- Input messages are automatically validated by default.
- Timeout option for subscription is available.
You can unsubscribe subscription automatically with specified timeout, like:
client.subscribe(request, :subscription_timeout => 10) - New utility commands are available as shorthand.
droonga-system-status: allows you to send asystem.statusrequest to the cluster easily.droonga-add: allows you to send anaddrequest to the cluster easily.droonga-groonga: works like thegroongacommand.
- droonga-send, droonga-request:
- A new option
--[no-]completionis introduced. You should specify--no-completionto send incomplete messages intentionally. - A new option
--[no-]validationis introduced. You should specify--no-validationto send invalid messages intentionally. - A new option
--default-datasetis introduced. It is used for sending messages if they have nodatasetfield. - A new option
--default-target-roleis introduced. It is used for sending messages if they have notargetRolefield. - The “date” field is filled with the format same to droonga-engine’s internal one like “2015-04-08T06:16:20.571303Z”.
- A new option
Conclusion
- Droonga 1.1.0 has been released!
- Now you can add new replica to the cluster without any downtime.
- Droonga project will release a new version continuously!
Droonga project welcomes you to join us as a user and/or a developer! See community to contact us!