Updates for IBM Cloud Compose’s MongoDB, Elasticsearch, Backups and API
Included in the latest updates: two new upgrade options available for MongoDB and Elasticsearch users on the IBM Cloud. The release of MongoDB 3.4.10 and Elasticsearch 6.2.2 from IBM Compose are major version upgrades with many new features. There are also new backup restoration options which make upgrading easier along with new log file API endpoints.
MongoDB 3.4.10
The MongoDB 3.4 update brings support for an enhanced aggregation pipeline. The new $graphLookupoperation allows recursive scanning and inclusion of other collections based on matching fields between documents. Faceted navigation takes results and buckets them for processing as multiple pipelines. There’s also read-only views which allow users to reduce the visibility of a collection with a dynamically created collection.
For precision, there is support for decimal128 format numbers which allows for 34 decimal digits to be accurately represented with the NumberDecimal type. Other enhancements include a range of array and UTF8 string operators added to the aggregation pipeline.
Elasticsearch 6.2.2
Elasticsearch 6.2.2 enhances the search platform to offer more reliable and performant search. Query times are quicker with sorted indices and sparse fields use less storage. Features added in 6.0 and 6.2 include a significant_text aggregation, an IPv6 aware ip_range field type, icu_collation keyword field for language specific sorting, and a ranking evaluation API. There are some features that were finally removed too, such as the support for Groovy, JavaScript, and Python as scripting languages. Painless is Elasticsearch’s scripting language going forward. In the pursuit of clarity and performance, users of Elasticsearch 6 will no longer be able to create multiple mapping types; the feature will be completely removed in Elasticsearch 7.
Availability and upgrading
Both database version updates provide useful new features and enhanced reliability and performance to their respective databases. MongoDB 3.4.10 and Elasticsearch 6.2.2 are available now for new instances as the preferred version. Contact support for advice on the optimal way to upgrade.
The latest update to backup/restore page reveals how to restore using the Bluemix ‘bx’ CLI command.
Backup updates
We made restoring a backup to a new service instance easy, find the backup, click Restore and it’s all done for you. What we found though was that people wanted to know how to do that from that command line, so we made that simple too. In the new release, we show you the bx command line you’ll need to run to restore that particular backup to a new service instance. We also show you that backup’s own unique id.
That command is also key to upgrading a database to a new version. By default, a database is restored to its current version, but by adding "db_version": "1.23"
to the -c
parameter list, the new service instance will be created with that version of the database and the data restored into it. This technique allows upgrades to be made and tested before being brought into production.
This command line process can be used to upgrade your existing MongoDB and Elasticsearch deployments to the latest versions. By adding "db_version": "3.4.10"
or "db_version":"6.2.2"
to the respective restore command lines shown for a particular backup of a database, a new service instance with MongoDB 3.4.10 or Elasticsearch 6.2.2 will be created. An example of how an upgrade command looks would be:
API features
Since we announced the availability of the IBM Cloud Compose API, we’ve been adding endpoints to enhance its capability. In the latest update we’ve added the ability to query and retrieve log files. It’s the <a href="https://apidocs.compose.com/v1.0/reference#2016-07-deployments-id-logfiles">GET /2016-07/deployments/:id/logfiles/</a>
and <a href="https://apidocs.compose.com/v1.0/reference#2016-07-deployments-id-logfiles-logfileid">GET /2016-07/deployments/:id/logfiles/:id</a>
Compose API endpoints made available through the IBM Cloud Compose API mechanism.
Another smaller change is that Enterprise Cluster owners can now see their API Endpoint and Cluster ID in the *Manage* overview of their cluster. There is a matching endpoint – <a href="https://apidocs.compose.com/v1.0/reference#2016-07-get-clusters-id">GET /2016-07/clusters/:id</a>
– which returns some details about the cluster. The cluster id is more useful. It is used with the `bx` command to create instances and manage the cluster from the command line.