This doesn't change the fact that external monitoring is still going to be
better.

On Wed, Jun 6, 2012 at 1:27 AM, Jeff Willden <jeff.will...@gmail.com> wrote:

> Some readers are not getting the point. When running node in a
> production environment, it is assumed that the app has no blatant
> infinite loops. Yes, that would block the event loop and prevent
> anything from running, but if you've done that, you should take Intro
> to Node 101, or maybe the remedial class...
>
> In a production environment, we're concerned about long running events
> that might be blocking the event loop. If your code is doing database
> calls, then it's yielding to the event loop. No problem there. But
> then if you run a bunch of processing on that using synchronous code,
> and that processing takes longer than whatever threshold you give in
> the code I posted, then it will tell you. We're not concerned as much
> about overall request time, because during the time it's processing
> the request, it's probably yielding. For newbies, yielding means that
> you perform some action and pass it a callback, and when that action
> is done, it calls the callback. Users see this all over in node code.
> That doesn't necessarily mean it yields though...
>
> Case scenario: we had a bunch of db calls to load data that would be
> processed (sorted, organized, transformed, etc) and converted to json
> and then fed to the client. That db calls yield each time a db call is
> made. No problem. The processing was all linear programming. Problem:
> for large data sets it was taking over our threshold. When you have
> more concurrent requests than the number of instances of node (we're
> using cluster) then every instance is busy and your server goes
> unresponsive. BAD news. We had to change some calls to accept a
> callback, and then it would call the callback inside a
> process.nextTick(). That made the code async, and the problem
> disappeared. We could ramp up with hundreds of users and the users
> with only a little data got served fast, the users with lots of data
> not quite as fast, but at least they weren't blocking other users.
>
> People often misunderstand how to build server-side apps with Node.
> With async coding in node, you can easily outmatch performance for
> lots of other environments. With synchronous code in node, you can
> easily have a dead server. Node is great, but it's oh-so-easy to shoot
> yourself in the foot. Gotta be really careful about excessive runs of
> synchronous code.
>
> --
> 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 nodejs@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>

-- 
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 nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to