January 15, 2010

Intersystems Cache’ highlights

I talked with Robert Nagle of Intersystems last week, and it went better than at least one other Intersystems briefing I’ve had. Intersystems’ main product is Cache’, an object-oriented DBMS introduced in 1997 (before that Intersystems was focused on the fourth-generation programming language M, renamed from MUMPS). Unlike most other OODBMS, Cache’ is used for a lot of stuff one would think an RDBMS would be used for, across all sorts of industries. That said, there’s a distinct health-care focus to Intersystems, in that:

Note: Intersystems Cache’ is sold mainly through VARs (Value-Added Resellers), aka ISVs/OEMs. I.e., it’s sold by people who write applications on top of it.

So far as I understand – and this is still pretty vague and apt to be partially erroneous – the Intersystems Cache’ technical story goes something like this:

Finally, a few financial highlights:

Comments

8 Responses to “Intersystems Cache’ highlights”

  1. Hans on January 15th, 2010 4:31 pm

    From personal experience, I will suggest that you inspect their insert performance claims closely.

    That performance might come from disabling transactions and using asynchronous disk writes or the file system cache. Which would put the configuration at exactly how other RDBMS vendors handle BLOBs. Which would explain why anyone would think to compare insert performance of records in one DBMS to that of BLOBs in another.

    Having those configuration options is good. But let’s just say that I have been annoyed by the way they phrase various claims in their sales pitch.

    They did have a good looking API for doing high speed data inserts via shared memory. But again, something that should be revealed as part of a performance comparison since use of this API involves tradeoffs.

    Also, the event system that I saw at that time worked like this:

    1) insert event as a record
    2) fire the equivalent of a post-insert trigger

    The triggers were coded in MUMPS, so it is possible that now they are coded in Java. I sort of liked their trigger mechanism, but it’s not really comparable to what a CEP engine does.

    And note that all data in Cache is stored as text. Even numbers, which are automatically converted every time a calculation is done. I’m not judging this, just pointing out an interesting fact.

    If you’re into the tech details, it’s fun to learn a about how Cache works. They have very interesting and sometimes unique approaches to handling DBMS functionality.

  2. Curt Monash on January 15th, 2010 5:33 pm

    Hans,

    You raise excellent points. I hope somebody from the company addresses them.

    Thanks,

    CAM

  3. Scott Jones on April 8th, 2010 8:29 pm

    Unfortunately, some of those points that Hans makes are incorrect.

    1) The product was named Caché because it is very good
    at caching, those performance numbers are not from
    using the file system cache, and why is using asynchronous
    disk I/O an issue for the performance numbers?
    The numbers are for sustained activity, not just doing a small burst of inserts and then having the writing occur after the benchmark completes.

    2) Triggers are coded in CacheObjectScript, not M[UMPS]
    (difference is kind of like C++ compared to C, but even more so)
    I believe that triggers can also be written in CacheBasic (like VBScript), or CacheMultiValueBasic (like MultiValiue/Pick Basics)

    3) Data in Caché is NOT just stored as text, and does NOT need conversion every time a calculation is done.
    They are internally stored as either:
    Binary strings,
    Unicode strings (but in a much more compact form than either using UTF-8, UCS-2 or UCS-4),
    integers,
    scaled decimals (64-bit signed #s with a power of 10 exponent from -128 to 127),
    or IEEE 64-bit doubles.
    Hans may have been confused because to the CacheObjectScript language, those internal types are mostly invisible to the programmer (except for the distinction between normal Caché strings and numbers (i.e. decimal arithmetic) and IEEE floating point values (binary floating point arithmetic)).

  4. Notes on document-oriented NoSQL | DBMS 2 : DataBase Management System Services on February 7th, 2011 3:51 am

    […] DBMS are not what one would normally call object-oriented DBMS; for an example of those, consider Intersystems Cache’. And just to close the loop on confusion — Cache’ can also be used as an XML […]

  5. SQL Editor for InterSystems Caché on September 9th, 2011 1:37 am

    There are some free tools for InterSystems Caché like the SQL Editor: Caché Monitor.

  6. 20th Century DBMS success and failure | Software Memories on July 11th, 2014 7:41 am

    […] DBMS never got off the ground, Intersystems Cache’ eventually excepted. The core problems […]

  7. Valerie J H Powell on November 28th, 2014 5:07 pm

    We have been teaching M programming, systems and databases since 1988, with a focus on InterSystems Caché, while teaching relational databases in general database courses. If students ask for it, we can provide access to Fidelity IS Global GT.M (which you didn’t mention). Your discussion missed a number of points regarding InterSystems environments, and the philosophy behind the programming and database environments. At least one of my students wrote me (several years ago) to report he made enough money as an M (InterSystems) consultant to retire before I did. It is fun to teach InterSystems as there are many surprises for students when they discover what the technology can do. Two faculty in our department also introduce students to other NoSQL environments (MongoDB, Neo4j). Our students were interested to learn that InterSystems Caché is being used in space research – mapping the Milky Way for the European Space Agency (ESA).
    Valerie Powell

  8. Multi-model database managers | DBMS 2 : DataBase Management System Services on August 24th, 2015 4:07 am

    […] the same time I suggested that Intersystems Cache’ was the last significant object-oriented DBMS, only to get the pushback that they were […]

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:

Login

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.