Tech Topics

Elasticsearch 0.90.10 Released

Today, we are happy to announce the release of Elasticsearch 0.90.10, which is based on Lucene 4.6. This is the current stable release in the 0.90 series. You can download it here.

This release fixes an important bug which could appear to cause data loss when running with multiple data paths. If you have data.path set to point to multiple directories, you should upgrade to 0.90.10. More details about this bug can be found below. You can read about other bug fixes and enhancements in the 0.90.10 release notes.

To explain the problem, a shard requires a single file called segments.gen which stores the latest generation number. If there is more than one segments.gen file, the index may (incorrectly) appear to be corrupted. When using multiple data paths, the segments.gen file could be written to any of the listed directories, so causing duplication and the appearance of corruption. This can prevent a shard from recovering, with error messages such as:

Failed to start shard, message [IndexShardGatewayRecoveryException[[my_indexname][2] shard allocated for local recovery (post api), should exist, but doesn't, current files: [_66wz.fdx, ...]]; nested: FileNotFoundException[segments_4ws]; ]]

Often users have resorted to deleting the shard and thus losing data. This bug has been fixed by ensuring that the segments.gen file is only ever written to one location. If you encounter this apparent index corruption in a running system, you can work around it by deleting all files called segments.gen. It is advisory only, and Lucene can recover correctly without it.

This release also includes a big speed up when calculating geo-distances. We have changed the distance calculation to use the Haversine formula and we use SloppyMath to calculate cosine and arcsin. Distance calculations are now 99.9% accurate and 3.2 - 4.5 times faster! If you need absolutely accurate calculations, you can set the distance_type to arc instead of the new default sloppy_arc.

We hope you enjoy this new release. Please download 0.90.10, and let us know what you think.