Today, we are happy to announce the bugfix release of Elasticsearch 1.2.2, based on Lucene 4.8.1. You can download it and read the full changes list here: Elasticsearch 1.2.2.
Elasticsearch 1.2.2 is the latest stable release. Windows users and users with heavy indexing requirements should upgrade. The full change log is available in the Elasticsearch 1.2.2 release notes, but we will highlight the three most important ones below:
The translog (or transaction log) is used in Elasticsearch to :
- replay transactions on startup, making document changes persistent
- enable newly allocated replica shards to recover from the primary shard
- serve real-time document GET requests on recently changed documents
Occasionally, under heavy indexing conditions, with large documents and especially on Windows, real-time GET or recovery requests were throwing corrupt translog errors, which disappeared as soon as the index was flushed. (Flushing commits the index to disk and creates a new translog.) This bug was exposed by changes which reduced the frequency of flushing, which increased the amount of data that had to be written at flush time. It has been fixed by checking that all buffered data has been successfully written. See #6576.
File system lock
A bug in Lucene 4.8.1 (see Lucene-5738) meant that the lock acquired on a node's data directory might not be safe, allowing two nodes to use the same data directory and resulting in data loss. This has been fixed in Lucene 4.9 and backported to this release. See #6424.
Percolation with nested docs
Percolation queries using nested docs were caching the results, but those caches were never cleared. This could quickly result in an OOM condition. See #6578. Also, percolation queries with nested docs could produce incorrect results as there was not examined to determine whether they were nested or root documents. See #6544.