[erlang-questions] [ANN] EGTM: embedded ACID compliant NoSQL engine for Erlang
Fri Aug 24 02:20:19 CEST 2012
Yes, MUMPS is somehow "hidden" from mainstream for more over
40 years (it was operating system for DEC PDP minicomputers,
similarly like early UNIX versions).
Maybe it was also the reason why one of its commercial
implementations is called Caché (= hidden in French) :-)
To answer your questions:
(1) to be honest, I don't like benchmarks so much. We don't
know RIAK well enough to compare to. I also think that RIAK
is much more high-level DB than GT.M/EGTM.
If you're asking for speed, I can tell you only stories
about M compared to relational databases (MySQL, PostgreSQL,
Oracle, MS-SQL). In short, even if we wanted to be fair
and artificially slowed down the M task by significant
anti-optimalizations, the SQL did the job for hours where
it took a few minutes in MUMPS.
I will not share these "benchmarks" publicly as they're
good only for marketing, not for any fair, serious and
meaningful technology competition.
The number of factors and input variables is not small
and especially when it comes to NoSQL and distributed
environment, I'd say it's not comparable at all.
But because I am interested too, let's open a competition
- try to define a sensible test scenario (what's the goal,
what we're going to measure);
- implement it with RIAK;
- I will implement the same scenario with GT.M in meantime
(in both variants: native M code and EGTM-powered Erlang)
- we can compare then...
(2) according to IODB, it is something we're using in production,
but it's not ready to be released to public yet.
Actually, we're working on a brand new model compiler (what
unlocks a lot of new features as well as much better performance)
and we will probably change some general API functions to make
it more comfortable to use.
So the only I can say at the moment is: stay tuned! :-)
a simple IODB REST API implemented as a ChicagoBoss controller
what is a part of IDEA CloudOS where we also plan some web GUI
management (EGTM Global browser, IODB model manager, etc.),
but this is definitely on our wishlist...
(3) what actually came into my mind (but I am not sure about
its value in practical life):
- EGTM seems to be a good adept to act as a Mnesia backend
(it can break all the DETS limits I am aware of)
- what about employing EGTM as a RIAK storage backend? :-)
(For example, I have experimented with GT.M as a backend
for OpenLDAP around three years ago.)
----- Original Message -----
> Od: "Zabrane Mickael" <>
> Komu: "Tomas Morstein" <>
> Odeslané: Čtvrtek, 23. Srpen 2012 14:53:49
> Předmět: Re: [erlang-questions] [ANN] EGTM: embedded ACID compliant NoSQL engine for Erlang
> Hi Tomas,
> Didn't hear about MUPS nor GT.M before.
> It's simply awesome. Thanks for sharing !!!
> Can I imagine "egmt" as a good replacement to my RIAK store (for fast
> key/value retrieval)?
> Any pratical benchs?
> Finally, for when are you planning to release "iodb" (
> http://www.idea.cz/technology )?
> On Aug 23, 2012, at 2:24 PM, Tomas Morstein wrote:
> Dear Erlang community,
> It's finally here! We've just released first public version of IDEA
> EGTM is an Erlang application built on the top of FIS GT.M engine
> what is a complete implementation of M[UMPS] technology.
> The main characteristics of M[UMPS] is that it is both language and
> database, so one can directly access persistent multidimensional
> arrays from M language.
> Main benefits of GT.M itself:
> - it's ANSI/ISO M[UMPS] compatible
> - fully ACID compliant
> - it's _very_ fast even if your data layout is not so well optimized
> - it's small and embedded
> - it has native replication
> - it can be distributed across multiple nodes (remote data may be
> treated as local)
> - it's mature -- as a heart of PROFILE core-banking system, it is
> used in hundreds of financial institutions around the world
> - its Linux version is free
> Main benefits of EGTM:
> - inherits all the properties of GT.M
> - allows Erlang to freely call MUMPS routines and share data with
> M[UMPS] applications without any limitations
> - can be used as a data-only storage for Erlang, without a single
> line of M[UMPS] code, so you don't have to learn M language that may
> not look so friendly (but in fact, is very simple and powerful!)
> - EGTM can be deployed on a private secondary GT.M replica instance
> just to make some data mining (web reporting via ChicagoBoss, for
> example) without affecting master database
> - can be used with any Erlang application as well as with ChicagoBoss
> or any other web framework
> - through layered software (from IDEA :) ) like IODB, it's possible
> to map EGTM tree structures to Erlang objects and optionally access
> them via SQL
> - IODB is not publicly available yet (coming soon!), but we use it in
> production and at the moment in conjunction with ChicagoBoss
> integration module, although the model compiler is ready to be used
> - another layered software is EGTM HAC what is EGTM HighAvailibility
> Cluster extension -- the best of HA properties of native GT.M and
> Erlang distributed properties
> Even if the performance of any external binding will never be as good
> as native M code, it should be enough for many applications. If the
> performance is a primary requirement, it's possible to implement
> complex tasks with native M and simply call the native routine from
> An example of application that is written in ChicagoBoss framework
> with pure EGTM (completely without IODB objects) is our website
> http://www.idea.cz .
> I am not able to do it immediately, but the source code may be
> released as a sample CB+EGTM reference project later.
> Some resources:
> - EGTM on GitHub: http://github.com/ztmr/egtm
> - EGTM "homepage": http://labs.idea.cz/egtm
> - GT.M documentation: http://www.mumps.cz/gtm/
> - slides about GT.M:
> - introduction to M-based systems for relational people:
> In meantime of posting this message, there were started several
> discussions in another Erlang-related groups:
> - https://groups.google.com/forum/#!forum/chicagoboss
> Enjoy and feel free to ask!
> erlang-questions mailing list
More information about the erlang-questions