Hi Henrik,

My apologies if I stated libuv was part of the Javascript language. Other
than that, yes, it appears we are on the same page now.


Aaron Bartell
litmis.com - Services for open source on IBM i


On Wed, Oct 14, 2015 at 12:19 PM, Henrik Rützou <hr@xxxxxxxxxxxx> wrote:

Aaron

so we agree, libev/libuv isn't part of the javascript language but is a C
program that runs under V8 excluselive on servers under node.js as a
npm and it may be multi-threaded just as a call to a java class may run
multi-threaded if call from an ILE (RPG) program.



On Wed, Oct 14, 2015 at 7:07 PM, Aaron Bartell <aaronbartell@xxxxxxxxx>
wrote:

Hi Henrik,

Agreed, the Javascript runtime is single threaded. It is libuv that
makes
threads happen. Here is an excerpt from the URL I forwarded earlier**.

"How the I/O is run in the background is not of our concern, but due to
the
way our computer hardware works, with the thread as the basic unit of the
processor, libuv and OSes will usually run background/worker threads
and/or
polling to perform tasks in a non-blocking manner."

Again, Javascript runtime is still single threaded BUT when it makes a
call
to libuv, that libuv call could be to spawn a new thread within that same
process to do things that would cause the Javascript runtime to block. I
see Nathan has responded and he explains it better than I have.

**https://nikhilm.github.io/uvbook/basics.html


Aaron Bartell
litmis.com - Services for open source on IBM i


On Wed, Oct 14, 2015 at 11:49 AM, Henrik Rützou <hr@xxxxxxxxxxxx> wrote:

Aaron

what you are stating doesn't make sense. Javascript is known as a
single
threaded
event driven and asynchronously (not to be confused with muli-threaded)
OO
language
(Class or Prototype based).

Google's V8 javascript machine that runs in your chrome browser is
exactly
the same that
the one that runs in node.js.

Putting a layer benieth it om a server that just executes instructions
here
and there would
completely ruin the language and the JVM since you can't be sure that
one
instruction in line
100 is processed before line 101 that may rely on result in line 100 is
finished.

On Wed, Oct 14, 2015 at 6:38 PM, Nathan Andelin <nandelin@xxxxxxxxx>
wrote:


I'm always open to other points of view.


There seems to be general agreement about external reverse-proxies /
load-balancers being an effective means of "routing" work to multiple
Node.js instances (Jobs), which ensures scalability and fail-over
support.
There doesn't seem to be much distinction whether one uses IIS,
NGiNX,
Apache, or whatever for external request routing.

It would be nice to see some benchmarks pertaining to Node's internal
load-balancing via the "Cluster" module. I'd be a bit wary of it
after
just
reading the documentation.

The question that has me the most stumped is the one about "routing"
potentially thousands of URLs to appropriate JavaScript routines,
with
each
routine pertaining to various "applications" within "modules" within
"major-system-areas" (however you organize you broadly-scoped
services)?

Kevin indicated that Node has to be restarted each time a routing
configuration changes in Sails. Inline-coding of routes in Express
obviously suffers from the same problem. I'd be concerned about
performance
as the number of URLs increase.
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.




--
Regards,
Henrik Rützou

http://powerEXT.com <http://powerext.com/>
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.


--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.




--
Regards,
Henrik Rützou

http://powerEXT.com <http://powerext.com/>
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].