Tag Info

Hot answers tagged

9

Just because source control + distributed was a huge success, issue tracking + distributed isn't necessarily a good idea. What do we gain from distributed source control and would it apply to issue tracking? Easy branching and merging: not really. Actually it is crucial that everybody is on the same page. So branching would be highly undesirable. ...


9

It's simply to completely separate failure of each different tab and plugin. When one fail, whatever the way it fails, only this one will crash. The monitoring process will just report that it failed and will be able to reload it. C++ have shared memory by default and an exception system which makes easy to crash the whole application if one part isn't ...


8

Virtual machines may be the way to go, the problem is that if you setup 5 VM's on one server the response time between them will be effectively 0, which may not be true in your real environment where there could be a delay between servers. If that is an issue (or could be) I would suggest setting up some servers on AWS or the like to test. Chances are that ...


8

When building distributed systems, the difference between a 'synchronous' system and an 'asynchronous' system is this: A synchronous system has known upper bounds on computation and message delivery times. So: you have an asynchronous system where certain events do not have these known upper bounds. How do you handle it? If these asynchronous processes ...


7

You have two distinct but related challenges: learning about "reliable distributed systems" (eventually you will discover that is an incomplete specification within a large and complex field); and getting a job in that field at some point in your education. Two activities are crucial to the education challenge: becoming familiar with the pertinent ...


6

Do multiple parallel threads trying to synchronize for access to a resource constitute a problem in the domain of distributed computing? They do if those threads could be running on different machines, or even if they're running on the same machine but in different processes.


6

Writing a basic queuing system is fairly simple, but as you noted above with all of the challenges, doing it right is another matter. I've used home grown systems for which I wrote the source code, 3rd party systems, and various JMS providers. JMS (Java Messaging Service) by far is the most complete solution I've encountered thus far. Much of what you ask ...


6

The latest edition of the book that was used in my distributed systems course is Distributed Systems: Concepts and Design, 5th Edition. I believe that the book used when I took the course was the 4th edition. The 5th edition appears to be more up-to-date with the latest technologies and techniques, such as mobile computing and web services. However, it does ...


6

Both Redmine and TRAC are typical web based CRUD applications, architecturally wise, there isn't a reason why they can't be distributed. The simplest way would be to have them use a distributed database, and since both support MySQL the obvious solution would be MySQL Cluster. Then of course you could save yourself any hassle and run them on a cloud, for ...


5

Here's a video lecture I saw a while ago that explains it, with diagrams and everything. Unfortunately, the code examples are all in Scheme, but the explanation the professor gives of how it works is detailed and quite good.


5

Distributed computing is a computing system that has processing occurring on different computers. The individual programs communicate with each other through a series of communication channels. These channels are usually network connections (TCP sockets, for example), but often use other communication protocols and devices (such as DeviceNET, BACNet, SECS-2, ...


5

Having gone through this experience, I am led to wonder as to what exactly constitutes distributed computing? Distributed computing is an inherently parallel collection of processing elements that communicate with one another to tackle one or more problems. Those processing elements are sufficiently separated from each other that it is not practical to ...


5

Order is the least of your problems. Not only does UDP not guarantee delivery order, it doesn't guarantee delivery at all. Lamport's algorithm requires cooperation of all non-requesting processes that would contend for a resource in the form of replies. The loss of a datagram carrying a request would cause the other processes not to send replies. That or ...


4

I just skipped through the paper that you mention, but here I go. We often use a virtualised environment to create experimental setups that involve multiple computers. Using Hyper-V on Windows Server (or similar software) you can easily create a private, isolated network of machines that you can configure on the fly and reuse as needed. You seem to be ...


4

There are several such projects. The most publicized system (but certainly not the first) is Diaspora, which is a social network made of many individually-operated servers, called "pods". Pods can be freely set up using the AGPL-licensed source code. An individual user can set up a personal pod, or can join a public pod. Regardless of what pod your account ...


3

Short of virtual machines -- which are probably the way to go -- most client server software lets the same machine behave as client and server. So you might need a distributed pardagim on a single PC.


3

That one was an eye-opener to me: Expert One-on-One J2EE Development without EJB Author (Rod Johnson, a "Spring guy") has a distinct talent to clearly explain complicated matters. Coupled with his apparently enormous experience, it makes a killer mix that forced me to literally swallow the book - page by page, chapter by chapter. First five chapters were ...


3

Strictly speaking "distributed computing" is any solution that involves processing a single transaction/request/calculation on more than one computer. You will also come across the term "Distributed Systems" which is a catch all term for windows, unix and other small systems servers which would have originally deployed outside the central data center. ...


3

We use this: http://lxc.sourceforge.net/ Linux Containers are extremely light weight virtual machines (basically zero overhead). We are using only 250 machines per physical machine, but there shouldn't be any issue going for thousands per machine. We successfully used both LVM partitions and overlay filesystems as the system root.


3

The Wikipedia article doesn't cite sources for that phrase, and I couldn't find a reference to "client-centric application" in my distributed computing book, however I believe I can try to infer something. To me, that sentence is describing two prevalent paradigms in computing - the client-server model, and a non-distributed client-side application. This is ...


3

It depends on your architecture. On UNIX systems, tools like puppet are really usefull : http://www.puppetlabs.com/ . You have also deployement tools on windows systems throw groups management. Then, you'll also need a monitoring tool. I can't be really precise, as long as you don't give many information to build on.


3

I just pulled a description out of a internal hadoop training I gave and uploaded it to slideshare. It describes the operations in terms of aggregation of geometric shapes: http://www.slideshare.net/jrideout/mapreduce


3

Good question! Nice to see someone considering such points. Philosophising over computer application and usage is important. What you describe is a Distributed System. If I were you, I would consider looking at the likes of SETI@Home project and other "screensaver processes" that use redundant CPU cycles to process large amounts of data. Chances are that ...


3

To answer your general question about what constitutes distributed computing, I would recommend the paper A Note on Distributed Computing by Ann Wollrath, Geoff Wyant, Jim Waldo and Samuel C. Kendall. It covers the recent history of distributed systems and its failures, and it proposes that distributed computing requires thinking differently about the ...


3

Make sure the Windows Service is loosely coupled to the instance of the DB server. This will allow you to move to a N:1 ratio of Windows Service : DB server. There's a whole host of techniques that can be used to make your DB server more robust, but that's not really what you're getting at in your Q. Isolate the following information: What data is ...


3

This problem has been faced may times when trying to build a reliable communication protocol on top of an unreliable one. That starts with TCP (as the underlying IP protocol is unreliable) and any protocol that uses UDP as transport mechanism. The basic idea is that each message/packet gets an identification number and the recipient sends an acknowledgment ...


2

Usually research paper means you want to publicate it on an accepted platform, usually these are conferences. If so you should select such an conference, which has soon a submission deadline. Usually this conference dictate the layout of the submissions (so this answers your question 3.). From the other 2 question I would conclude that you have almost no ...


2

What you are looking for is a niche job. The only way to get one of those is like any other really: apply for a job that fits the description. Of course since you have little experience in the design and building of such systems you'd have to either run for an entry level job, or otherwise leverage your experience if any of it could be of interest to that ...


2

Generally speaking, if it ain't broke, it ain't gonna be fixed. If your company already has systems in place that solve this and they don't see a problem with it, chances are they're not going to want to pay you to fix it, which doesn't make them any money (relative to those applications that people use, with those boring CRUD ops ;)). If your company has ...


2

Email — still in use. Still a distributed service. Instant messaging + VoIP — Even though there are some implementation, which use web interface, it's still not based on web architecture. If standard protocol is used, it's most likely to be XMPP, which is distributed protocol.



Only top voted, non community-wiki answers of a minimum length are eligible