-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DSS priorities #10
Comments
The Connection module is the core of the DSS. It must be implemented first. Its first iteration should be able to transmit stateless entities (i.e., entities that can be pickled). Distributed Ports can come as a second iteration. |
Hi Guys, I have a probably silly opinion on this regard. It seems that the connection module is the core of a lot of things that are related to the distribution. I know that ports in Oz have some guarantees regarding message exchange and things like that. Would not be easy to get a prototype of the complete distribution subsystem if we use zeromq sockets?. I know that we are not planning to include zeromq as a dependency of Mozart. However, the sockets provided by that library offer also some properties on messages delivery. If we do that we could have more contributions on the distributed subsystem and less people waiting for Ruma (or others) to finish the connection module. I think that there are some very interesting things about that library that we should consider (at least for reference). For instance, a socket can transparently use inter process communication when used by processes of the same machine. I don't think we have that in the previous system and that sounds really appealing. What do you think? Cheers,Gustavo Gutiérrez El jueves, 21 de febrero de 2013 a las 12:37, Sébastien Doeraene escribió:
|
Hi guys, Since beernet was mentioned, I have one comment and two questions. Comment: The only distributed entity I used in Beernet is the distributed Now to the questions. I'm planning to reimplement Beernet using classes. I have noticed that the
that's it for now, On Thu, Feb 21, 2013 at 6:21 PM, Stewart Mackenzie <[email protected]
|
Hi Boriss!
Same syntax, same semantics. The implementation at the VM level is different though, but you probably don't need to know that.
If you don't want to build from source, start with the binary packages available on SourceForge: Then in /bin you have the three usual executables: ozc, ozengine and oz. |
On Sat, Feb 23, 2013 at 11:59 PM, Sébastien Doeraene <
By the way... is this the new hackers mailing list the facto? cheers
|
Dear all. Anything below a socket is fair game, anything above the socket level has It so happens something out there fits the bill. Sustrik (the founding Though nanomsg hasn't built much of a community. So in the long run it is Take it for a spin http://www.github.com/250bpm/nanomsg . Read his blog A fresh start might not be good, because we forego lively, sprawling, Zeromq: has carefully set up a process that places the community above all. Raw sockets: is good, because we have one less build dependency. Given that We plan to create nanomsg-oz bindings and amend the Open.oz library, or I lean towards @ggutierrez suggestion of implementing a prototype first with zeromq/nanomsg. Work starts month end so it'll be great to hear your concerns. |
Hum ... yep, it seems so. Regarding zmq, nanomsg, or anything similar. May I ask the following question: "What does [the said library] offers that 1) raw sockets do not provide and 2) that we need? Also, if the consensus is to introduce a new library for networking abstraction in Mozart 2, then: make sure it fits well in the lightweight threads+asynchronous I/O events scheme. The way boostenv is articulated around Boost ASIO is far from being random. All builtins that perform I/O create an asynchronous request to be performed by ASIO, and return immediately with a dataflow variable that will hold the result. This ensures that other lightweight threads can continue to execute while one is "blocking" on the I/O. Upon completion of the asynchronous handler, the dataflow variable is bound to the actual result, which wakes up any thread waiting on that variable. The whole scheme presents a very natural abstraction over asynchronous I/O, so that Oz code need not care about blocking issues. It was not the case in Mozart 1. |
Kenny and I just had a long skype session with Sébastien . (Thanks, Sébastien for sharing your time and knowledge) It would so seem that we do not need all the functionality associated with zeromq and nanomsg. So we'll do an implementation on raw TCP sockets. Although for your reading pleasure please read: http://www.aosabook.org/en/zeromq.html for some finer details on the architecture. Also a point that I should raise. Kenny implemented a zeromq binding for Mozart1. This triggered strange errors that arose due to interacting with oz lightweight threads. So it isn't worth expending effort solving those issues when they are clearly solved by Sébastien's asynchronous handler. All that is left is opening a connection, which can be done with raw sockets anyway. |
Modified builtin dfs in module Search.
I believe that there is a priority sequence that needs to be addressed in order to get beernet up and running asap.
What would you regard as the proper sequence?
The text was updated successfully, but these errors were encountered: