Monday, August 14, 2017

Are You Open to Open Source Databases?

During the last 5 years, the awareness, acceptance and embrace of open source database systems has exploded. Everyone, including IBM is firmly seated on the bandwagon. For the last 12 months, I have been illuminating the concepts of open source (non relational) database systems during the Db2 for i Technical Forums. We also continue to review the fundamentals of relational database, lest we forget.

So, as a Db2 for i user, are you open to open source database?

If not, should you be?

Obviously the answer is: it depends!

Before we get into exactly what it might depend on, I highly recommend you take a few minutes to go off and read an introduction to open source databases by my friend and colleague, Rick Murphy.

Rick's article, "All you really need to know about open source databases" can be found here.

Welcome back!

If you're like me, you found Rick's overview interesting and insightful. We can also use it as a starting point to answer the question posed above.

When considering the adoption of any component or solution, we must first understand our business requirements and the technical requirements. These requirements must be reconciled and prioritized. Then and only then can we effectively consider components and/or solutions that might meet our requirements, thus avoiding buyer's remorse.

Now the question has transformed into: do you have business and technical requirements that can be met by an open source database?

And more specifically, what flavor of open source database:

Non relational?
GPU accelerated?

A related and possibly more profound question is:

Can your current Db2 relational database management system, the one you already own, meet your requirements?  

hmm... if there is head scratching and shrugging of shoulders happening about now, it's time to learn more about what the current version of Db2 for i can do for you.

Revitalization vs. Modernization

More than a decade ago, we were introducing the idea of "modernizing" your database. Our goal was simply to get you to do more with Db2 by embracing true relational database constructs through proper modeling and design, move from application-centric programming to data-centric programming, make use of SQL as your language for interacting with Db2, migrate from record-at-a-time processing to set-at-a-time processing.

What was once called database modernization, we now refer to as database "revitalization". This term more accurately reflects what needs to be accomplished. Db2 for i is, and always has been, a "modern" relational database management system. That fact that you are not using it that way should in no way diminish the capability, nor tarnish the value, of the Db2 relational database management system you have in hand today.

Extending and expanding your database and data-centric programming capabilities is called database modernization.  Meaning, a modern database environment is comprised of many different data storage and data processing technologies that are fit for purpose and meet requirements. This can be referred to as a Polyglot Persistence Environment. This is a formal way of saying: store, process and access your data using the database system that best meets your needs, and using more than one is expected. In more practical terms, why try to store and process vast quantities of unstructured and unrelated data in a structured, relational database. It's better to use an unstructured, non relational database system instead.

What does your future look like?

It will definitely include the continued use of Db2 for relational data!

My prediction is that it will also include handling unstructured data using non relational, open source database system(s), on premise and in the clouds.  And that means, making use of an operating system other than IBM i. 

Let's be clear, if you are going to acquire, implement and make productive use of an open source database, you will use an open source operating system. The good news is, IBM Power systems run Linux, AND Power runs open source databases very well indeed.

Another important aspect... you are going to step up your database engineering. Embracing various and sundry forms of data storage, data processing and data access will require a lot more database science and art. If nothing else, you will need to sort out the database designs and architectures that will best meet your requirements, and guide the users toward those sources.

A Summary

And remember, modernization and revitalization is a process, not a product, and not a tool.

Modernization and revitalization involve not only applications and databases, but also:

  • Organization Structure and Alignment
  • Organization Leadership
  • Adopting and embracing new practices and new disciplines
  • Multi-dimensional communication

If you want to learn more about revitalizing and/or modernizing your database environment (including the people part of the equation), please let me know.  We are here to guide you, and assist with the journey!


  1. Note, Redis can run in PASE on IBM i. I have a customer using it for a Ruby application.

    1. Hey, Aaron, sure, lots of things *run* in the PASE environment on IBM i. The key question becomes whether that environment meets the "requirements" of the solution.

      In my mind, a couple key questions become:

      1. Who provides software support when there's a defect and with what service level?

      2. What are the currency / stability needs for the application and how are they met?

      3. What is the potential need for "upgrade paths" (enterprise versions) of the software for reasons in #1 and #2?

      These are key questions everyone should ask themselves before consuming open source software. Thanks for the real-life example!

    2. Hi Jeff,

      Good questions.

      This may seem like a bad answer to some, but the majority of my support for open source comes from StackOverflow and Git repo Issues. I'd also wager this is normal for the majority that adopt open source. Most of the IBM i shops I work with that use "non native" technology on IBM i hire experts to help with support; which is a role I often play.

      With that said, you're correct to note that PASE is not on the bleeding edge and there are risks; though it is also catching up faster than it ever has since its inception.

      Further, I do believe there can be a time and place for maintenance contracts of open source tools. My typical use of those is through proxy of a service (i.e. I've used Engineyard to host RubyOnRails apps and they helped with all manner of open source issues).

      My assertion that Redis runs in PASE was primarily an accountability to facts based on this quote from the article:

      "Let's be clear, if you are going to acquire, implement and make productive use of an open source database, you will use an open source operating system. "

      This leads the reader to believe you can't acquire, implement, and make productive a NoSQL database on IBM i, and I don't think that was accurate, as my succinct response stated.

      All the best,
      Aaron Bartell

  2. Strongly agree with Aaron .... Mike thanks for spend your time to improve us