[Glass] How to start an eval of Gemsatone/S

charles at tradeblazer.com charles at tradeblazer.com
Thu Jan 20 06:28:06 PST 2022


James:

 

Thank you for your responses, to fine tune a bit:

 

1. To talk to GemStone from Pharo you can use the GCI library (with something like SparkleFFI (https://github.com/GemTalk/SparkleFFI) or something that talks directly to a Gem that has its own API (such as https://github.com/jgfoster/WebGS).

What I mean is stuff like setting transaction blocks within the client process i.e. what I was used to with GemBuilder/VW , never mind the use of forwarders etc i.e. which used the underlying GCI behind a local proxy. 

This might not be necessary upon further thought i.e. that was just the model I became used to from working with GemStone in the past. I think what’s there already for example your WebGS should work fine and its more in step with what I have been doing with for example JVM based microservices.

 

2. A Gem can be notified if an object changes and then it could notify a client. I believe that RemoteServiceReplication (https://github.com/GemTalk/RemoteServiceReplication) will (eventually) provide synchronization between GemStone and Pharo, but I’m not able to answer questions about it. With respect to supporting Web Sockets, WebGS (see #1) does have that capability. I’m not aware of any other messaging implementations.

 

Yes, I remember this feature , very useful, but indeed I’m referring to how to notify the client, I understand you have WebSockets but I’m more inclined to use some sort of pub/sub mechanism , not sure how to glue it from GemStone yet but I’m guessing it should not be too much work. RemoteServiceReplication looks interesting and I can see how it works for tooling support not sure yet if that would work for my scenarios i.e. I don’t necessarily want a counterpart local object, maybe.

 

4. The performance for MFC has _vastly_ improved. A job that took several days can now be done in a few hours with minimal disruption on regular operation. It is now very realistic to plan for 24x7 uptime (I understand that one customer schedules 1 day per year of downtime for upgrades, etc.).

 

 

😊, I’m very glad to hear that, yes I exaggerated a bit in our case, all sorts of bank holidays and weekends, although I was really counting on MFC running under 18 hours which is what at one point in time is what we were encountering at BUG.

 

I am already registered for Martin’s meetup presentation.

 

Thank you for your time in answering my questions. 

 

I do look forward to playing again with the database that I was weaned on which has made me biased and disgusted with just about everything else and in particular RDMS 😊

 

 

Charles A. Monteiro
Chief Technology Officer
Datasoft, Inc

Phone: 347-853-7349

Web:tradeblazer.com <http://www.tradeblazer.com> 



 

From: James Foster <Smalltalk at JGFoster.net> 
Sent: Thursday, January 20, 2022 3:25 AM
To: charles at tradeblazer.com
Cc: GLASS Mailing List <glass at lists.gemtalksystems.com>
Subject: Re: [Glass] How to start an eval of Gemsatone/S

 

Hi Charles,

 

In response to your specific question:

 

1. To talk to GemStone from Pharo you can use the GCI library (with something like SparkleFFI (https://github.com/GemTalk/SparkleFFI) or something that talks directly to a Gem that has its own API (such as https://github.com/jgfoster/WebGS).

 

2. A Gem can be notified if an object changes and then it could notify a client. I believe that RemoteServiceReplication (https://github.com/GemTalk/RemoteServiceReplication) will (eventually) provide synchronization between GemStone and Pharo, but I’m not able to answer questions about it. With respect to supporting Web Sockets, WebGS (see #1) does have that capability. I’m not aware of any other messaging implementations.

 

3. As noted by others, GemConnect for Postgres (https://github.com/GemTalk/GemConnect-for-Postgres) is available under the MIT license.

 

4. The performance for MFC has _vastly_ improved. A job that took several days can now be done in a few hours with minimal disruption on regular operation. It is now very realistic to plan for 24x7 uptime (I understand that one customer schedules 1 day per year of downtime for upgrades, etc.).

 

5. GemStone runs fine under WSL 2. It runs under WSL 1 but required a special keyfile to get around WSL 1 bugs.

 

6. For an IDE you can use Topaz (for old-school vim/gdb users), GBS (if you have a license for VA or VW), Jadeite (https://github.com/GemTalk/Jadeite or its predecessor, Jade (https://github.com/jgfoster/Jade)), or experiment with Sparkle (https://github.com/GemTalk/Sparkle). To learn more about Sparkle I suggest you watch Martin McClure’s upcoming presentation (https://www.meetup.com/UKSTUG/events/282299228/).

 

James

 





On Jan 18, 2022, at 7:03 AM, Charles Monteiro via Glass <glass at lists.gemtalksystems.com <mailto:glass at lists.gemtalksystems.com> > wrote:

 

Hi all,

 

Not sure if this is the right spot to ask,let me know if not, this is more of sales evaluation i.e. that’s the intent.

 

Context:

 

I wish to evaluate Gemstone/S at first for some more tangential needs that are currently targeted for Mongo.

Our core product actually runs over Oracle and soon over any RDMS but for practical purposes we are targetting Postgres.

However, potentially the bigger need.

 

>From my FPL and Brooklyn Union Gas days I became quite familiar with using GemBuilder for VW however instead I want to engage Gemstone from Pharo and I understand that not to work the same way.

 

Recently , (yesterday) I discovered Sparkle which led me to discovering SparkleFFI , so there’s apparently some efforts under way to provide comm from Pharo to Gemstone i.e. more akin to Gembuilder/VW.

 

Anyhow, to cut to the chase.

 

Objectives:

 

I’m not interested in building a Seaside app that uses Gemstone for its persistence.

Rather, very thin , quite dumb Svelte/JS UIs will talk to Pharo microservice(s) which in turn will talk to Gemstone i.e. that’s the hope.

 

I would prefer some rpc mechanism where transaction boundaries are controlled from Pharo but I”ll be happy with whatever mechanism I can use to pass objects to Gemstone. 

 

So:

 

1.	How do I talk to Gemstone from Pharo ? 

a.	I believe that Zinc can actually run on Gemstone so json/http(s) would be one way ? Any other way ? best way ?

2.	Is there a notification / push mechanism now in place e.g. change to a Gemstone collection could be notified to interested parties (Pharo)

a.	Is there a web socket implementation?
b.	Any other messaging implementation ? MQTT ? RabbitMQ etc ? 

3.	GemConnect / Postgres , would there be a separate additional license fee ?
4.	Has the performance of markForCollection changed much in all of these years i.e. does one have to allocate downtime ? i.e. what if the app actually needed to run 24x7, what are the accommodations for said scenario under current Gemstone/S.
5.	I assume that for development use that one can install Gemstone under WSL ? If so any issues to be aware of ?
6.	Sparkle is the new IDE ? but I see there’s also IoDE ? 

 

Finally , given all of the above , and never mind Gemstone/ S setup itself , is there some doc that illustrates a simple hello world scenario where a Pharo image is sending to Gemstone objects for persistence ? 

A cursory review of the Glass posts seem Seaside centric.

 

Thanks in advance, 

 

 

 

Charles A. Monteiro
Chief Technology Officer
Datasoft, Inc

Phone: 347-853-7349

Web:tradeblazer.com <http://www.tradeblazer.com/> 

<image001.png>

 

_______________________________________________
Glass mailing list
 <mailto:Glass at lists.gemtalksystems.com> Glass at lists.gemtalksystems.com
 <https://lists.gemtalksystems.com/mailman/listinfo/glass> https://lists.gemtalksystems.com/mailman/listinfo/glass

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/archives/glass/attachments/20220120/9730f460/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 8286 bytes
Desc: not available
URL: <http://lists.gemtalksystems.com/mailman/archives/glass/attachments/20220120/9730f460/attachment-0001.png>


More information about the Glass mailing list