By Adam Kocoloski, IBM Fellow, VP and CTO, IBM Cloud Data Services
The IBM public cloud is built on a foundation of innovation in open source, leadership in security and enterprise-grade infrastructure, all with the goal of enabling our clients to rapidly build new applications while reducing the complexity of managing those applications as they scale. Today we’re announcing a substantial new capability on this front with the arrival of Cloudant on Transaction Engine.
IBM Cloudant is an elastically scalable, serverless datastore built to meet the needs of cloud-native application developers. Since 2014 it has powered a wide variety of internal and external applications in IBM Cloud. Like many original “NoSQL” solutions, Cloudant delivered scalability and availability by sacrificing some of the isolation and consistency guarantees of traditional relational database systems. As we enter Chapter 2 of cloud, we’ve tasked ourselves with restoring those mission-critical properties while preserving and enhancing Cloudant’s cloud-native character. Cloudant on Transaction Engine represents our first major step towards achieving those objectives.
Scaling to New Heights
The new Transaction Engine architecture efficiently organizes data for rapid retrieval at scale, and we’re passing those efficiencies on to our clients. Cloudant instances running on the Transaction Engine can support databases up to 100TB, and we’ve reduced the per-gigabyte storage pricing for these new instances by 4x. We’ve worked diligently on an optimized hardware profile to drive down costs and leverage new innovations in storage technology to support this new pricing. Data is still stored in triplicate and replicated across IBM Cloud Availability Zones, and you only pay for the storage that you use.
Query processing also gets a major boost from the Transaction Engine design. Smarter organization of the data in secondary indexes enables us to efficiently scale query throughput without imposing partitioning restrictions on your application’s data model. Create views and secondary indexes on your entire database and query them with predictable, consistent performance as you scale. At launch we are increasing the cap on provisioned read throughput by 5x — and if you need more throughput. Cloudant on Transaction Engine also eliminates Global Queries as a separate category of provisioned throughput, resulting in cost savings of up to 20xfor certain types of queries.
API calls issued to Cloudant on Transaction Engine operate against consistent, isolated snapshots of your database. Document operations are fully Linearizable, and secondary indexes are kept transactionally consistent with the main database. The native change capture feed exported for every Cloudant database is also totally-ordered, and the service will never replay previously observed events unless asked to by the client.
While we’ve become experts at designing applications that make the best use of eventually consistent systems, and happily share that expertise with our clients, a data service that is immune to eventual consistency simply eliminates a whole class of issues that a developer otherwise has to consider. We’re delighted to offer this capability in IBM Cloudant and look forward to expanding the set of mission-critical applications that can leverage IBM Cloud as a result.
Organizations entrusting their data to cloud databases need to know that the data is stored securely and protected from improper use. Cloudant on Transaction Engine implements native database encryption so that user data is represented as ciphertext even before it hits the disk. Each database is encrypted with a unique Data Encryption Key at no additional cost, and the root of trust for those encryption keys always traces back to IBM Cloud’s standard key management services, which leverage some of the most secure commercially-available encryption technology in the industry.
Open by Design
Cloudant on Transaction Engine reinforces IBM’s commitment to open innovation: the core database features powering the Transaction Engine instances are being developed as part of the next major release of Apache CouchDB. While we firmly believe that Cloudant provides the best vehicle for clients to benefit from these innovations, we are committed to the principle that you own your data, and we will always support an open API and replication interoperability with the open source community. Moreover, our Extension for Apache CouchDB offering ensures you can get the support you need to deploy and manage CouchDB in your own data center or other hybrid cloud environments. Blending CouchDB and Cloudant gives you a unique ability to bring your data exactly where it’s needed around the globe.
Clients are recognizing the benefits of the updates being announced today. “As a long-time IBM Cloudant customer, we are excited to onboard the new Cloudant on Transaction Engine benefits into the PayRange mobile payment architecture,” said Prashant Kanhere, CTO, PayRange. “PayRange provides contact-less payment methods for clients across hundreds of thousands of machines, and this capability is more important than ever these days. We are big users of Cloudant global queries and have high throughput requirements, and always looking for ways to optimize for performance, scalability and cost. Cloudant on Transaction Engine provides capabilities to take our application in the right direction on all those fronts.”
In addition to announcing new capabilities to IBM’s Cloudant on Transaction Engine, we’re also celebrating the 50 year anniversary of the relational model behind Structured Query Language (SQL). In June 1970, IBM researcher and computing pioneer Edgar Frank Coddpublished the seminal paper “A Relational Model of Data for Large Shared Data Banks,” describing the famous relational model that became the foundation of SQL.