_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions
From: Rapsey <rap...@gmail.com>
To: Ovid <curtis_...@yahoo.com>
Cc: "erlang-q...@erlang.org" <erlang-q...@erlang.org>
Sent: Friday, 18 May 2012, 11:40
Subject: Re: [erlang-questions] Erlang suitability
This is mostly guaranteed by Mnesia, but it is sensitive to start/stop
order. I.e. the last node to stop has to be the first node to start
(in most cases this is not necessary, but it is the case if whole
cluster crashed). Please correct me if I'm wrong.
> 2. Our storage needs are likely to become more complex in the future. The
> daily and total capping amounts will eventually be broken down into a
> variety of different categories, along with synchronization of which
> machines bid on a request and if those individual machines won a request
> (something that we currently cannot do without offline aggregation of this
> data).
Not sure if mnesia supports such "sub clusters". Although it probably
run transactions only over nodes on which a involved table is located,
isn't it?
> When you say "75 machines in a fully connected distributed erlang network is
> a bit much but it should work."Â could you elaborate on that? It makes me a
> bit nervous to hear, particularly since we have no Erlang knowledge and just
> assumed that it was suited for this. Are we thinking about this the wrong
> way?
Mnesia was tailored for 2-3-4-5 nodes at max, since it was designed to
be a storage for storing configuration and short lived data over pairs
of boxes, where one of the boxes is an failover node.
Hi there,
We've a system that run across 75 servers and needs to be highly performant, fault-tolerant, scalable and shares persistent data across all 75 servers. We're investigating Erlang/Mnesia (which we don't know) because it sounds tailor-made for our situation.
We are not using Erlang for our first implementation, but are instead hacking together a solution from known technologies including Perl, MySQL and Redis. We're considering Erlang for our future work.
We have two primary needs: Each box can bid on an auction and potentially spend a tiny amount of money and each of the 75 boxes will receive notifications of a small amount of money spent if they win the auction (the auction notification will probably not be sent to the box bidding in the auction).
Use case 1: If the *total* of all of those small amounts exceeds a daily cap or an all-time cap, all 75 boxes must immediately stop spending bidding in auctions. It seems that each box can run a separate Erlang process and write out "winning bid" information to an Mnesia database and all boxes can read the total amount spent from that to determine if it should stop bidding.
This seems trivial to set up.
Use case 2: we periodically need to reauthenticate to the auction system. We MUST NOT have all 75 boxes trying to reauthenticate at the same time because we will be locked out of the system if we do this. Having a central box handling reauthentication is a single point of failure that we would like to avoid, but we don't know what design pattern Erlang would use to ensure that only one of the 75 Erlang instances would attempt to reauthenticate at any one time (all 75 boxes can share the same authentication token).
Sent: Friday, 18 May 2012, 14:02
Subject: Re: [erlang-questions] Erlang suitability
Use case 1: If the *total* of all of those small amounts exceeds a daily cap or an all-time cap, all 75 boxes must immediately stop spending bidding in auctions. It seems that each box can run a separate Erlang process and write out "winning bid" information to an Mnesia database and all boxes can read the total amount spent from that to determine if it should stop bidding.
This seems trivial to set up.
Use case 2: we periodically need to reauthenticate to the auction system. We MUST NOT have all 75 boxes trying to reauthenticate at the same time because we will be locked out of the system if we do this. Having a central box handling reauthentication is a single point of failure that we would like to avoid, but we don't know what design pattern Erlang would use to ensure that only one of the 75 Erlang instances would attempt to reauthenticate at any one time (all 75 boxes can share the same authentication token).
-- Jesper Louis Andersen Erlang Solutions Ltd., Copenhagen, DK