[erlang-questions] [ANN] EGTM: embedded ACID compliant NoSQL engine for Erlang

Tomas Morstein tmr@REDACTED
Mon Sep 24 23:58:18 CEST 2012

Hi, there are several points: 

- IDEA EGTM depends on FIS GT.M which is under AGPLv3 for Linux/x86, Linux/x64, OpenVMS/Alpha and Tru64. GT.M is available for more platforms, but under commercial conditions directly from FIS; 
- IDEA EGTM is free (AGPLv3) and should work against all the GT.M versions on all the platforms where both Erlang and GT.M is available. 
- there is no commercial license for EGTM base. Only support and some non-public extensions are available on commercial contract basis; 
- we wanted to make licensing more permissive (for example, Evan Miller, author of ChicagoBoss, recommended us to go with MIT), but it seems to be pointless since the GT.M itself is under AGPLv3 in the best (= the most open) case (Linux) 
- EGTM is not only Erlang code, it's mixture of Erlang, C and M[UMPS]. 

So finally, you don't need to acquire any license neither from FIS nor from IDEA if you're on Linux/x86 or Linux/x64. That's also reason why there's no price list :-) 
If you already have a valid commercial license of FIS GT.M for any non-Linux platform, EGTM is still free, but we expect/recommend you to order EGTM support from IDEA too. 

...well, that's our default policy. For interesting projects, we are flexible enough to discuss an individual conditions/exceptions. 

Dne pondělí, 3. září 2012 21:12:19 UTC+2 Greg Burd napsal(a): 

Given that this project is AGPLv3 I assume that this is a dual-license commercial option product, correct? If so, does someone need to acquire a license from you and from the copyright holders of GT.M or do you have some commercial agreement with them? Where is the price list? 

Just curious given the prevalence of ASLv2 licensing for Erlang code, AGPLv3 is a highly infectious license. 


On Thursday, August 23, 2012, Tomas Morstein wrote: 

Dear Erlang community, 

It's finally here! We've just released first public version of IDEA EGTM. 

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 standalone 
- 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 EGTM. 

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: http://www.mumps.cz/gtm/misc/120730-1agtmasnosqldatabase.pdf 
- introduction to M-based systems for relational people: http://www.fooboo.org/~tmr/gtm/UniversalNoSQL.pdf 

In meantime of posting this message, there were started several discussions in another Erlang-related groups: 
- https://groups.google.com/forum/#!forum/chicagoboss 
- https://www.linkedin.com/groups/EGTM-embedded-ACID-compliant-NoSQL-90878.S.149660834 

Enjoy and feel free to ask! 

erlang-questions mailing list 

Architect, Basho Technologies | http://basho.com | @basho 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120924/36ec5ec5/attachment.htm>

More information about the erlang-questions mailing list