Hi list,
I've heard the "develop in Pharo, deploy in Gemstone" idea a million times, and I'd like to understand how people proceed in real-world cases. I've done my homework and I've watched and read a lot of beginner tutorials, but I still have lots of pieces missing. Here's our scenario: We have a web app, built on Pharo 1.4 and Iliad 0.9.1.2. Currently, we handle persistence on the image and we have a scheduler process doing regular Fuel backups every 10 minutes, and we also keep daily backups in case things go wrong.
The app is starting to gain momentum, and it feels like things are going to start being way too sluggish soon, so we need to scale. We've been trying many different persistence approaches, but we'd love to stay inside Smalltalk. We hate having to flatten and pump back our objects all the time. Also, REST apis to any kind of DB are not good enough for us, every o(n) operation becomes unbearably slow, as n REST calls must be sent out and n answers received.
In short, we want to use Gemstone, as we've read it's best for complex, intertwined Smalltalk models, and it scales like crazy. We'd be okay with Pharo being the "dealer" between clients and the DB, but as I understand, GemTools can't be installed on Pharo 1.4, so we're kind of stuck with an old Pharo 1.1.1 image, in which Iliad 0.9.1.2 can't be installed.
What's the solution here? How does one proceed to migrate an app of this kind? We've developed in Pharo, now how does one accomplish the "deploy in Gemstone" part? Any pointers to documentation, blog posts or whatever will be so much appreciated. Thanks a lot in advance, Bernat. Bernat Romagosa. |
Hi Bernat,
what you do usually is to develop in pharo, then create a metacello configuration, and install it in gemstone (using topaz, or something), maybe with some compatibility adds (metacello can handle that in case of need). No GemTools, or anything... AFAIK, gemtools is a way to retrieve objects from gemstone into your non-gemstone application, using it as a regular database. Deploying in gemstone, you can thought on it more as an application server with orthogonal persistence :) Esteban On Jan 29, 2013, at 2:22 PM, Bernat Romagosa <[hidden email]> wrote: > Hi list, > > I've heard the "develop in Pharo, deploy in Gemstone" idea a million times, and I'd like to understand how people proceed in real-world cases. > > I've done my homework and I've watched and read a lot of beginner tutorials, but I still have lots of pieces missing. Here's our scenario: > > We have a web app, built on Pharo 1.4 and Iliad 0.9.1.2. Currently, we handle persistence on the image and we have a scheduler process doing regular Fuel backups every 10 minutes, and we also keep daily backups in case things go wrong. > > The app is starting to gain momentum, and it feels like things are going to start being way too sluggish soon, so we need to scale. > > We've been trying many different persistence approaches, but we'd love to stay inside Smalltalk. We hate having to flatten and pump back our objects all the time. Also, REST apis to any kind of DB are not good enough for us, every o(n) operation becomes unbearably slow, as n REST calls must be sent out and n answers received. > > In short, we want to use Gemstone, as we've read it's best for complex, intertwined Smalltalk models, and it scales like crazy. > > We'd be okay with Pharo being the "dealer" between clients and the DB, but as I understand, GemTools can't be installed on Pharo 1.4, so we're kind of stuck with an old Pharo 1.1.1 image, in which Iliad 0.9.1.2 can't be installed. > > What's the solution here? How does one proceed to migrate an app of this kind? We've developed in Pharo, now how does one accomplish the "deploy in Gemstone" part? > > Any pointers to documentation, blog posts or whatever will be so much appreciated. > > Thanks a lot in advance, > > Bernat. > > -- > Bernat Romagosa. |
In reply to this post by Bernat Romagosa
I'm sure the gemstone guys will chime in with more details.
Iliad does not have to run in the GemTools image. No need to get 0.9.1.2 to run in older Pharo versions. You just use the GemTools image as the IDE for Gemstone. So start the GemTools image and connect to the stone and use it to load Iliad 0.9.1.2 into Gemstone by running the Gemstone specific Monticelo or workspace or browsers. On Jan 29, 2013, at 5:22 AM, Bernat Romagosa <[hidden email]> wrote: > Hi list, > > I've heard the "develop in Pharo, deploy in Gemstone" idea a million times, and I'd like to understand how people proceed in real-world cases. > > I've done my homework and I've watched and read a lot of beginner tutorials, but I still have lots of pieces missing. Here's our scenario: > > We have a web app, built on Pharo 1.4 and Iliad 0.9.1.2. Currently, we handle persistence on the image and we have a scheduler process doing regular Fuel backups every 10 minutes, and we also keep daily backups in case things go wrong. > > The app is starting to gain momentum, and it feels like things are going to start being way too sluggish soon, so we need to scale. > > We've been trying many different persistence approaches, but we'd love to stay inside Smalltalk. We hate having to flatten and pump back our objects all the time. Also, REST apis to any kind of DB are not good enough for us, every o(n) operation becomes unbearably slow, as n REST calls must be sent out and n answers received. > > In short, we want to use Gemstone, as we've read it's best for complex, intertwined Smalltalk models, and it scales like crazy. > > We'd be okay with Pharo being the "dealer" between clients and the DB, but as I understand, GemTools can't be installed on Pharo 1.4, so we're kind of stuck with an old Pharo 1.1.1 image, in which Iliad 0.9.1.2 can't be installed. > > What's the solution here? How does one proceed to migrate an app of this kind? We've developed in Pharo, now how does one accomplish the "deploy in Gemstone" part? > > Any pointers to documentation, blog posts or whatever will be so much appreciated. > > Thanks a lot in advance, > > Bernat. > > -- > Bernat Romagosa. |
I see, thanks for the answers! What about moving all the data to the new Gemstone configuration? Is it possible to materialize Fuel graphs from within Gemstone? 2013/1/29 Paul DeBruicker <[hidden email]> I'm sure the gemstone guys will chime in with more details. Bernat Romagosa. |
I don't know of any port of Fuel to Gemstone. The difficulty depends
on what objects you have serialized. You don't store too specific stuff, like block closures or classes, right? Cheers, Martin On Tue, Jan 29, 2013 at 4:14 PM, Bernat Romagosa <[hidden email]> wrote: > I see, thanks for the answers! > > What about moving all the data to the new Gemstone configuration? Is it > possible to materialize Fuel graphs from within Gemstone? > > > 2013/1/29 Paul DeBruicker <[hidden email]> >> >> I'm sure the gemstone guys will chime in with more details. >> >> Iliad does not have to run in the GemTools image. No need to get 0.9.1.2 >> to run in older Pharo versions. You just use the GemTools image as the IDE >> for Gemstone. So start the GemTools image and connect to the stone and use >> it to load Iliad 0.9.1.2 into Gemstone by running the Gemstone specific >> Monticelo or workspace or browsers. >> >> >> >> >> >> On Jan 29, 2013, at 5:22 AM, Bernat Romagosa >> <[hidden email]> wrote: >> >> > Hi list, >> > >> > I've heard the "develop in Pharo, deploy in Gemstone" idea a million >> > times, and I'd like to understand how people proceed in real-world cases. >> > >> > I've done my homework and I've watched and read a lot of beginner >> > tutorials, but I still have lots of pieces missing. Here's our scenario: >> > >> > We have a web app, built on Pharo 1.4 and Iliad 0.9.1.2. Currently, we >> > handle persistence on the image and we have a scheduler process doing >> > regular Fuel backups every 10 minutes, and we also keep daily backups in >> > case things go wrong. >> > >> > The app is starting to gain momentum, and it feels like things are going >> > to start being way too sluggish soon, so we need to scale. >> > >> > We've been trying many different persistence approaches, but we'd love >> > to stay inside Smalltalk. We hate having to flatten and pump back our >> > objects all the time. Also, REST apis to any kind of DB are not good enough >> > for us, every o(n) operation becomes unbearably slow, as n REST calls must >> > be sent out and n answers received. >> > >> > In short, we want to use Gemstone, as we've read it's best for complex, >> > intertwined Smalltalk models, and it scales like crazy. >> > >> > We'd be okay with Pharo being the "dealer" between clients and the DB, >> > but as I understand, GemTools can't be installed on Pharo 1.4, so we're kind >> > of stuck with an old Pharo 1.1.1 image, in which Iliad 0.9.1.2 can't be >> > installed. >> > >> > What's the solution here? How does one proceed to migrate an app of this >> > kind? We've developed in Pharo, now how does one accomplish the "deploy in >> > Gemstone" part? >> > >> > Any pointers to documentation, blog posts or whatever will be so much >> > appreciated. >> > >> > Thanks a lot in advance, >> > >> > Bernat. >> > >> > -- >> > Bernat Romagosa. >> > > > > -- > Bernat Romagosa. |
No, I don't think I'm storing anything specific to Pharo... just model objects. We're handling quite a lot of user of data right now, so migration is a must, any ideas? :P
Thanks! Bernat. 2013/1/29 Martin Dias <[hidden email]> I don't know of any port of Fuel to Gemstone. The difficulty depends Bernat Romagosa. |
SIXX with the XML Pull Parser mentioned here should do what you want
https://kentreis.wordpress.com/2009/06/01/deep-sixx-with-xml-pull-parser/ Also asking this on the GLASS list might not hurt as the above may be obsolete (or not working in Gemstone 3.1) at this time. I've cc'd it on this email The GLASS list is here: http://seaside.gemstone.com/mailman/listinfo/beta On 01/29/2013 08:21 AM, Bernat Romagosa wrote: > No, I don't think I'm storing anything specific to Pharo... just model > objects. > > We're handling quite a lot of user of data right now, so migration is a > must, any ideas? :P > > Thanks! > > Bernat. > > > 2013/1/29 Martin Dias <[hidden email] <mailto:[hidden email]>> > > I don't know of any port of Fuel to Gemstone. The difficulty depends > on what objects you have serialized. You don't store too specific > stuff, like block closures or classes, right? > > Cheers, > Martin > > On Tue, Jan 29, 2013 at 4:14 PM, Bernat Romagosa > <[hidden email] > <mailto:[hidden email]>> wrote: > > I see, thanks for the answers! > > > > What about moving all the data to the new Gemstone configuration? > Is it > > possible to materialize Fuel graphs from within Gemstone? > > > > > > 2013/1/29 Paul DeBruicker <[hidden email] > <mailto:[hidden email]>> > >> > >> I'm sure the gemstone guys will chime in with more details. > >> > >> Iliad does not have to run in the GemTools image. No need to get > 0.9.1.2 > >> to run in older Pharo versions. You just use the GemTools image > as the IDE > >> for Gemstone. So start the GemTools image and connect to the > stone and use > >> it to load Iliad 0.9.1.2 into Gemstone by running the Gemstone > specific > >> Monticelo or workspace or browsers. > >> > >> > >> > >> > >> > >> On Jan 29, 2013, at 5:22 AM, Bernat Romagosa > >> <[hidden email] > <mailto:[hidden email]>> wrote: > >> > >> > Hi list, > >> > > >> > I've heard the "develop in Pharo, deploy in Gemstone" idea a > million > >> > times, and I'd like to understand how people proceed in > real-world cases. > >> > > >> > I've done my homework and I've watched and read a lot of beginner > >> > tutorials, but I still have lots of pieces missing. Here's our > scenario: > >> > > >> > We have a web app, built on Pharo 1.4 and Iliad 0.9.1.2. > Currently, we > >> > handle persistence on the image and we have a scheduler process > doing > >> > regular Fuel backups every 10 minutes, and we also keep daily > backups in > >> > case things go wrong. > >> > > >> > The app is starting to gain momentum, and it feels like things > are going > >> > to start being way too sluggish soon, so we need to scale. > >> > > >> > We've been trying many different persistence approaches, but > we'd love > >> > to stay inside Smalltalk. We hate having to flatten and pump > back our > >> > objects all the time. Also, REST apis to any kind of DB are not > good enough > >> > for us, every o(n) operation becomes unbearably slow, as n REST > calls must > >> > be sent out and n answers received. > >> > > >> > In short, we want to use Gemstone, as we've read it's best for > complex, > >> > intertwined Smalltalk models, and it scales like crazy. > >> > > >> > We'd be okay with Pharo being the "dealer" between clients and > the DB, > >> > but as I understand, GemTools can't be installed on Pharo 1.4, > so we're kind > >> > of stuck with an old Pharo 1.1.1 image, in which Iliad 0.9.1.2 > can't be > >> > installed. > >> > > >> > What's the solution here? How does one proceed to migrate an > app of this > >> > kind? We've developed in Pharo, now how does one accomplish the > "deploy in > >> > Gemstone" part? > >> > > >> > Any pointers to documentation, blog posts or whatever will be > so much > >> > appreciated. > >> > > >> > Thanks a lot in advance, > >> > > >> > Bernat. > >> > > >> > -- > >> > Bernat Romagosa. > >> > > > > > > > > -- > > Bernat Romagosa. > > > > > -- > Bernat Romagosa. |
Thanks a lot, I'll check it out too! :) 2013/1/29 Paul DeBruicker <[hidden email]> SIXX with the XML Pull Parser mentioned here should do what you want Bernat Romagosa. |
In reply to this post by Bernat Romagosa
If there is an inter-dialect serializer for Pharo and Gemstone, then
you should iterate over all your fuel files migrating one by one. In fact, fuel was designed for speed and precision for recreating any object rather than inter-dialect compatibility. So, at least for the moment, it is out of scope. Good luck! Martin On Tue, Jan 29, 2013 at 5:21 PM, Bernat Romagosa <[hidden email]> wrote: > No, I don't think I'm storing anything specific to Pharo... just model > objects. > > We're handling quite a lot of user of data right now, so migration is a > must, any ideas? :P > > Thanks! > > Bernat. > > > 2013/1/29 Martin Dias <[hidden email]> >> >> I don't know of any port of Fuel to Gemstone. The difficulty depends >> on what objects you have serialized. You don't store too specific >> stuff, like block closures or classes, right? >> >> Cheers, >> Martin >> >> On Tue, Jan 29, 2013 at 4:14 PM, Bernat Romagosa >> <[hidden email]> wrote: >> > I see, thanks for the answers! >> > >> > What about moving all the data to the new Gemstone configuration? Is it >> > possible to materialize Fuel graphs from within Gemstone? >> > >> > >> > 2013/1/29 Paul DeBruicker <[hidden email]> >> >> >> >> I'm sure the gemstone guys will chime in with more details. >> >> >> >> Iliad does not have to run in the GemTools image. No need to get >> >> 0.9.1.2 >> >> to run in older Pharo versions. You just use the GemTools image as the >> >> IDE >> >> for Gemstone. So start the GemTools image and connect to the stone and >> >> use >> >> it to load Iliad 0.9.1.2 into Gemstone by running the Gemstone specific >> >> Monticelo or workspace or browsers. >> >> >> >> >> >> >> >> >> >> >> >> On Jan 29, 2013, at 5:22 AM, Bernat Romagosa >> >> <[hidden email]> wrote: >> >> >> >> > Hi list, >> >> > >> >> > I've heard the "develop in Pharo, deploy in Gemstone" idea a million >> >> > times, and I'd like to understand how people proceed in real-world >> >> > cases. >> >> > >> >> > I've done my homework and I've watched and read a lot of beginner >> >> > tutorials, but I still have lots of pieces missing. Here's our >> >> > scenario: >> >> > >> >> > We have a web app, built on Pharo 1.4 and Iliad 0.9.1.2. Currently, >> >> > we >> >> > handle persistence on the image and we have a scheduler process doing >> >> > regular Fuel backups every 10 minutes, and we also keep daily backups >> >> > in >> >> > case things go wrong. >> >> > >> >> > The app is starting to gain momentum, and it feels like things are >> >> > going >> >> > to start being way too sluggish soon, so we need to scale. >> >> > >> >> > We've been trying many different persistence approaches, but we'd >> >> > love >> >> > to stay inside Smalltalk. We hate having to flatten and pump back our >> >> > objects all the time. Also, REST apis to any kind of DB are not good >> >> > enough >> >> > for us, every o(n) operation becomes unbearably slow, as n REST calls >> >> > must >> >> > be sent out and n answers received. >> >> > >> >> > In short, we want to use Gemstone, as we've read it's best for >> >> > complex, >> >> > intertwined Smalltalk models, and it scales like crazy. >> >> > >> >> > We'd be okay with Pharo being the "dealer" between clients and the >> >> > DB, >> >> > but as I understand, GemTools can't be installed on Pharo 1.4, so >> >> > we're kind >> >> > of stuck with an old Pharo 1.1.1 image, in which Iliad 0.9.1.2 can't >> >> > be >> >> > installed. >> >> > >> >> > What's the solution here? How does one proceed to migrate an app of >> >> > this >> >> > kind? We've developed in Pharo, now how does one accomplish the >> >> > "deploy in >> >> > Gemstone" part? >> >> > >> >> > Any pointers to documentation, blog posts or whatever will be so much >> >> > appreciated. >> >> > >> >> > Thanks a lot in advance, >> >> > >> >> > Bernat. >> >> > >> >> > -- >> >> > Bernat Romagosa. >> >> >> > >> > >> > >> > -- >> > Bernat Romagosa. >> > > > > -- > Bernat Romagosa. |
Free forum by Nabble | Edit this page |