erlang real system sizing and metrics.
Michael C Williams
Tue Dec 15 21:03:26 CET 1998
On Tue, 15 Dec 1998 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
> 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
> 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 :-). 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
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
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.
More information about the erlang-questions