So, as you know, erlang is great because of this one.Are there any great actor model implementations currently that will allow you to spawn tens of thousands of processes without bullshit?--
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 nod...@googlegroups.com
To unsubscribe from this group, send email to
nodejs+un...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en
Hi Tristan,
Thanks for the clarification.
I was wondering, do you think it might be useful to implement Actors using the fibers module (https://npmjs.org/package/fiber)?
I noticed that there's an Actors lib for Ruby implemented with fibers:
https://github.com/tarcieri/revactor
It seems like this might make concurrent programming a bit easier in node.js and help avoid callback pyramids. What do you think?
Thanks,
Matt
--
--
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 nod...@googlegroups.com
To unsubscribe from this group, send email to
nodejs+un...@googlegroups.com
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 a topic in the Google Groups "nodejs" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/nodejs/iHSkdmGaRnk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to nodejs+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
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 nodejs+un...@googlegroups.com.
I have heard that actors such as used by Apple are slow. Is this true in general?
In computer terms, Smalltalk is a recursion on the notion of computer itself. Instead of dividing “computer stuff” into things each less strong than the whole--like data structures, procedures, and functions which are the usual paraphernalia of programming languages--each Smalltalk object is a recursion on the entire possibilities of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network. Questions of concrete representation can thus be postponed almost indefinitely because we are mainly concerned that the computers behave appropriately, and are interested in particular strategies only if the results are off or come back too slowly.Carl Hewitt:
Though it has noble ancestors indeed, Smalltalk's contribution is a new design paradigm--which I called object-oriented--for attacking large problems of the professional programmer, and making small ones possible for the novice user. Object-oriented design is a successful attempt to qualitatively improve the efficiency of modelling the ever more complex dynamic systems and user relationships made possible by the silicon explosion.
[Kay-93]
"An Actor is the fundamental unit of computation which embodies the 3 things – processing, storage and communications – that are essential to computation."Trygve Reenskaug, inventor of the MVC pattern and DCI:
http://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask
Like a computer, a true object offers three basic capabilities that are essential for representing system state and system behavior:(from a draft article as quoted here:)
storing, transforming, and communicating:
Ken is a lightweight C implementation of a rollback-recovery protocol that provides crash-restart resilience to distributed applications. Ken unifies and automates reliability for both application data "at rest" (local process state) and data "in motion" (messages in a distributed system). Ken ensures that crash-restart failures (power failures, kernel panics, process crashes) can't corrupt or destroy data, and Ken guarantees that messages are reliably delivered and processed by recipients in process-pairwise-FIFO order. Ken furthermore provides strong global correctness guarantees and prevents crash-restart failures and packet losses from causing a distributed system to emit incorrect outputs. Finally, Ken's strong guarantees compose effortlessly when independently developed Ken-based distributed systems are integrated.
I'd personally prefer actor to reactor because it's simpler to use. For me working with isolated independent things is much simpler than with state machine and recursions.
On 9/24/13 1:56 PM, Norman Paniagua wrote:
Thanks for the resources…
I read somewhere in this groups that c extensions may slow down nodejs, and fibers just is written in c++, don't know yet how it may affect the performance of the app that uses it.
On Wednesday, July 24, 2013 9:17:24 AM UTC+4, Matthew Browne wrote:Hi,
I realize this thread is a little old, but I just came across it I don't understand your reasoning...yes, Reactor (event loop-based approach) is a different approach than Actors, but Actors have been implemented successfully on top of event loops in some other languages like Python and have achieved very good concurrent performance (from what I can gather anyway).
The main drawback is that you no longer have parallelism across multiple cores, but in node.js we've already accepted that and are willing to settle for separate OS processes instead.
The only real disadvantage I can think of is that the node.js API is designed to be used with callbacks, but for one's own application code (especially the parts that are straight JS that don't use the node API as much) it seems like an actors library like drama is a great approach to concurrency (and asynchronous OOP).
On Monday, June 18, 2012 11:50:41 AM UTC-4, Alexey Petrushin wrote:I'm not sure that Reactor (Node.js) should be used with Actors. It seems that it's a different approaches for solving the same problem - concurrency.
If JS would have ability to spawn tons of cheap processes - then we just don't need such limitation as Node.js async API.
So, it seems it's not just a question of some sort of lib for node.js - but more like a completely different API on top of Node.js (or instead of Node.js).
--
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 nodejs+un...@googlegroups.com.
var ref = system.actorFor(path);
--
Then, if understand well, Actors are like cell, in other words when the system starts all the Actors must be instantiated and will be persistent.
The part I don't understand well its, when the actor finished their job it calls the method (in node will be a callback) "next", where it pass a message, here I'm conceptually lost, isn't like an express app (i.e) where you just res.send(message), or maybe its so but how I build a "response" system.
Another recommendation about the fork, spawn or just require method, which you consider the best? Lets say the pros of fork / spawn will be if they do hard computation it doesn't freeze the main process, but in node it will be using a lot of ram (20mb per fork).
I'm coming from the web world so distributed computation is another world to me, so how do you structure the actors? How the system will know which actor is supervisor of which actor / groups, the only reference I see was akka and it does in the configuration.