Wednesday, January 13, 2010

Fun with Erlang

I have played with Erlang for some time but never very seriously - in a payed project.
Lately I have enjoyed some development based on Erlang's Mnesia database.
For the same level of features Oracle charges BIG BUCKS for its Times10 database.

Update 1:
MySQL has in memory tables, as Times10 has. MySQL is free though... No wonder why Oracle doesn't like it

Update 2:
Erlang style concurrency. Works well in Erlang. Some fellow architect tried to convince me that well designed threaded programs can perform as well. No way. I do not think that I can explain better than


  1. You are not very clear: are you referring to the performance of the concurrency mechanisms, the overall performance of a concurrent application (in erlang vs. threads)?

    I would say it depends: are those system threads or user-space threads? In what system/library? What is the problem? How many processors/cores are available and what is the degree of parallelism in your problem?

    You cannot just state the erlang is better (or worse) in the general case. It doesn't make sense.

  2. Correction: you _can_ state whatever you like ;-) I will not say you are not allowed or not able to :-)

  3. Erlang concurency is built into language. On C - the pthreads are somehow awkward.
    My machines have 32 virtual processors. They are Netra T2000 SPARCs On this configuration Erlang works somehow better. I have tested only what I've been interested in - some retrieval algorithms on the database. For those tests Erlang performed sensibly better with about 15-20%.