RE: VM images and working in the VM image
James Robertson <[email protected]> Sun, 13 May 2007 02:21:16 -0400
| Newsgroups | gmane.comp.lang.smalltalk.strongtalk |
|---|---|
| Message-ID | <[email protected]> |
Then I restart the server, and it loads with the new code (the packages I mentioned in my last message). The patches I load are just a simple way of updating a running image in place. I don't save runtime images; I simply patch them in place, and set them up so that they start up in a completely reproducible way. I've never had a server crash during an update, btw... At 11:03 PM 5/12/2007, you wrote: >Assume the server crashes for some reason: what happens to those patches? >Does "loading the patch" imply that the on-disk image is modified? > >Ted Neward >Java, .NET, XML Services >Consulting, Teaching, Speaking, Writing >http://www.tedneward.com > > > -----Original Message----- > > From: [email protected] [mailto:strongtalk- > > [email protected]] On Behalf Of James Robertson > > Sent: Saturday, May 12, 2007 7:52 PM > > To: [email protected] > > Subject: RE: VM images and working in the VM image > > > > > > I'm talking about Cincom Smalltalk (VisualWorks specifically, but > > most of what I said applies to Squeak as well). When I change class > > definitions, existing objects change shape as well - even as methods > > are running. I've not worried about that, because it's not been an issue. > > > > As to how I persist those changes, I do things like this: > > > > 1) Export the changes code from my test server as a Smalltalk file-out > > > > 2) Export the new versions of all the packages changed > > > > 3) Upload the patch and the new packages to the server > > > > 4) Put the new packages into the directory used when the image > > starts, and put the patch into the patch directory > > > > 5) Kick the server (via a web console) to load the patch (and then delete > > it) > > > > I patch in place, and also make sure to have all the most current > > startup packages in place in case the server needs a restart. > > > > I would also argue that most of the "high end" Java app servers you > > speak of could be done quite easily in Smalltalk. We have plenty of > > customers with complex applications. > > > > > > >(*) No argument on the dynamic nature of the image vs. the static nature > > of > > >the Java app server (though, in theory, the app server doesn't need to go > > >down just to change code, either--all that is handled through > > ClassLoaders > > >in the JVM, which are far more dynamic than you might expect). This may > > be > > >more complicated than what we can approach in this email, but... When you > > >change the shape of objects in memory, though, how does the ST image > > handle > > >that? Do existing objects receive the change? And what happens if methods > > >are invoked in the middle of the reload? > > > > > >(BTW, you and I, I think we've had this discussion on the usefulness of > > the > > >ST image before, over blogs--I'm not arguing against the idea, just > > trying > > >to understand it better.) > > > > > >(*) You're referring to your Cincomm Smalltalk flavor, correct? > > VisualWorks? > > >Not Strongtalk? > > > > > >(*) How do you persist those changes to the image so that if the machine > > >crashes, the image doesn't lose all those changes? Do you periodically > > have > > >to flush the image to disk? And is that transactional somehow? > > > > > >(*) Hopefully you'll also allow me to assert that running a blog engine > > >isn't exactly the high-scale requirement environment that some of the > > Java > > >(and .NET) app servers are asked to handle. :-) What I'd *really* love, > > >though, in order to move this particular point out of the realm of the > > >abstract, is to know *exactly* what the runtime footprint of your "app > > >server image" takes up, so as to hopefully compare/contrast it against > > the > > >runtime footprint of a Java app server stack. (I'd much rather argue > > facts > > >than assertions, and numbers against "belief".) > > > > > >Heck, for that matter, I'm not trying to "argue" at all. Just learn. :-) > > > > > >Ted Neward > > >Java, .NET, XML Services > > >Consulting, Teaching, Speaking, Writing > > >http://www.tedneward.com > > > > > > > -----Original Message----- > > > > From: [email protected] [mailto:strongtalk- > > > > [email protected]] On Behalf Of James Robertson > > > > Sent: Saturday, May 12, 2007 7:19 PM > > > > To: [email protected] > > > > Subject: RE: VM images and working in the VM image > > > > > > > > > > > > Oh? My blog: http://www.cincomsmalltalk.com/blog > > > > > > > > runs on an image, as do all the others hosted there: > > > > > > > > http://www.cincomsmalltalk.com/userblogs > > > > > > > > Any arbitrary application server for Java you pick is going to chew > > > > resources as well; claiming that the image is some kind of resource > > > > hog is just silly. Running a Smalltalk image w/o the GUI is fairly > > > > easy to do (at least using the flavor I use) - and having the > > > > compiler present allows me to add patches (including ones that change > > > > the shape of objects in memory) as the image runs - I don't have to > > > > play the "take it down, update, bring it up" game. > > > > > > > > To build my runtime I start with a base image, and start with a > > > > command line like this: > > > > > > > > visual baseImage.im -filein startupScript.st - nogui > > > > > > > > Where startupScript.st has Smalltalk code that loads in the > > > > components I need to run, and configures the system for runtime. > > > > > > > > >Case in point: ST's notion of the IDE-in-the-image is pretty lame > > when > > > > >looking to deploy an image within a "headless" environment. Is there > > > > another > > > > >approach when trying to build a server? Surely when running Seaside, > > for > > > > >example, I don't want or need the overhead of the IDE hanging > > around.... > > > > It > > > > >might be useful in certain scenarios, but most of the time, it's just > > > > going > > > > >to be useless overhead.... > > > > > > > > > >I recognize that it's probably impossible to summarize the ST > > philosophy > > > > >down into a single email of reasonable proportions, and of course > > it's up > > > > to > > > > >Richard to go read more about the ST philosophy if he wants to "get" > > ST > > > > in > > > > >any reasonable sense. But it's not too much to ask, I don't think, to > > > > answer > > > > >in single-sentence form the specific issues being raised--plus, that > > way, > > > > >it's in the archives for others to discover later when they come to > > ST > > > > with > > > > >their own questions. > > > > > > > > > >Ted Neward > > > > >Java, .NET, XML Services > > > > >Consulting, Teaching, Speaking, Writing > > > > >http://www.tedneward.com > > > > > > > > > > > -----Original Message----- > > > > > > From: [email protected] [mailto:strongtalk- > > > > > > [email protected]] On Behalf Of tim Rowledge > > > > > > Sent: Saturday, May 12, 2007 2:50 PM > > > > > > To: [email protected] > > > > > > Subject: Re: VM images and working in the VM image > > > > > > > > > > > > > > > > > > > > > > > > On 12-May-07, at 2:24 PM, Richard wrote: > > > > > > > > > > > > > > > > > > > > Coming from a background of C++, Ruby and Java I'm used the idea > > > > that > > > > > > > you program in an IDE and then you output a Jar > > > > > > That imply isn't the way Smalltalk works Richard. It sounds as if > > you > > > > > > would gain a lot by reading up on how Smalltalk works and how it > > is > > > > > > very different to old ways of doing things. > > > > > > > > > > > > Try Smalltalk Central (http://www.smalltalk-central.com/ > > > > > > showDocument.ssp?section=Articles&name=Documentation), http:// > > > > > > www.iam.unibe.ch/~ducasse/FreeBooks.html etc. > > > > > > > > > > > > Basically we just don't do dead code. As one wag put it "source > > code > > > > > > in files? How quaint." > > > > > > > > > > > > > > > > > > tim > > > > > > -- > > > > > > tim Rowledge; [email protected]; http://www.rowledge.org/tim > > > > > > There can never be a computer language in which you cannot write a > > > > > > bad program. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > No virus found in this incoming message. > > > > > > Checked by AVG Free Edition. > > > > > > Version: 7.5.467 / Virus Database: 269.6.8/800 - Release Date: > > > > 5/11/2007 > > > > > > 7:34 PM > > > > > > > > > > > > > > > >No virus found in this outgoing message. > > > > >Checked by AVG Free Edition. > > > > >Version: 7.5.467 / Virus Database: 269.6.8/800 - Release Date: > > 5/11/2007 > > > > >7:34 PM > > > > > > > > > > > > > > > > > > > > > > > > <Talk Small and Carry a Big Class Library> > > > > James Robertson, Product Manager, Cincom Smalltalk > > > > http://www.cincomsmalltalk.com/blog/blogView > > > > > > > > > > > > > > > > > No virus found in this incoming message. > > > > Checked by AVG Free Edition. > > > > Version: 7.5.467 / Virus Database: 269.6.8/800 - Release Date: > > 5/11/2007 > > > > 7:34 PM > > > > > > > > > >No virus found in this outgoing message. > > >Checked by AVG Free Edition. > > >Version: 7.5.467 / Virus Database: 269.6.8/800 - Release Date: 5/11/2007 > > >7:34 PM > > > > > > > > > > > > > > <Talk Small and Carry a Big Class Library> > > James Robertson, Product Manager, Cincom Smalltalk > > http://www.cincomsmalltalk.com/blog/blogView > > > > > > > > > No virus found in this incoming message. > > Checked by AVG Free Edition. > > Version: 7.5.467 / Virus Database: 269.6.8/800 - Release Date: 5/11/2007 > > 7:34 PM > > > >No virus found in this outgoing message. >Checked by AVG Free Edition. >Version: 7.5.467 / Virus Database: 269.6.8/800 - Release Date: 5/11/2007 >7:34 PM > > > > <Talk Small and Carry a Big Class Library> James Robertson, Product Manager, Cincom Smalltalk http://www.cincomsmalltalk.com/blog/blogView --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Strongtalk-general" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en -~----------~----~----~----~------~----~------~--~---