Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
v0.8 Roadmap
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 26 - 50 of 57 - Expand all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Bert Belder  
View profile   Translate to Translated (View Original)
 More options Nov 17 2011, 3:40 pm
From: Bert Belder <bertbel...@gmail.com>
Date: Thu, 17 Nov 2011 12:40:18 -0800 (PST)
Local: Thurs, Nov 17 2011 3:40 pm
Subject: Re: v0.8 Roadmap
On Nov 17, 9:04 pm, Liam <networkimp...@gmail.com> wrote:

I don't think Tomasz' experiments used memory sharing. He was just
measuring the 'overhead'  of running a separate process.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tomasz Janczuk  
View profile  
 More options Nov 17 2011, 3:53 pm
From: Tomasz Janczuk <tom...@janczuk.org>
Date: Thu, 17 Nov 2011 12:53:09 -0800 (PST)
Local: Thurs, Nov 17 2011 3:53 pm
Subject: Re: v0.8 Roadmap
I agree the benefit would greatly diminish for memory-bound node
applications since the shared global state of the process would be a
very small fraction of the private non-shared state across isolates. I
am curious if you have you seen a lot of node apps with large memory
consumption in the "real world"? I chose HTTP long polling web chat
app as a benchmark based on the assumption that node works
particularly well the class of apps that need to orchestrate IO while
doing a lot of non-CPU and non-memory intensive waiting in between. I
think such apps would actually show reduced average memory footprint
when hosted in isolates as opposed to individual processes.

On Nov 17, 12:04 pm, Liam <networkimp...@gmail.com> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Liam  
View profile  
 More options Nov 17 2011, 4:01 pm
From: Liam <networkimp...@gmail.com>
Date: Thu, 17 Nov 2011 13:01:10 -0800 (PST)
Local: Thurs, Nov 17 2011 4:01 pm
Subject: Re: v0.8 Roadmap
On Nov 17, 12:40 pm, Bert Belder <bertbel...@gmail.com> wrote:

> On Nov 17, 9:04 pm, Liam <networkimp...@gmail.com> wrote:

> > On Nov 17, 11:57 am, Ryan Dahl <r...@tinyclouds.org> wrote:
> > > ...
> > > There is no memory sharing between isolates.

> > Exactly, so the 2x benefit described seems unlikely for real-world
> > apps.

> I don't think Tomasz' experiments used memory sharing. He was just
> measuring the 'overhead'  of running a separate process.

Right, so shouldn't that be given as KB per process (on various OSes)
not a ratio?

And then the question is whether that cost is worth the benefits of a
process, e.g. it can't crash other processes.

Maybe it's not; I don't have an opinion. Ryan's on the record saying
"processes are the tool for concurrency," so this seems like a
significant shift?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ryan Dahl  
View profile   Translate to Translated (View Original)
 More options Nov 17 2011, 4:31 pm
From: Ryan Dahl <r...@tinyclouds.org>
Date: Thu, 17 Nov 2011 13:31:00 -0800
Subject: Re: [nodejs] Re: v0.8 Roadmap

We're giving people the option of starting a new Node either as a
standalone process or as a new thread/isolate. Most people will want
to continue using processes as their method of parallelizing because
it's most robust. However some people will want to use threads because
with an addon they can do fancy synchronization between the isolates.
The isolates feature is to enable advanced parallelizing techniques in
Node addons.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Liam  
View profile  
 More options Nov 17 2011, 4:34 pm
From: Liam <networkimp...@gmail.com>
Date: Thu, 17 Nov 2011 13:34:02 -0800 (PST)
Local: Thurs, Nov 17 2011 4:34 pm
Subject: Re: v0.8 Roadmap
On Nov 17, 12:53 pm, Tomasz Janczuk <tom...@janczuk.org> wrote:

> I agree the benefit would greatly diminish for memory-bound node
> applications since the shared global state of the process would be a
> very small fraction of the private non-shared state across isolates. I
> am curious if you have you seen a lot of node apps with large memory
> consumption in the "real world"?

I think it's safe to say that the appeal of Javascript will draw in
developers who push Node into every conceivable role, so "Node is for
x & y sorts of apps" probably isn't a durable assertion. I think we'll
see Node displace Java to some extent, as its ecosystem matures.

It's not hard to eat memory in JS. For instance, it's natural to use
an Object as a key:value cache, and an Array as a queue. I suspect
those aren't the most efficient structures for those needs, but it
will be common practice.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Liam  
View profile   Translate to Translated (View Original)
 More options Nov 17 2011, 4:45 pm
From: Liam <networkimp...@gmail.com>
Date: Thu, 17 Nov 2011 13:45:00 -0800 (PST)
Subject: Re: v0.8 Roadmap
On Nov 17, 1:31 pm, Ryan Dahl <r...@tinyclouds.org> wrote:

Aha. Got it. Good idea.

Synchronization like... sharing data via a Buffer?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mark Hahn  
View profile  
 More options Nov 17 2011, 5:00 pm
From: Mark Hahn <m...@hahnca.com>
Date: Thu, 17 Nov 2011 14:00:11 -0800
Local: Thurs, Nov 17 2011 5:00 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

>  He asked a question in a silly way and some of us were pretty rude to

him.

We did not get rude until the skit got really silly.  He kept repeating the
same mantra over and over even though he got a lot of replies explaining
the same thing to him over and over.  We went for an extended period of
time being very polite.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Liam  
View profile   Translate to Translated (View Original)
 More options Nov 17 2011, 5:07 pm
From: Liam <networkimp...@gmail.com>
Date: Thu, 17 Nov 2011 14:07:52 -0800 (PST)
Local: Thurs, Nov 17 2011 5:07 pm
Subject: Re: v0.8 Roadmap
Mark I think you missed your intended thread target :-)

On Nov 17, 2:00 pm, Mark Hahn <m...@hahnca.com> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mark Hahn  
View profile   Translate to Translated (View Original)
 More options Nov 17 2011, 5:16 pm
From: Mark Hahn <m...@hahnca.com>
Date: Thu, 17 Nov 2011 14:16:54 -0800
Local: Thurs, Nov 17 2011 5:16 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

Oooops.  Sorry.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Diogo Resende  
View profile  
 More options Nov 17 2011, 5:31 pm
From: Diogo Resende <drese...@thinkdigital.pt>
Date: Thu, 17 Nov 2011 22:31:48 +0000
Local: Thurs, Nov 17 2011 5:31 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

On Thu, 17 Nov 2011 13:34:02 -0800 (PST), Liam wrote:
> It's not hard to eat memory in JS. For instance, it's natural to use
> an Object as a key:value cache, and an Array as a queue. I suspect
> those aren't the most efficient structures for those needs, but it
> will be common practice.

I agree, but that could change if the core had a specific struct to
handle those 2 kinds of "bad" usage (something similar to Buffer) or
perhaps a C module..

---
Diogo R.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dean Landolt  
View profile   Translate to Translated (View Original)
 More options Nov 17 2011, 5:32 pm
From: Dean Landolt <d...@deanlandolt.com>
Date: Thu, 17 Nov 2011 17:32:39 -0500
Local: Thurs, Nov 17 2011 5:32 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

<3

> Aha. Got it. Good idea.

> Synchronization like... sharing data via a Buffer?

Synchronization like sharing deeply frozen data structures, or some kind of
pass-and-forget reference semantics, or some other interesting model.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ted Young  
View profile  
 More options Nov 17 2011, 7:06 pm
From: Ted Young <t...@radicaldesigns.org>
Date: Thu, 17 Nov 2011 16:06:32 -0800
Local: Thurs, Nov 17 2011 7:06 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

Shouldn't the node list be single threaded, to prevent these kinds of  
user errors?

On Nov 17, 2011, at 2:16 PM, Mark Hahn wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tomasz Janczuk  
View profile  
 More options Nov 17 2011, 11:43 pm
From: Tomasz Janczuk <tom...@janczuk.org>
Date: Thu, 17 Nov 2011 20:43:10 -0800 (PST)
Local: Thurs, Nov 17 2011 11:43 pm
Subject: Re: v0.8 Roadmap
Regarding isolates and domains: is it the intent that when code
running in an isolate fails (e.g. unhandled exception), domains will
allow node to clean up global state associated with that isolate only,
and as a result leave remaining isolates running? Or is the entire
process going down if code in a single isolate fails?

On Nov 16, 1:36 pm, Ryan Dahl <r...@tinyclouds.org> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ryan Dahl  
View profile   Translate to Translated (View Original)
 More options Nov 18 2011, 12:36 am
From: Ryan Dahl <r...@tinyclouds.org>
Date: Thu, 17 Nov 2011 21:36:55 -0800
Local: Fri, Nov 18 2011 12:36 am
Subject: Re: [nodejs] Re: v0.8 Roadmap
On Nov 17, 2011 8:43 PM, "Tomasz Janczuk" <tom...@janczuk.org> wrote:

> Regarding isolates and domains: is it the intent that when code
> running in an isolate fails (e.g. unhandled exception), domains will
> allow node to clean up global state associated with that isolate only,
> and as a result leave remaining isolates running? Or is the entire
> process going down if code in a single isolate fails?

If one isolate fails we will continue execution. We need the ability
to clean up and open handles and I/O requests. The current plan is
this (subject to change): each isolate has many domains, each domains
has many handles. When an isolate goes down it kills all of its
domains, which in turn kills all of its handles.

The intent with domains is simply to give the user more insight and
better control over the I/O they are preforming by grouping related
handles together. For example, if timers are set up during the process
of handling an HTTP request and the HTTP connection is terminated
because a peer hit the stop button on their browser, it would be nice
to be able to automatically cancel those timers.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mikeal Rogers  
View profile   Translate to Translated (View Original)
 More options Nov 18 2011, 12:39 am
From: Mikeal Rogers <mikeal.rog...@gmail.com>
Date: Thu, 17 Nov 2011 21:39:13 -0800
Local: Fri, Nov 18 2011 12:39 am
Subject: Re: [nodejs] Re: v0.8 Roadmap

> If one isolate fails we will continue execution. We need the ability
> to clean up and open handles and I/O requests. The current plan is
> this (subject to change): each isolate has many domains, each domains
> has many handles. When an isolate goes down it kills all of its
> domains, which in turn kills all of its handles.

> The intent with domains is simply to give the user more insight and
> better control over the I/O they are preforming by grouping related
> handles together. For example, if timers are set up during the process
> of handling an HTTP request and the HTTP connection is terminated
> because a peer hit the stop button on their browser, it would be nice
> to be able to automatically cancel those timers.

This is a great explanation. +1

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
geddesign  
View profile   Translate to Translated (View Original)
 More options Nov 18 2011, 2:16 am
From: geddesign <davidcged...@gmail.com>
Date: Thu, 17 Nov 2011 23:16:55 -0800 (PST)
Local: Fri, Nov 18 2011 2:16 am
Subject: Re: v0.8 Roadmap

You should consider using [Trello](http://trello.com) for the Node roadmap.
That would be a nice way of letting people know what's coming and what's
being worked on, and devs can vote on the things in the backlog they'd love
to see implemented.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Liam  
View profile  
 More options Nov 18 2011, 3:17 am
From: Liam <networkimp...@gmail.com>
Date: Fri, 18 Nov 2011 00:17:55 -0800 (PST)
Local: Fri, Nov 18 2011 3:17 am
Subject: Re: v0.8 Roadmap
On Nov 17, 9:36 pm, Ryan Dahl <r...@tinyclouds.org> wrote:

> If one isolate fails we will continue execution. We need the ability
> to clean up and open handles and I/O requests. The current plan is
> this (subject to change): each isolate has many domains, each domains
> has many handles. When an isolate goes down it kills all of its
> domains, which in turn kills all of its handles.

What constitutes failure of an isolate? Uncaught exceptions, and...?

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Paddy Byers  
View profile  
 More options Nov 18 2011, 3:36 am
From: Paddy Byers <paddy.by...@gmail.com>
Date: Fri, 18 Nov 2011 08:36:44 +0000
Local: Fri, Nov 18 2011 3:36 am
Subject: Re: [nodejs] Re: v0.8 Roadmap

Hi,

What constitutes failure of an isolate? Uncaught exceptions, and...?

I think it would be any exit of an isolate, under either normal conditions
(process.exit(), or no remaining watchers) or abnormal conditions (ie
uncaught or fatal exception). The isolate lifecycle should be
indistinguishable from that of any normal node process (with the exception
of handling of external signals, because it would not be possible to direct
a signal at a single isolate only).

Paddy


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tomasz Janczuk  
View profile  
 More options Nov 18 2011, 12:01 pm
From: Tomasz Janczuk <tom...@janczuk.org>
Date: Fri, 18 Nov 2011 09:01:58 -0800 (PST)
Local: Fri, Nov 18 2011 12:01 pm
Subject: Re: v0.8 Roadmap
Besides IO and open handles, is there anything else that gets clean up
when an isolate goes away? For instance, what happens with other
isolates or processes spawned by that isolate?

There is a certain level of resemblance between isolates and
processes, I wonder to what extent the behavioral model of am isolate
and a process will be reconciled in node? Specifically, when I write a
node app, do I need to be explicit if it is to run in a process or an
isolate, or will node runtime provide an environment that abstract
away the differences?

On Nov 17, 9:39 pm, Mikeal Rogers <mikeal.rog...@gmail.com> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Paddy Byers  
View profile  
 More options Nov 18 2011, 1:26 pm
From: Paddy Byers <paddy.by...@gmail.com>
Date: Fri, 18 Nov 2011 18:26:25 +0000
Local: Fri, Nov 18 2011 1:26 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

Hi,

Besides IO and open handles, is there anything else that gets clean up

> when an isolate goes away? For instance, what happens with other
> isolates or processes spawned by that isolate?

> There is a certain level of resemblance between isolates and
> processes, I wonder to what extent the behavioral model of am isolate
> and a process will be reconciled in node? Specifically, when I write a
> node app, do I need to be explicit if it is to run in a process or an
> isolate, or will node runtime provide an environment that abstract
> away the differences?

I can't speak for the core team, and I suppose some of the details are
still under discussion. But for my application I interpreted the need to be:

- behave identically to processes wherever possible;
- be explicit about the differences in behaviour when you can't.

So, if an isolate spawns a child process, the child continues to run when
the isolate exits. Similarly, if an isolate forks another isolate, the
child will continue to run once if the parent exits. For most applications,
there will be no difference seen by the application code between the
isolate and process case.

Those things that are process-wide - such as process.setuid() - cannot be
faithfully emulated in isolates, so the action would apply to all isolates.

env and cwd are process-wide but you could make some kind of effort to fake
these as being independent between multiple isolates in a process. In the
case of cwd, I've made no effort to do that - a call to chdir() will take
effect for all isolates in a process - but for my use-case this was
irrelevant. In the case of env I have the usual process-wide env, and local
isolate overrides that are initialised by the env passed in to fork().
There is a well-defined behaviour for these, but they are different in some
situations from the conventional case; for example, they are not transitive
(ie a child of a child doesn't inherit the local overrides). Again, that's
enough for my use-case, but I don't know if that's a useful behaviour in
the general case.

Paddy


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dean Landolt  
View profile  
 More options Nov 18 2011, 2:32 pm
From: Dean Landolt <d...@deanlandolt.com>
Date: Fri, 18 Nov 2011 14:32:45 -0500
Local: Fri, Nov 18 2011 2:32 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

What are you implying here? I'm under the impression that regardless of
whether your in an isolates environment or not, the child_process module
will continue to spawn real os processes. At least, I sure hope. The whole
isolates pseudo-process worker thing is great and all, but it should get
its own API. The child_process API (other than being unfortunately named)
is just fine -- there's no need to remove this feature (and I don't believe
the core team intends to).

> For most applications, there will be no difference seen by the application
> code between the isolate and process case.

> Those things that are process-wide - such as process.setuid() - cannot be
> faithfully emulated in isolates, so the action would apply to all isolates.

I don't believe the intent of isolates is to emulate processes. It's an
abstraction over processes. Maybe it'll be easier if we just called them
"workers" -- and we can say there are thread-backed workers and
process-backed workers -- both would have a shared API surface. Which one
you choose just depends on your application's needs (thread-backed workers
could enable efficient memory sharing tricks, process workers on *nix could
open the door to CoW fork tricks).

Those in the know: is this a fair characterization?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Paddy Byers  
View profile  
 More options Nov 18 2011, 2:45 pm
From: Paddy Byers <paddy.by...@gmail.com>
Date: Fri, 18 Nov 2011 19:45:27 +0000
Local: Fri, Nov 18 2011 2:45 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

Hi,

What are you implying here? I'm under the impression that regardless of

> whether your in an isolates environment or not, the child_process module
> will continue to spawn real os processes. At least, I sure hope.

Yes, you're right - if I implied otherwise, it wasn't intended.

> The whole isolates pseudo-process worker thing is great and all, but it
> should get its own API. The child_process API (other than being
> unfortunately named) is just fine -- there's no need to remove this feature
> (and I don't believe the core team intends to).

I agree. (But .. child_process.fork() is already a different API from
spawn(), exec() etc, and it has an options argument that could be used to
specify one behaviour or another. But the core team might choose to expose
the functionality in a different way.)

> I don't believe the intent of isolates is to emulate processes. It's an
> abstraction over processes. Maybe it'll be easier if we just called them
> "workers" -- and we can say there are thread-backed workers and
> process-backed workers -- both would have a shared API surface. Which one
> you choose just depends on your application's needs (thread-backed workers
> could enable efficient memory sharing tricks, process workers on *nix could
> open the door to CoW fork tricks).

I agree here as well. I wasn't saying that the idea is to emulate
processes; only to emulate already-well-understood behaviour that we get
today with process-backed workers wherever it is possible and makes sense,
so existing modules and applications are broadly agnostic to the
environment they're run in.

But as I said at the start, don't take my word for it; it was just a
personal take on it.

Thanks - Paddy


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ben Noordhuis  
View profile  
 More options Nov 18 2011, 3:11 pm
From: Ben Noordhuis <i...@bnoordhuis.nl>
Date: Fri, 18 Nov 2011 21:11:03 +0100
Local: Fri, Nov 18 2011 3:11 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

Yes.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
George Snelling, Seattle  
View profile  
 More options Dec 7 2011, 4:48 am
From: "George Snelling, Seattle" <georg...@gmail.com>
Date: Wed, 7 Dec 2011 01:48:04 -0800 (PST)
Local: Wed, Dec 7 2011 4:48 am
Subject: Re: v0.8 Roadmap

Ryan,

I don't understand how the core team prioritizes outstanding bugs/issues vs
new work. See

https://github.com/joyent/node/issues?direction=desc&labels=&mileston...

Am i searching the wrong query?   From that link today with my perms on
github it looks like there are 400+ issues with no milestone assigned.  

Please consider something like "Fix Bugs, Performance, Refactor" as themes
for 0.8.  No new features.  Finish the features you already have.  

Thanks,

-George


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mark Hahn  
View profile  
 More options Dec 7 2011, 1:57 pm
From: Mark Hahn <m...@hahnca.com>
Date: Wed, 7 Dec 2011 10:57:51 -0800
Local: Wed, Dec 7 2011 1:57 pm
Subject: Re: [nodejs] Re: v0.8 Roadmap

>  Please consider something like "Fix Bugs, Performance, Refactor"

Wouldn't that be done in 0.7?

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 26 - 50 of 57 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »