New to Earlang

Sean Hinde Sean.Hinde@REDACTED
Tue Nov 26 09:59:38 CET 2002


Hi,

I have assigned today a development group who already started. I would
like to ask you a couple more of questions, if you don't mind: 

Operative System
Are Erlang and Mnesia supposed to be as stable in Windows as they are
supposed to be in Unix? In other words, do you know about anyone who is
using Windows for a commercial Erlang implementations?

- I'm sure people do, but I'm not sure you will find much preference in most
Telcos for running such a critical system on Windows.

Mnesia backups 
Does Mnesia also support online database backups (to restore a database
from scratch, when replicas are not available for any reason)

- Yes it does, though the fully online restore from backup takes up a lot of
memory and for a very large database might not be possible at all (after 4
GBytes the emulator will exit, though the recent support for 64 bit Erlang
should fix this). There is an alternative method which is restore from
fallback which requires a restart.

Mnesia Queries 
I read something like "Mnesia has its own query language". Does mnesia
support standard SQL queries? If not, is it a major issue for you?

- No, and as we do not allow general queries to be run on our databases it
is actually quite convenient that DBA type people cannot perfom them :).
Having said that I would really have to agree with Anders Ramsell about
using mnesia as a cache for the real time data but also streaming off the
updates to an Oracle or similar database. This could be used as the "backup"
and also for all the horrible queries folks like to run on pre-paid systems.

Software module's replicas
Programming with Erlang, is it possible to create fault tolerance
software modules, (not only the databases), as an "application server"?
That is, two software modules running on different machines, either in a
primary/secondary, or in a load sharing configuration.

- Yes, this is a core feature of the OTP parts of the system.

Support
>From your experience, should all the available documentation, examples,
language references, etc., together with this open source mailing list,
be "enough" for a start up, or should I try to arrange some kind of
commercial support? Everything seems to be well documented, proved, and
tested, and I know that sometimes you obtain much faster answers from an
"open source mailing list" than from a commercial support service.

- If you are on a short timescale it would probably be worth spending a bit
of cash to get a quickstart into OTP - the docs are a little heavy going. We
have had a support contract from pretty much the off and I must say it is
extremely useful, very quick, and not very expensive either.

Thank you so much for your time!

- That's quite alright, it is a fascinating project and I look forward to
hearing of your success with Erlang

Sean

-----Mensaje original-----
De: Inswitch Solutions - Erlang Evaluation [mailto:erlang@REDACTED] 
Enviado el: viernes, 04 de enero de 2002 16:10
Para: daniel@REDACTED
Asunto: Fw: New to Earlang


----- Original Message -----
From: "Sean Hinde" <Sean.Hinde@REDACTED>
To: "'Inswitch Solutions - Erlang Evaluation '" <erlang@REDACTED>;
<erlang-questions@REDACTED>
Sent: Monday, November 25, 2002 3:19 PM
Subject: RE: New to Earlang


> Daniel,
>
> I've considered (several times) making such a system. I believe Erlang
would
> be an excellent choice for such a scheme - in my case the only reason
not
to
> do so was that we already had  a different system performing the same
> function!
>
> In our GSM network we have run mnesia nodes holding 1,000,000 rows
> replicated across two machines for the past 3 years or so and have not
had
a
> single outage of those systems other than for hardware or connectivity
> reasons.
>
> A few hints:
>
> We use mnesia fragmented tables which ensures that a single internal
table
> rarely gets bigger than 100,000 rows (though I don't quite know why
anymore
> on reflection!).
>
> The only tricky situation is when the replicated nodes lose contact
with
> each other - the dreaded partitioned networks scenario. With only two
nodes
> the solution is to restart one of the nodes once connection is
restored,
and
> that node will rebuild itself from the other node.
>
> This is quite straightforward but means that any updates on the
restarted
> node are lost - this may be unacceptable in a prepayment system
(peoples
> money at stake).
>
> One solution which springs to mind is to simply have a master/slave
concept
> - route all updates through one node and set up the clients to only
route
> traffic to the second node when the primary is unavailable. It is
possible
> imagine situations where certain LAN failures result in a partition
where
> the nodes can't see each other and some clients can randomly see
single
> nodes.
>
> Another solution (perhaps more useful) is to set things up again so
that
> mnesia replication is used and there is a Primary/Secondary node.
>
> Normally traffic would go to the primary node which would update the
> secondary as normal. If any traffic failed over to the standby node it
would
> try to apply the change remotely on the Primary (Easy in Erlang -
> rpc:call/4). If this failed it could try locally (perhaps in a new
local
> only copy of that customers data), append the change to a log file and
pass
> this to the primary for application once the connection was back up.
>
> This should be OK for a prepaid type application because it doesn't
matter
> too much which order money is added and removed so  long as it ends up
with
> the correct balance in the end (barring various bizarre stepped price
plans
> which can be covered by weasel words about the order of charging of
events
> in the end customer agreement).
>
> Oh, and, sticky locks might be handy if you have one master receiving
all
> updates..
>
> I'll be fascinated to see the outcome of your prototyping.
>
> Best of luck,
>
> Sean Hinde
>
> Intelligent Network Design Manager
> T-Mobile UK
>
>
> -----Original Message-----
> From: Inswitch Solutions - Erlang Evaluation
> To: erlang-questions@REDACTED
> Sent: 1/4/02 3:39 PM
> Subject: New to Earlang
>
> Hi,
>
> I am new to Earlang, trying to evaluate if Erlang is appropiate for
> building a fault tolerance commercial telecom prepaid platform, based
on
> computer telephony modules, with a replicated or distributed database
of
> about 500.000 to 1 millon subscribers.
>
>  Now,
>
> 1) Does anybody have a commercial good experience with Erlang?
>
> 2) Is it possible to obtain commercial email-support? If so, does
> anybody know how much it costs?
>
> Thanks!!
>
> Regards,
>
> daniel
> Daniel Fernandez
> Inswitch Solutions
>
>
>
> NOTICE AND DISCLAIMER:
> This email (including attachments) is confidential.  If you have
received
> this email in error please notify the sender immediately and delete
this
> email from your system without copying or disseminating it or placing
any
> reliance upon its contents.  We cannot accept liability for any
breaches
of
> confidence arising through use of email.  Any opinions expressed in
this
> email (including attachments) are those of the author and do not
necessarily
> reflect our opinions.  We will not accept responsibility for any
commitments
> made by our employees outside the scope of our business.  We do not
warrant
> the accuracy or completeness of such information.
>




NOTICE AND DISCLAIMER:
This email (including attachments) is confidential.  If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents.  We cannot accept liability for any breaches of
confidence arising through use of email.  Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions.  We will not accept responsibility for any commitments
made by our employees outside the scope of our business.  We do not warrant
the accuracy or completeness of such information.




More information about the erlang-questions mailing list