On Mar 7, 2014, at 22:12, alma wrote:

> Having thought through the proposed architecture I realized that independent 
> auctions will end up blocking each other due to the single-threaded nature of 
> Node JS and the databases. For example, consider that there are two live 
> auctions; Auction A and Auction B. If a user submits a bid in Auction A, 
> whilst this bid is being processed by the server another user is essentially 
> blocked from submitting a bid in Auction B. This is not ideal as the two 
> auctions are completely independent of each other and do not share any state. 
> As the site hosts more concurrent auctions this delay will increase.

Such delay will only be the fraction of a second it takes to start processing 
the web request. In the likely event that your request involves database 
transactions or any other asynchronous data gathering, control will be returned 
to the libuv event loop while the data gathering occurs, freeing up the event 
loop to handle other web requests.

I really don't think the problem you're envisioning will be a problem for you 
at all.


> Is there any way that I can architect the application so that this is not the 
> case and that multiple auctions can run in a truly concurrent fashion?

Use a multiple-core server computer and run multiple copies of your node 
application via the built-in cluster module or other similar method, or even 
run multiple copies of the node application on multiple physical servers.

All these copies of the node application can connect to the same database 
server. If performance becomes a problem, the database server could be on its 
own physical server, or be distributed among multiple physical servers.

In short, you'd plan to scale your node web servers, and your database servers, 
separately, as needed.


-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to