Why is parallel computing harder than using a web service?
Why isn't there a library that lets me call a map function and split the workload across 2, 10, or more computers?
Hmm, how to properly say "in soviet Russia, web service calls you?"
With a web service, the client calls a function on the server, and gets some data in return.
Now, have a pool of clients connect to the server. Then, when the server needs a lot of data processed it sends a subset to the data to each client. It then sends the processing function and dependencies to the clients. The clients process the data and return it to the server.
I'm aiming for something like Google's
MapReduce, just more accessible for programmers without Google-scale resources.
Now, for a twist, what if the server could send the function in bytecode form to the clients along with a wrapper specifying how to run the function (what interpreter, parameters, etc.)?
I know that this has about as much to do with web services as a cow does with the moon, but if you invert the web service model, I think you get close. There is a better way to explain this, but I'm stuck for now. I've started writing a test implementation in Python. Hopefully I'll have something to show this weekend.
I was trying to install CentOS under a Debian 3.1 Xen dom0 by following
these instructions.
I ran into a bit of trouble at one of the earlier steps:
lime:~# rpmdb --initdb
rpmdb: unable to initialize mutex: Function not implemented
rpmdb: /var/lib/rpm/__db.001: unable to initialize environment lock: Function not implemented
error: db4 error(38) from dbenv->open: Function not implemented
rpm: To install rpm packages on Debian systems, use alien. See README.Debian.
error: cannot open Packages index using db3 - Function not implemented (38)
Searching Google revealed other people having the same problem but not finding a solution.
I finally got it to work by upgrading some packages and installing others. I'm not sure exactly which one fixed it.
Here is what I did:
Installed the following packages from Debian Unstable:
libc6_2.3.6-7_i386.deb libselinux1_1.30-1_i386.deb locales_2.3.6-7_all.deb
libc6-dev_2.3.6-7_i386.deb libsepol1_1.12-1_i386.deb rpm_4.4.1-8_i386.deb
libc6-i686_2.3.6-7_i386.deb libssl0.9.8_0.9.8b-1_i386.deb tzdata_2006c-2_all.deb
Installed the following packages from Debian Stable along with their automatic dependencies:
alien lsb-rpm lintian dh-make cvs gettext-doc build-essential binutils-multiarch