Erlang/OTP Forums

Author Message

<  Erlang questions mailing list  ~  erlang real system sizing and metrics.

kevin at euristix.com
Posted: Tue Dec 15, 1998 6:30 pm Reply with quote
Guest
In a recent post to the mailing list it was mentioned that erlang has
been used in large systems within Ericsson. Without gettin into the
proprietary details of these projects would it be possible to get
some detail that addresses:

1. The General Applications (or Systems) that were built or are
being built.
2. Some ideas on the platform used, I have seen reference
to an Ericsson specific board running Vxworks. Any systems
running on 'workstation' like environments.
3. Usage of the OTP system and some mertics on its use.
i.e size and access/change metrics of the database,
number of replicas etc, overal system performance.
4. Complexity of developed systems i.e. use of supervisors,
event handing, fault tolerance & load sharing behaviors,
number of nodes involved in distributed system.
5. The mix of erlang vs other languages (example C/C++etc)
in these developements.


-- Kevin

-----------------------------
Kevin Glavin
Euristix
(408) 535 2781
-----------------------------


Post generated using Mail2Forum (http://m2f.sourceforge.net)
bhyde at pobox.com
Posted: Tue Dec 15, 1998 6:43 pm Reply with quote
Guest
The "Erlang - A survey of the language and it's industrial
applications" paper covers some of these questions. You
can download a postscript copy off of http://www.erlang.org/doc.html.
It's a few years old. It's comforting. - ben

kevin_at_euristix.com writes:
>
>In a recent post to the mailing list it was mentioned that erlang has
>been used in large systems within Ericsson. Without gettin into the
>proprietary details of these projects would it be possible to get
>some detail that addresses:
>
> 1. The General Applications (or Systems) that were built or are
> being built.
> 2. Some ideas on the platform used, I have seen reference
> to an Ericsson specific board running Vxworks. Any systems
> running on 'workstation' like environments.
> 3. Usage of the OTP system and some mertics on its use.
> i.e size and access/change metrics of the database,
> number of replicas etc, overal system performance.
> 4. Complexity of developed systems i.e. use of supervisors,
> event handing, fault tolerance & load sharing behaviors,
> number of nodes involved in distributed system.
> 5. The mix of erlang vs other languages (example C/C++etc)
> in these developements.
>
>
>-- Kevin
>
>-----------------------------
>Kevin Glavin
>Euristix
>(408) 535 2781
>-----------------------------
>


Post generated using Mail2Forum (http://m2f.sourceforge.net)
mike at erix.ericsson.se
Posted: Tue Dec 15, 1998 8:03 pm Reply with quote
Guest
On Tue, 15 Dec 1998 kevin_at_euristix.com wrote:

>
> In a recent post to the mailing list it was mentioned that erlang has
> been used in large systems within Ericsson. Without gettin into the
> proprietary details of these projects would it be possible to get
> some detail that addresses:

I'll give you as much info as I can without disclosing
proprietary info.

>
> 1. The General Applications (or Systems) that were built or are
> being built.

Mainly control applications in the telecom area. Typically
distributed applications. We have applications which run on up to
about a hundred computers in a networks.

Several of the systems have about 700 K Lines Erlang code
(not counting comments etc). Our metrics show that one line
of Erlang seems to be equivalent to four lines of C++.
Total productivity (hours per line) seems to be the same as
C or C++ which means that using Erlang is about four times
more efficient in man hour terms. This includes all activities
from systems work, design, coding, testing, integration
system test and documentation. One main reason for this is
the way you can use Erlang for prototyping / incremental design
even in very large development projects.

Examples of the systems are, the control and maintenance system
for a 16 Gbit/s ATM switch, a special purpose PABX, a control
system for ADSL access, and a lot of stuff in the mobile data
area.

> 2. Some ideas on the platform used, I have seen reference
> to an Ericsson specific board running Vxworks. Any systems
> running on 'workstation' like environments.

Windows NT (in a 'workstation like' environment), Solaris 2,
VxWorks (not a 'workstation like' environment Smile. All these
platforms have been used to build very large systems.

> 3. Usage of the OTP system and some mertics on its use.
> i.e size and access/change metrics of the
> database, number of replicas etc, overal system
> performance.

I'll leave this to someone else to answer.

> 4. Complexity of developed systems i.e. use of
> supervisors, event handing, fault tolerance & load sharing
> behaviors, number of nodes involved in distributed system.

Highly complex systems with huge code volumes (see above).
Massive use of supervisors, event handling, fault tolerant and
load sharing. Mission critical non-stop systems several usually
with high requirements for hand-over/fail-over fault tolerance.
Systems with over a hundred nodes.

> 5. The mix of erlang vs other languages (example C/C++etc)
> in these developements.

One system has about (from memory - I can get exact figures if
you want).

200 000 lines of C in small processors and another 200 000 lines
of C, largely reused code in the main processors

600 000 lines of Erlang

4 000 lines of Java.


/Mike





Post generated using Mail2Forum (http://m2f.sourceforge.net)
Tomas.Pihl at ericsson.co
Posted: Wed Dec 16, 1998 6:30 am Reply with quote
Guest
> Examples of the systems are, the control and maintenance system
> for a 16 Gbit/s ATM switch, a special purpose PABX, a control
^^^^^^^^^
Think you forgot a `0' there. Should be 160 Gbit/s.


-- Tomas Pihl
tomas.pihl_at_etxb.ericsson.se




Post generated using Mail2Forum (http://m2f.sourceforge.net)
joe at erix.ericsson.se
Posted: Wed Dec 16, 1998 7:45 am Reply with quote
Guest
> In a recent post to the mailing list it was mentioned that erlang has
> been used in large systems within Ericsson. Without gettin into the
> proprietary details of these projects would it be possible to get
> some detail that addresses:
>
> 1. The General Applications (or Systems) that were built or are
> being built.

For obvious reasons we can only point you at the open literature.
A good source of information is

http://www.erlang.se/onlinenews/

In particular browse the stuff in the archive and
in "CeBit'98 Special" - this is a special issue of Erlang news describing
products built in Erlang and presented at CeBit.

Another good jumping off place is

http://www.ericsson.se:800/cslab/~joe/elinks.html


> 4. Complexity of developed systems i.e. use of supervisors,
> event handing, fault tolerance & load sharing behaviors,
> number of nodes involved in distributed system.

This is difficult to answer. One of the the design goals of the
supervisors, client-server behaviours etc. was to "abstract out the
details of the concurrency" - It's *much* easier to understand
sequential code than concurrent code. Our goal was that 95% of all the
application programmers would never "see" a process (or the
concurrency structures used).

This has turned out rather well - It appears that a small number
of design patterns (supervision trees, client-server, event-handler,
etc.) suffice for a high percentage of all the application code
(whether it's 95% or not I don't know - but it is large) - the
exceptions are sufficiently small that they can easily be handled by a
small team.

System design then becomes "choosing from a number of
pre-defined design patterns" rather than a totally unconstrained process.

The design patterns that have evolved (and which are included in
the distribution) are those we have found useful in build large
systems.

The Complexity of these systems is "manageable" is the sense that
to understand the design you first have to understand the design
patterns and what they are good for and then you have to understand
how the problem maps onto the design.

As for the number of nodes in an application this ranges from 1 to
a max of round about 40 (from memory the 40 were two clusters one of 5
nodes the other of 35 - the clusters where in two different towns),

/Joe









Post generated using Mail2Forum (http://m2f.sourceforge.net)
bjarne at erix.ericsson.s
Posted: Wed Dec 16, 1998 8:33 am Reply with quote
Guest
Joe Armstrong wrote:

> > In a recent post to the mailing list it was mentioned that erlang has
> > been used in large systems within Ericsson. Without gettin into the
> > proprietary details of these projects would it be possible to get
> > some detail that addresses:
> >
> > 1. The General Applications (or Systems) that were built or are
> > being built.
>
> For obvious reasons we can only point you at the open literature.
> A good source of information is

One reference:

http://www.erlang.se/onlinenews/archive/Erlang-OTP-news/apr98/

Look for the article with the title "Ericsson ATM Switch AXD 301 - A
New Way to Design Systems".

The following two references describe large systems based
on Erlang/OTP:

http://www.ericsson.se/Review/er1_98/art2/art2.html

"AXD 301--A new generation ATM switching system"

http://www.ericsson.se/Review/er1b_98/art4/art4.html

"ANx--High-speed Internet access"

Best regards

Bjarne




Post generated using Mail2Forum (http://m2f.sourceforge.net)

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum