3 ms·
I wrote a system that was basically Terracotta, (automagic distributing of java programs across a network) before Terracotta it existed. Basically, I had a be
by runT1ME 16y ago
I wrote a system that was basically Terracotta, (automagic distributing of java programs across a network) before Terracotta it existed.
Basically, I had a bet with a friend that it was impossible to at runtime distribute across multiple machines a program that was designed to run on a single machine.
At the time, I was living at home and not working, so I spent a ton of time reading up on the java classloader, how to instrument classes at runtime, dynamically rewriting calls to the "thread" class and mashalling them over the wire to another vm that was running, and executing it on their.
I didn't get very far, because after thinking about if it could become a product, I realized just how many performance issues there were going to be. Years later when I ran into the terracotta engineers and they were telling me the route they went, I was nodding my head realizing they were running into the same issues I did, and still struggling to overcome some of them.
They have quite a nice product now, but they didn't exactly blow up so I don't have too many regrets about not productizing it.
All in all, I learned a lot about java, virtual machines, threading, and how to teach myself new skills.