April 4, 2012

Clarifying IBM DB2 Express-C crippleware

When Conor O’Mahony briefed me about DB2 10, he kept commenting that cool features he was talking about could be found in all editions of DB2, even the free one. So I asked what the limitations were on free DB2. He researched the matter and got back to me — and they sounded like what appeared to have been the limits when free DB2 was first introduced, over 6 years ago.

I tweeted about this, and was very fortunate that Ian Bjorhovde spoke up and said it wasn’t correct. Some scrambling ensued. It seems that the main sources of error were:

In particular, we shouldn’t take IBM’s repeated 2006 statements that

DB2 Express-C may be deployed on …  on AMD or Intel x86 systems with up to 2 dual-core chips. 4 GB of memory is the maximum supported.

to mean that you were ever allowed to use DB2 Express-C with 4 cores, nor with 4 GB of RAM.

To clarify things, Conor sent over email with permission to quote, as follows:

DB2 Express-C (C for Community) was introduced in 2006. There is no charge for DB2 Express-C. When originally introduced, DB2 Express-C could use up to 2 processor cores and 2GB of RAM. As of 3 April 2012, memory entitlements were increased and DB2 Express-C can now use up to 4GB of RAM. There is no database size limit, no limit on the number of instances or databases per server, and no restriction on the number of users. The supported platforms include: Linux [x86 (32-bit), x86_64 (32- and 64-bit), PPC64 (POWER 64-bit)] and Windows [x86 (32-bit), x86_64 (64-bit)].

If you want to increase processors, memory, or supported features, DB2 Express is available at a cost that is either based on processors or users. When originally introduced, DB2 Express could use up to 2 processor cores and 4GB of RAM. In 2007, DB2 Express processor entitlements were increased to 4 processor cores. As of 3 April 2012, memory entitlements were increased and DB2 Express can now use up to 8GB of RAM.

So, to summarize: the “no charge” version is called DB2 Express-C can use up to 2 processor cores and 4GB of memory; the lowest chargeable edition is DB2 Express which can use up to 4 processor cores and 8GB of memory.

DB2 Express-C includes features like Time Travel Query, pureXML, Graph Store, Spatial Extender, SQL Compatibility, and Backup Compression. DB2 Express adds features like Label-Based Access Control and Row & Column Access Control. In addition, you can purchase the High Availability Disaster Recovery (HADR) feature for use with DB2 Express.

So if I’m reading that correctly, the real story is:

“Generous” is not the word.


14 Responses to “Clarifying IBM DB2 Express-C crippleware”

  1. MattK on April 5th, 2012 12:19 am

    > “Generous” is not the word.

    Express-C seems to be fairly capable, when compared to the “free” offerings from Oracle and Microsoft. Although there are some hardware and feature limitations, the lack of a database size restriction makes it far more useful.

    I would not expect IBM to give the full DB2 product line away for free. I have PostgreSQL for cases where I need a restriction free, no-cost platform.

  2. Curt Monash on April 5th, 2012 1:04 am

    Perhaps, but not raising the hardware limits for 6 years is tantamount to considerable deterioration in the offering.

    I agree with you (and IBM) that not capping database size is the way to go.

  3. Henrik Loeser on April 5th, 2012 3:18 am

    Note that the processing power of the CPUs increased over the years and that features were added to DB2 Express-C over the years. Compared to 2006 you can do a lot more with the free DB2 today.

    What would be “generous” in your terms?

    BTW: I wouldn’t call DB2 Express-C “crippleware”. Ever heard about a freemium business model…?

  4. Curt Monash on April 5th, 2012 3:24 am

    Well, I guess the processing power per core has increased somewhat — mainly through improvements in ancillary parts of the chip — but I don’t know that the difference is huge.

    And crippleware is the essence of many freemium models.

  5. Conor O'Mahony on April 5th, 2012 7:30 am

    If I’m reading the respective product pages correctly, the DB2 entitlements do compare favorably with its primary competitors (Oracle and Microsoft):

    DB2 Express-C:
    Two processors;
    Unlimited data;
    4GB of RAM

    Oracle Express:
    One processor;
    11 GB of data;
    1 GB of RAM

    SQL Server Express:
    One processor;
    10 GB of data;
    1 GB of RAM

  6. Serge Rielau on April 5th, 2012 7:38 am

    Also, note that DB2 Express C also includes the Oracle Application Compatibility features. That essentially allows people to upgrade from Oracle XE to DB2 Express C, or to “downgrade” from a smaller Oracle version to a free DB2 version.


  7. Leon Katsnelson on April 5th, 2012 9:18 am

    I think it is all a matter of perspective. One can say that for 6 years the resources that DB2 Express-C is governed to consume have not gone up. Another way to look at it (and being the one who launched this product and still drives it I think I know better than most) is to say that the initial resource allotments we set were meant to be very generous. Where our competitors confining their free products to 32-bit we offered DB2 Express-C in both 32 and 64-bit. We offered it on many different operating systems including Windows, Linux (x86 and POWER), Solaris x64 and Mac OS. With twice the memory and twice the CPU capacity DB2 Express-C was much more capable product than the offerings from Oracle and Microsoft. The killer for anyone relying on the free databases from Microsoft and Oracle has been hard limit on the size of the database. DB2 Express-C has no limits what so ever. Granted, larger databases can certainly benefit from ability to utilize more memory. That is why we doubled the amount of memory DB2 Express-C can consume to 4GB per instance. That is 4 times what either Oracle or Microsoft allow you to use. And this is per virtual or physical server. So, consolidating 8 DB2 Express-C servers on even a modest 32GB, 2 4-core dual processor servers is easy. Could we have doubled processor allowance to 4 cores? Yes, but frankly we don’t find CPU power makes all that much difference; memory is much more important for good performance and that is what we decided to address by doubling it in DB2 Express-C v10. I also want to point out that DB2 Express-C is quite good when it comes to memory utilization. On the cloud, we are running a complete website with a web server, a content management system, Ruby on Rails stack and DB2 Express-C in 613MB of memory. This is Amazon Micro instance and it is available for free for a year. So, you get free database and free infrastructure. pretty good deal, I think.
    One more thing. Not only is DB2 Express-C free to use in whatever way customers see fit, it is also free to redistribute (e.g. as embedded in an application) without any royalties.

    I think that if you were to spend some time with me discussing what DB2 Express-C has to offer you would use the word “generous”.

    That was 6 years ago. Today, DB2 Express-

  8. MattK on April 5th, 2012 11:03 am

    In the IBM / Oracle / Microsoft peer group, only DB2 Express-C will allow the database to grow on disk as needed. 10/11GB is little better than a non-time-limited trial. Express-C gets fairly regular updates, like MSSQL Express, but unlike XE.

    It seems DB2 presents an option unlike its competitors.

  9. Curt Monash on April 5th, 2012 1:36 pm

    Thanks for the pushback, guys! That’s the best and highest use of the blog comment features. 🙂

  10. Triffids on April 7th, 2012 1:11 pm

    Oracle XE can use 10 cores from 1 CPU, IBM can use only 2 cores. IBM can’t emulate Oracle XE because of snapshot trasaction isolation.

  11. Apex on April 10th, 2012 1:33 pm

    >Oracle XE can use 10 cores from 1 CPU

    Yea, you’re right, it is very usful to have 10 cores with 1Gb RAM and 11Gb db size.

  12. Themba Tjnas Ngobeni on July 28th, 2012 2:11 pm

    I understand what most of you are saying,but lets look at it from a different angle especially Db2 Express-c vs Mysql vs PostgreSQL for Small Medium Enterprises(SME) that needs to implement a datawarehouse/BI Project. in terms of high availability, supportabilty,documentation,speed for query performance. which one will you guys recommend and why? Thanks for a good blog.

  13. Curt Monash on July 28th, 2012 7:04 pm

    Key questions for any DW RDBMS selection include:

    How many tables in the database?
    How wide are they?
    How much data?
    How complex are the most complex joins?
    How many concurrent users?

  14. Mishka on August 9th, 2012 2:47 pm

    >Oracle XE can use 10 cores from 1 CPU

    I believe only one core will be used with Oracle XE, even if you have a quad-core CPU:

    Please, correct me if I’m wrong, but for “snapshot trasaction isolation” (or MVCC as it is known otherwise) DB2 added an equivalent named “Currently Commited”. This was back in 9.7.x. And it’s been available since then with Express-C, including DB2 Express-C 10.1.

Leave a Reply

Feed: DBMS (database management system), DW (data warehousing), BI (business intelligence), and analytics technology Subscribe to the Monash Research feed via RSS or email:


Search our blogs and white papers

Monash Research blogs

User consulting

Building a short list? Refining your strategic plan? We can help.

Vendor advisory

We tell vendors what's happening -- and, more important, what they should do about it.

Monash Research highlights

Learn about white papers, webcasts, and blog highlights, by RSS or email.