Getting started with Gemstone for Pharo users
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 <tibabenfortlapalanca@gmail.com> 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'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 <tibabenfortlapalanca@gmail.com> 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 <pdebruic@gmail.com>
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 < tibabenfortlapalanca@gmail.com> 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.
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 <tibabenfortlapalanca@gmail.com> 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 <pdebruic@gmail.com>
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 <tibabenfortlapalanca@gmail.com> 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 <tinchodias@gmail.com>
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 <tibabenfortlapalanca@gmail.com> 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 <pdebruic@gmail.com>
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 <tibabenfortlapalanca@gmail.com> 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.
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 <tinchodias@gmail.com <mailto:tinchodias@gmail.com>>
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 <tibabenfortlapalanca@gmail.com <mailto:tibabenfortlapalanca@gmail.com>> 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 <pdebruic@gmail.com <mailto:pdebruic@gmail.com>> >> >> 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 >> <tibabenfortlapalanca@gmail.com <mailto:tibabenfortlapalanca@gmail.com>> 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 <pdebruic@gmail.com>
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 <tinchodias@gmail.com <mailto:tinchodias@gmail.com
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 <tibabenfortlapalanca@gmail.com <mailto:tibabenfortlapalanca@gmail.com>> 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 <pdebruic@gmail.com <mailto:pdebruic@gmail.com>> >> >> 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 >> <tibabenfortlapalanca@gmail.com <mailto:tibabenfortlapalanca@gmail.com>> 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.
-- 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 <tibabenfortlapalanca@gmail.com> 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 <tinchodias@gmail.com>
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 <tibabenfortlapalanca@gmail.com> 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 <pdebruic@gmail.com>
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 <tibabenfortlapalanca@gmail.com> 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.
participants (4)
-
Bernat Romagosa -
Esteban Lorenzano -
Martin Dias -
Paul DeBruicker