Apr 4, 2014

Update on Elasticsearch 0.90 to 1.0 Migration




min read

Our original plan called for us to upgrade our 0.90 clusters one month after the initial release. We bumped that back a few times in order to allow everyone plenty of time to test their applications on 1.0. This upgrade does introduce a small number backwards incompatible API changes for some use cases. But overall the benefits of moving to Elasticsearch 1.0 far outweigh the costs of upgrading.

During that waiting period, we’ve been far from idle on our end. Over the last few weeks, we have run dozens of practice migrations. Even now, we’re running a full copy of all our 0.90 clusters on Elasticsearch 1.0. This means that we have the capability to perform “hot” upgrades to 1.0, one customer at a time.

Starting next week, we will be carefully and individually migrating each customer still on 0.90. Each cluster will experience a short period of read-only access to help synchronize the data between clusters. Any updates made to your index will be rejected with a 503 error, and should be retried.

Migrations will start on the afternoon (PST) of Monday, April 7th, and run throughout the week.


What if I haven’t had time to try Elasticsearch 1.0? Can I opt-out?

If you haven’t yet tested your apps locally on Elasticsearch 1.0, we strongly encourage you to do so as soon as possible. If you need to opt-out of next week’s upgrades and schedule a specific migration window, we understand, just send us an email to support@bonsai.io and we’ll schedule something with you.

Why upgrade to 1.0 at all?

We recognize that long-term support for major versions of older software is valuable to some. We are considering that for future post-1.0 major upgrades of Elasticsearch.

Elasticsearch 1.0 is something of a special case. It introduces a bunch of improvements, both for normal users, as well as cluster operators such as ourselves. One important new operational feature is an official API for performing backups. Finally, in our opinion, the API changes are relatively minor for most use cases.

We consider it our responsibility to take an informed position on these kinds of questions. Our customers choose our service because we can stay up to date more effectively, providing you with the benefits of updated software, rather than risk stagnating on older versions.

Overall, we think the benefits of migrating to 1.0 far exceed the costs of adapting to its changes.

I use Tire, is it compatible with Elasticsearch 1.0?

Tire is compatible with Elasticsearch 1.0 for many use cases, but as of this writing there are some isolated issues in current versions of the gem (0.6.2). The best way to find out if your app is compatible is to run it against 1.0 to test, which you can do easily on Heroku with our free Starter plan.

Because Tire has been deprecated in favor of the official elasticsearch-rails gem, we strongly recommend that you migrate your application’s code to replace tire with elasticsearch-rails as soon as possible.

If migrating to elasticsearch-rails is not an option, we recommend using Tire from the git master branch in order to benefit from unreleased fixes for 1.0

I have some other question, where can I get it answered?

Drop us a line at support@bonsai.io and we’ll be happy to help.

Find out how we can help you.

Schedule a free consultation to see how we can create a customized plan to meet your search needs.