SlideShare a Scribd company logo
1 of 49
Download to read offline
GemStone Update
Norm Green & James Foster
ESUG 2022
Novi Sad, Serbia
August 24, 2022
Part 1
GemTalk the Company
3
Our History
• 40 Years of Continuous Operation
– Founded: 1982 (as Servio Logic Corporation)
– First Version of GemStone Shipped: 1986
– Name Changed from Servio to GemStone: 1995
– Acquired by Brokat: July 2000
– Management buyout: June 2001
– Acquired by VMware: May 2010
– Acquired by GemTalk Systems: May 2013
4
Financial and Trading Vertical
Kapital is the world leading derivatives trading and
management system – since 1993
DBO is a very large precious metals trading and settlement
system.
- since 1990
ICE is the world’s fastest growing electronic trading exchange
– since 1994
MMI Holdings – Financial portfolio management system. –
since 1995
Lifeware – Cloud-based insurance management solutions –
since 2000
Guava – Financial & treasury Software – since 1998
GemStone Powered Business
5
Manufacturing Vertical
Works application for semiconductor manufacturing
– since 1991
Semiconductor manufacturing software – since 1998
GemStone Powered Business
Manufacturing software – since 2012
Adhesives Manufacturing – since 1997
6
Utilities Vertical
TCMS II- Trouble Call Management System V2
Power Billing – Customer Billing Application – since 1992
GemStone Powered Business
GemTalk provides remote administration and emergency on-call support to augment FPL staff
7
Telecommunications Vertical
Telecom Service Provisioning for Argentina – since 2004
GemStone/S Powered Business
CONDIS – Inventory and cable management – since 1993
Telecom Workflow Management – since 2013
Government Vertical
Border Security – since 1996
Visa Processing – since 2004
Dutch Agricultural Institute – agriculture data collection
– since 1998
GemStone Powered Business
9
GemTalk Partners
10
GemTalk In the Community…
▪ Conferences and Groups
▪ Pharo Consortium (Industrial Member)
▪ ESUG (Platinum Sponsor)
▪ FAST (Platinum Sponsor)
▪ Camp Smalltalk Supreme (Gold Sponsor)
11
GemTalk – The Next Generation
▪ Welcome Kurt Kilpela!
▪ Joined GemTalk on May, 2019
▪ From Kurt’s Cover Letter:
Early in my education, I was
introduced to Smalltalk. Prior to
this, my training was in Java, C, and
C++. Initially, it felt bizarre. In
just a few days, I fell in love.
12
GemTalk – The Next Generation
▪ Welcome Andres Valloud!
▪ Joined GemTalk on June, 2022
▪ Part-time while he finishes his PhD.
13
GemTalk Is Hiring!
▪ Want to write Smalltalk and get paid $$ for it?
▪ Advanced Quality Assurance Engineers
▪ SUnit Test Development
▪ resumes@gemtalksystems.com
Part 2
GemStone Software:
A Lightning Tutorial
15
How Many Have A Good
Feel For What
GemStone Is?
How Many Have Actually
Used GemStone ?
16
So What Is This GemStone Thing?
• A solution to the limitations of traditional Smalltalk:
1. Object space limited to one VM.
2. Object space limited to one host.
3. Object space limited to available RAM.
4. Object changes (since last image save) lost when VM exits.
17
Welcome To The World Of GemStone!
• Object space visible to thousands of VMs on
thousands of machines.
• Object space limited by disk, not RAM.
• Object changes managed by ACID transactions
– Atomic
– Consistent
– Isolated
– Durable
• Object changes guaranteed persistent once
committed.
18
Key Features Of GemStone
• Scalability
– Billions of objects
– Thousands of users.
– Thousands of machines.
– Thousands of transactions per second.
– Terabytes of data.
19
Key Features Of GemStone
• Concurrency
– Multiple user sessions.
– Built-in database transactions.
• Commit
• Abort
• Continue
– Optimistic Concurrency
• Reduced Conflict Collections
– Pessimistic Concurrency
• Object-level read/write locks.
– Namespaces
• Shared and private.
20
Key Features Of GemStone
• Security
– Object-level security.
• User, group, world permissions.
– Login Security
• User-id / Password
• Single-Sign-On (GSSAPI / Kerberos)
• LDAP
• PAM
• X509 Certificate
– Administrative Privileges
• #GarbageCollection
• #OtherPassword
• #SystemControl
21
Key Features Of GemStone
• 100% Smalltalk (“It’s turtles, all the way down”)
– All objects, all the time.
– Classes, methods, blocks, exceptions.
– ANSI Smalltalk compliant
22
Key Features Of GemStone
• Very Large Collection Support
– Collections of millions of objects.
– Optimized searches using b-tree Indexes:
• Equality Indexes (a = b)
– AllEmployees detect:{:each| each.lastName = ‘Ducasse’ }
• Identity Indexes (a == b)
– AllEmployees select:{:each| each.countryOfOrigin == #France }
23
Key Features Of GemStone
• Interfaces to Other Smalltalks
– VisualWorks® - GemBuilder for VisualWorks®
– VA Smalltalk® - GemBuilder for VA Smalltalk®
– Pharo – tODE, GsDevKit, Sparkle, gt4Gemstone
– Jade / Jadeite (Dolphin, open source)
• Interfaces To Other Languages
– C/C++ - GemBuilder for C
– Java – GemBuilder for Java
• Interfaces to Relational Databases
– Oracle – GemConnect for Oracle
– Postgres – GemConnect for Postgres
– Sybase – GemConnect for Sybase (open source)
24
GemStone/S 64 Platforms
• Object Server (Database)
– Linux: x86_64, arm64
– Apple MacOS: x86_64, Apple Silicone (M1 & M2)
– Oracle Solaris: x86_64
– IBM: AIX PowerPC 64 bit
– Raspberry Pi ARM64
• Object Clients
– All of the above, and:
• Microsoft Windows 7, 8, 10,11
25
GemBuilder for Smalltalk (GBS) Platforms
• Cincom® VisualWorks® 9.1
– MS Windows 7/8/10 64 bit
– Linux 32/64 bit
• Instantiations VA Smalltalk™ 9.1, 8.6.3
– MS Windows 7/8/10
26
Jade IDE
• Open source IDE for all versions of GemStone
• Written in Dolphin Smalltalk by James Foster
• MS Windows only
• Supports all versions of GemStone
• Free of charge
• Rich set of tools
– Browsers
– Inspectors
– Debuggers
• https://github.com/jgfoster/Jade
Jade System Browser
27
28
Jadeite IDE
• Fork of the Jade project
• Currently in development at GemTalk for a customer in
Europe
• Support for source code control with Rowan and Git
• Support for Tonal file format
• Migration tools from other SCM systems
29
GemStone/S Licensing Models
• Community Editions
– Free (as in beer) for any use (including commercial)
• Perpetual
– Buy once, own it forever
• Annual Subscription
– Pay annually, cancel any time.
• Value Added Reseller (VAR)
– Percentage of royalties
30
GemStone Community Edition
Starter Limited Full Extended SPC Extended CPU Extended Full
License Kind Perpetual Subscription Subscription Subscription Subscription Subscription
Cores 2 2 2 2 4 4
SPC 1 G 2 G 2G 4G 2G 4G
Gems 10 20 Unlimited Unlimited Unlimited Unlimited
Disk 10G 50G Unlimited Unlimited Unlimited Unlimited
Development DB Unlimited Unlimited Unlimited Unlimited Unlimited Unlimited
Production DB 1 2 Unlimited Unlimited Unlimited Unlimited
Tech Support Community Community 5 tickets 10 tickets 10 tickets 20 tickets
Price Free Free $1500/yr $3000/yr $3000/yr $6000/yr
Distribution With Product Email addr Sales Sales Sales Sales
Source: http://gemtalksystems.com/index.php/lc-licensing/
31
Support Models
• Web Support (24 x 7)
– https://techsupport.gemtalksystems.com
– Help requests processed 8 am – 5 pm Pacific Time
• Emergency 24 x 7 Support
– Available for a premium
– GemTalk provides an emergency phone number
– Call back to the customer within 15 minutes
• Mailing Lists
– GLASS – Open source projects: Seaside / GLASS / tODE
– GemStone Smalltalk – GemStone-specific
– Sign up at:
• https://lists.gemtalksystems.com/mailman/listinfo/
Part 3
Roadmap
33
GS/64 Server Releases
• Version 3.7
– Late 2022 / early 2023
• Version 3.6.x
– 3.6.5: July 2022
• Version 3.5.x
– 3.5.8: February 2022
– 3.5.9: October 2022
• Version 3.4.x
– 3.4.6: February 2021
34
New In Version 3.6
• Support for DARE (Data At Rest Encryption)
– Optional encryption of database extents and tranlogs
– Encryption done at the database page level
• Each page is encrypted individually
– Encryption Mode: XTS-AES
• XTS == XEX-based tweaked-codebook mode with ciphertext
stealing
• Support for 128 and 256 bit XTS keys
• XTS is supported by: BestCrypt, TrueCrypt, VeraCrypt,
DiskCryptor, MS Bitlocker, wolfCrypt.
– Private key (and passphrase) required to start encrypted
GemStone database.
35
New In Version 3.6
• Support for DARE (Data At Rest Encryption)
– Encrypt / decrypt via copydbf utility
• Creating an encrypted database extent:
$GEMSTONE/bin/copydbf –e dbCert.pem –s 128 
–K /home/normg/certs 
$GEMSTONE/data/extent0.dbf $GEMSTONE/data/extent0.sdbf
• Starting an encrypted database:
$GEMSTONE/bin/startstone –D dbPrivateKey.pem 
–J ~/secrets/passphrase.txt –K /home/normg/keys
-z $GEMSTONE/data/system.conf normstone
36
New In Version 3.6
• Restricted System >>performOnServer:
– If enabled, each UserProfile has a whitelist of permited
performOnServer: commands.
– Only commands on the whitelist may be executed.
– Default whitelist is empty.
– Example of adding a permitted command (git)
|up|
up := AllUsers userWithId: ‘normg’.
up addPrivilege: ‘NoPerformOnServer’ ;
addPerformOnServerCommands: (Array with: ‘/usr/bin/git’) .
37
New In Version 3.6
• 4 New Special Classes
– Also known as immediate objects
– Value encoded in the object ID
– Never occupy disk space
• SmallDate
• SmallDateAndTime
• SmallScaledDecimal
• SmallTime
38
New In Version 3.6
• gslist output as JSON:
normg@moop>gslist -j
{"GemStoneServers":[
{
"Name":"norm",
"Host":"moop",
"HostId":"b6f9ea8dee7eca73",
"Ip":"10.94.141.31",
"Status":"Exists",
"Type":"Stone",
"Version":"3.6.0",
"Creator":"normg",
"Started":"2020-09-21T12:44:59.000-07:00",
"Pid": 7733,
"Port": 38423, ….
39
New in Version 3.6
• Amazon AWS Customer Master Key (CMK) Support
– Encrypted data stored in GemStone.
– Encryption keys managed by AWS.
– Cloud user controls if/when data is unlocked and accessed.
40
Coming in Version 3.7
• Support Monitoring GemStone by Prometheus
– “Prometheus is an open-source systems monitoring and
alerting toolkit originally built at SoundCloud. Since its
inception in 2012, many companies and organizations have
adopted Prometheus, and the project has a very active
developer and user community. It is now a standalone open
source project and maintained independently of any company.”
- https://prometheus.io
41
Prometheus Monitoring Sample
42
Coming in Version 3.7
• Faster Smalltalk VM on x86_64
– Native code generator optimized by Andres Valloud
– Reduce number of instructions and number of branches
– Better branch prediction
– Average ~35% improvement
43
Coming in Version 3.7
• MS Azure Customer Master Key (CMK) Support
– Encrypted data stored in GemStone.
– Encryption keys managed by Azure.
44
Coming in Version 3.7
• Fast Instance Migration
– Migrate and commit all instances of up to 2000 classes in a
single operation.
– Multi-threaded: uses multiple C threads for speed.
– Typical Use Case: Add a new instance variable.
45
Coming in Version 3.7
• ssh Support
– New Class: GsSshSocket
– Execute remote commands via ssh
• sftp Support
– New Classes: GsSftpSocket, GsSftpRemoteFile
– Upload and download files via sftp
46
Coming in Version 3.7
• Faster Read Streams on Strings
– New Class: ReadByteStream
– Optimized for reading String and byte objects.
47
Version 3.7 and Beyond…
• Native ROWAN support
– ROWAN is a new package manager that supports FileTree
and Tonel repositories.
– https://github.com/GemTalk/Rowan
• Pharo Support (Sparkle)
– Not GBS for Pharo
– Inspectors and debuggers
– Work In progress.
– https://github.com/GemTalk/Sparkle
– No GA date yet.
– Martin’s UK Smalltalk talk: https://vimeo.com/676889959
– More in Martin McClure’s talk Thursday @ 9 am
48
New Open-Source Projects
• GemConnect for Postgres
– 100% Smalltalk code via FFI
– Requires GemStone/64 v3.6.2 or later
– Available as open source on github:
• https://github.com/GemTalk/GemConnect-for-Postgres
• GemConnect for RabbitMQ
– 100% Smalltalk code via FFI
– Requires GemStone/64 v3.6.4 or later
– Available as open source on github:
• https://github.com/GemTalk/GemConnectForRabbitMQ
Questions?
49
GemTalk Systems LLC
15220 NW Greenbrier Pkwy., Suite 240
Beaverton, Oregon, 97006
Mobile: (503) 804-2041
norm.green@gemtalksystems.com
Norman R. Green
Senior VP & Chief Technical Officer
www.gemtalksystems.com
®

More Related Content

What's hot

Pharo foreign function interface (FFI) by example by Esteban Lorenzano
Pharo foreign function interface (FFI) by example by Esteban LorenzanoPharo foreign function interface (FFI) by example by Esteban Lorenzano
Pharo foreign function interface (FFI) by example by Esteban LorenzanoFAST
 
re:mobidyc the overview
re:mobidyc the overviewre:mobidyc the overview
re:mobidyc the overviewESUG
 
PharoJS: Pharo-Based TDD for Javascript Applications
PharoJS: Pharo-Based TDD for Javascript ApplicationsPharoJS: Pharo-Based TDD for Javascript Applications
PharoJS: Pharo-Based TDD for Javascript ApplicationsESUG
 
Play with FILE Structure - Yet Another Binary Exploit Technique
Play with FILE Structure - Yet Another Binary Exploit TechniquePlay with FILE Structure - Yet Another Binary Exploit Technique
Play with FILE Structure - Yet Another Binary Exploit TechniqueAngel Boy
 
iPhone Programming [7/17] : Behind the Scene
iPhone Programming [7/17] : Behind the SceneiPhone Programming [7/17] : Behind the Scene
iPhone Programming [7/17] : Behind the SceneIMC Institute
 
(公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 (公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 Hiroki Nakahara
 
Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion |
Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion | Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion |
Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion | FabMinds
 
Applications in Pharo
Applications in PharoApplications in Pharo
Applications in PharoESUG
 
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus groupAREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus groupSeongsuPark8
 
Zynq mp勉強会資料
Zynq mp勉強会資料Zynq mp勉強会資料
Zynq mp勉強会資料一路 川染
 
Heap exploitation
Heap exploitationHeap exploitation
Heap exploitationAngel Boy
 
OmniBase Object Database
OmniBase Object DatabaseOmniBase Object Database
OmniBase Object DatabaseESUG
 
The Complete CTF Road Map
The Complete CTF Road Map The Complete CTF Road Map
The Complete CTF Road Map HusseinMuhaisen
 
Systèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionSystèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionLilia Sfaxi
 
Sudoku Solving with Computational Intelligence
Sudoku Solving with Computational IntelligenceSudoku Solving with Computational Intelligence
Sudoku Solving with Computational Intelligenceharaldhiss
 
Minecraft raggio circonferenza lantichi.pdf
Minecraft raggio circonferenza lantichi.pdfMinecraft raggio circonferenza lantichi.pdf
Minecraft raggio circonferenza lantichi.pdfLaura Antichi
 
Introduction to the LLVM Compiler System
Introduction to the LLVM  Compiler SystemIntroduction to the LLVM  Compiler System
Introduction to the LLVM Compiler Systemzionsaint
 

What's hot (20)

Pharo foreign function interface (FFI) by example by Esteban Lorenzano
Pharo foreign function interface (FFI) by example by Esteban LorenzanoPharo foreign function interface (FFI) by example by Esteban Lorenzano
Pharo foreign function interface (FFI) by example by Esteban Lorenzano
 
re:mobidyc the overview
re:mobidyc the overviewre:mobidyc the overview
re:mobidyc the overview
 
PharoJS: Pharo-Based TDD for Javascript Applications
PharoJS: Pharo-Based TDD for Javascript ApplicationsPharoJS: Pharo-Based TDD for Javascript Applications
PharoJS: Pharo-Based TDD for Javascript Applications
 
Play with FILE Structure - Yet Another Binary Exploit Technique
Play with FILE Structure - Yet Another Binary Exploit TechniquePlay with FILE Structure - Yet Another Binary Exploit Technique
Play with FILE Structure - Yet Another Binary Exploit Technique
 
Apprendre à programmer avec scratch
Apprendre à programmer avec scratchApprendre à programmer avec scratch
Apprendre à programmer avec scratch
 
iPhone Programming [7/17] : Behind the Scene
iPhone Programming [7/17] : Behind the SceneiPhone Programming [7/17] : Behind the Scene
iPhone Programming [7/17] : Behind the Scene
 
(公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 (公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017
 
Plan 9: Not (Only) A Better UNIX
Plan 9: Not (Only) A Better UNIXPlan 9: Not (Only) A Better UNIX
Plan 9: Not (Only) A Better UNIX
 
Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion |
Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion | Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion |
Python Programming | JNTUA | UNIT 2 | Conditionals and Recursion |
 
Applications in Pharo
Applications in PharoApplications in Pharo
Applications in Pharo
 
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus groupAREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
 
Zynq mp勉強会資料
Zynq mp勉強会資料Zynq mp勉強会資料
Zynq mp勉強会資料
 
Heap exploitation
Heap exploitationHeap exploitation
Heap exploitation
 
OmniBase Object Database
OmniBase Object DatabaseOmniBase Object Database
OmniBase Object Database
 
The Complete CTF Road Map
The Complete CTF Road Map The Complete CTF Road Map
The Complete CTF Road Map
 
Systèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionSystèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introduction
 
Sudoku Solving with Computational Intelligence
Sudoku Solving with Computational IntelligenceSudoku Solving with Computational Intelligence
Sudoku Solving with Computational Intelligence
 
Metasploitable
MetasploitableMetasploitable
Metasploitable
 
Minecraft raggio circonferenza lantichi.pdf
Minecraft raggio circonferenza lantichi.pdfMinecraft raggio circonferenza lantichi.pdf
Minecraft raggio circonferenza lantichi.pdf
 
Introduction to the LLVM Compiler System
Introduction to the LLVM  Compiler SystemIntroduction to the LLVM  Compiler System
Introduction to the LLVM Compiler System
 

Similar to GEMSTONE UPDATE

GemStone Update 2023
GemStone Update 2023GemStone Update 2023
GemStone Update 2023ESUG
 
Gemstone RoadMap
Gemstone RoadMapGemstone RoadMap
Gemstone RoadMapESUG
 
GemStone/S 64 Update
 GemStone/S 64 Update GemStone/S 64 Update
GemStone/S 64 UpdateESUG
 
GemStone/64 product update and road map
GemStone/64 product update and road mapGemStone/64 product update and road map
GemStone/64 product update and road mapESUG
 
Glass
GlassGlass
GlassESUG
 
GemStone/64 Update
GemStone/64 UpdateGemStone/64 Update
GemStone/64 UpdateESUG
 
Gemtalk Product Roadmap
Gemtalk Product RoadmapGemtalk Product Roadmap
Gemtalk Product RoadmapESUG
 
Gemstone 64 Product Overview
Gemstone 64 Product OverviewGemstone 64 Product Overview
Gemstone 64 Product OverviewESUG
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapESUG
 
GemStone/S 64bit
GemStone/S 64bitGemStone/S 64bit
GemStone/S 64bitESUG
 
CSF18 - GDPR - Sami Laiho
CSF18 - GDPR - Sami LaihoCSF18 - GDPR - Sami Laiho
CSF18 - GDPR - Sami LaihoNCCOMMS
 
Next generation storage: eliminating the guesswork and avoiding forklift upgrade
Next generation storage: eliminating the guesswork and avoiding forklift upgradeNext generation storage: eliminating the guesswork and avoiding forklift upgrade
Next generation storage: eliminating the guesswork and avoiding forklift upgradeJisc
 
14 scaleabilty wics
14 scaleabilty wics14 scaleabilty wics
14 scaleabilty wicsashish61_scs
 
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12Puppet
 
Travelling to the far side of Andromeda
Travelling to the far side of AndromedaTravelling to the far side of Andromeda
Travelling to the far side of AndromedaJose Miguel Esparza
 
GemStone/S Update
GemStone/S UpdateGemStone/S Update
GemStone/S UpdateESUG
 
GLASS: A Share Everything Architecture for Seaside
GLASS: A Share Everything Architecture for SeasideGLASS: A Share Everything Architecture for Seaside
GLASS: A Share Everything Architecture for SeasideESUG
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisorChing-Hsuan Yen
 

Similar to GEMSTONE UPDATE (20)

GemStone Update 2023
GemStone Update 2023GemStone Update 2023
GemStone Update 2023
 
Gemstone RoadMap
Gemstone RoadMapGemstone RoadMap
Gemstone RoadMap
 
GemStone/S 64 Update
 GemStone/S 64 Update GemStone/S 64 Update
GemStone/S 64 Update
 
GemStone/64 product update and road map
GemStone/64 product update and road mapGemStone/64 product update and road map
GemStone/64 product update and road map
 
Glass
GlassGlass
Glass
 
GemStone/64 Update
GemStone/64 UpdateGemStone/64 Update
GemStone/64 Update
 
Gemtalk Product Roadmap
Gemtalk Product RoadmapGemtalk Product Roadmap
Gemtalk Product Roadmap
 
Gemstone 64 Product Overview
Gemstone 64 Product OverviewGemstone 64 Product Overview
Gemstone 64 Product Overview
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product Roadmap
 
GemStone/S 64bit
GemStone/S 64bitGemStone/S 64bit
GemStone/S 64bit
 
Galaxy Big Data with MariaDB
Galaxy Big Data with MariaDBGalaxy Big Data with MariaDB
Galaxy Big Data with MariaDB
 
CSF18 - GDPR - Sami Laiho
CSF18 - GDPR - Sami LaihoCSF18 - GDPR - Sami Laiho
CSF18 - GDPR - Sami Laiho
 
Next generation storage: eliminating the guesswork and avoiding forklift upgrade
Next generation storage: eliminating the guesswork and avoiding forklift upgradeNext generation storage: eliminating the guesswork and avoiding forklift upgrade
Next generation storage: eliminating the guesswork and avoiding forklift upgrade
 
14 scaleabilty wics
14 scaleabilty wics14 scaleabilty wics
14 scaleabilty wics
 
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
 
Travelling to the far side of Andromeda
Travelling to the far side of AndromedaTravelling to the far side of Andromeda
Travelling to the far side of Andromeda
 
Loom promises: be there!
Loom promises: be there!Loom promises: be there!
Loom promises: be there!
 
GemStone/S Update
GemStone/S UpdateGemStone/S Update
GemStone/S Update
 
GLASS: A Share Everything Architecture for Seaside
GLASS: A Share Everything Architecture for SeasideGLASS: A Share Everything Architecture for Seaside
GLASS: A Share Everything Architecture for Seaside
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisor
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 

Recently uploaded (20)

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 

GEMSTONE UPDATE

  • 1. GemStone Update Norm Green & James Foster ESUG 2022 Novi Sad, Serbia August 24, 2022
  • 3. 3 Our History • 40 Years of Continuous Operation – Founded: 1982 (as Servio Logic Corporation) – First Version of GemStone Shipped: 1986 – Name Changed from Servio to GemStone: 1995 – Acquired by Brokat: July 2000 – Management buyout: June 2001 – Acquired by VMware: May 2010 – Acquired by GemTalk Systems: May 2013
  • 4. 4 Financial and Trading Vertical Kapital is the world leading derivatives trading and management system – since 1993 DBO is a very large precious metals trading and settlement system. - since 1990 ICE is the world’s fastest growing electronic trading exchange – since 1994 MMI Holdings – Financial portfolio management system. – since 1995 Lifeware – Cloud-based insurance management solutions – since 2000 Guava – Financial & treasury Software – since 1998 GemStone Powered Business
  • 5. 5 Manufacturing Vertical Works application for semiconductor manufacturing – since 1991 Semiconductor manufacturing software – since 1998 GemStone Powered Business Manufacturing software – since 2012 Adhesives Manufacturing – since 1997
  • 6. 6 Utilities Vertical TCMS II- Trouble Call Management System V2 Power Billing – Customer Billing Application – since 1992 GemStone Powered Business GemTalk provides remote administration and emergency on-call support to augment FPL staff
  • 7. 7 Telecommunications Vertical Telecom Service Provisioning for Argentina – since 2004 GemStone/S Powered Business CONDIS – Inventory and cable management – since 1993 Telecom Workflow Management – since 2013
  • 8. Government Vertical Border Security – since 1996 Visa Processing – since 2004 Dutch Agricultural Institute – agriculture data collection – since 1998 GemStone Powered Business
  • 10. 10 GemTalk In the Community… ▪ Conferences and Groups ▪ Pharo Consortium (Industrial Member) ▪ ESUG (Platinum Sponsor) ▪ FAST (Platinum Sponsor) ▪ Camp Smalltalk Supreme (Gold Sponsor)
  • 11. 11 GemTalk – The Next Generation ▪ Welcome Kurt Kilpela! ▪ Joined GemTalk on May, 2019 ▪ From Kurt’s Cover Letter: Early in my education, I was introduced to Smalltalk. Prior to this, my training was in Java, C, and C++. Initially, it felt bizarre. In just a few days, I fell in love.
  • 12. 12 GemTalk – The Next Generation ▪ Welcome Andres Valloud! ▪ Joined GemTalk on June, 2022 ▪ Part-time while he finishes his PhD.
  • 13. 13 GemTalk Is Hiring! ▪ Want to write Smalltalk and get paid $$ for it? ▪ Advanced Quality Assurance Engineers ▪ SUnit Test Development ▪ resumes@gemtalksystems.com
  • 14. Part 2 GemStone Software: A Lightning Tutorial
  • 15. 15 How Many Have A Good Feel For What GemStone Is? How Many Have Actually Used GemStone ?
  • 16. 16 So What Is This GemStone Thing? • A solution to the limitations of traditional Smalltalk: 1. Object space limited to one VM. 2. Object space limited to one host. 3. Object space limited to available RAM. 4. Object changes (since last image save) lost when VM exits.
  • 17. 17 Welcome To The World Of GemStone! • Object space visible to thousands of VMs on thousands of machines. • Object space limited by disk, not RAM. • Object changes managed by ACID transactions – Atomic – Consistent – Isolated – Durable • Object changes guaranteed persistent once committed.
  • 18. 18 Key Features Of GemStone • Scalability – Billions of objects – Thousands of users. – Thousands of machines. – Thousands of transactions per second. – Terabytes of data.
  • 19. 19 Key Features Of GemStone • Concurrency – Multiple user sessions. – Built-in database transactions. • Commit • Abort • Continue – Optimistic Concurrency • Reduced Conflict Collections – Pessimistic Concurrency • Object-level read/write locks. – Namespaces • Shared and private.
  • 20. 20 Key Features Of GemStone • Security – Object-level security. • User, group, world permissions. – Login Security • User-id / Password • Single-Sign-On (GSSAPI / Kerberos) • LDAP • PAM • X509 Certificate – Administrative Privileges • #GarbageCollection • #OtherPassword • #SystemControl
  • 21. 21 Key Features Of GemStone • 100% Smalltalk (“It’s turtles, all the way down”) – All objects, all the time. – Classes, methods, blocks, exceptions. – ANSI Smalltalk compliant
  • 22. 22 Key Features Of GemStone • Very Large Collection Support – Collections of millions of objects. – Optimized searches using b-tree Indexes: • Equality Indexes (a = b) – AllEmployees detect:{:each| each.lastName = ‘Ducasse’ } • Identity Indexes (a == b) – AllEmployees select:{:each| each.countryOfOrigin == #France }
  • 23. 23 Key Features Of GemStone • Interfaces to Other Smalltalks – VisualWorks® - GemBuilder for VisualWorks® – VA Smalltalk® - GemBuilder for VA Smalltalk® – Pharo – tODE, GsDevKit, Sparkle, gt4Gemstone – Jade / Jadeite (Dolphin, open source) • Interfaces To Other Languages – C/C++ - GemBuilder for C – Java – GemBuilder for Java • Interfaces to Relational Databases – Oracle – GemConnect for Oracle – Postgres – GemConnect for Postgres – Sybase – GemConnect for Sybase (open source)
  • 24. 24 GemStone/S 64 Platforms • Object Server (Database) – Linux: x86_64, arm64 – Apple MacOS: x86_64, Apple Silicone (M1 & M2) – Oracle Solaris: x86_64 – IBM: AIX PowerPC 64 bit – Raspberry Pi ARM64 • Object Clients – All of the above, and: • Microsoft Windows 7, 8, 10,11
  • 25. 25 GemBuilder for Smalltalk (GBS) Platforms • Cincom® VisualWorks® 9.1 – MS Windows 7/8/10 64 bit – Linux 32/64 bit • Instantiations VA Smalltalk™ 9.1, 8.6.3 – MS Windows 7/8/10
  • 26. 26 Jade IDE • Open source IDE for all versions of GemStone • Written in Dolphin Smalltalk by James Foster • MS Windows only • Supports all versions of GemStone • Free of charge • Rich set of tools – Browsers – Inspectors – Debuggers • https://github.com/jgfoster/Jade
  • 28. 28 Jadeite IDE • Fork of the Jade project • Currently in development at GemTalk for a customer in Europe • Support for source code control with Rowan and Git • Support for Tonal file format • Migration tools from other SCM systems
  • 29. 29 GemStone/S Licensing Models • Community Editions – Free (as in beer) for any use (including commercial) • Perpetual – Buy once, own it forever • Annual Subscription – Pay annually, cancel any time. • Value Added Reseller (VAR) – Percentage of royalties
  • 30. 30 GemStone Community Edition Starter Limited Full Extended SPC Extended CPU Extended Full License Kind Perpetual Subscription Subscription Subscription Subscription Subscription Cores 2 2 2 2 4 4 SPC 1 G 2 G 2G 4G 2G 4G Gems 10 20 Unlimited Unlimited Unlimited Unlimited Disk 10G 50G Unlimited Unlimited Unlimited Unlimited Development DB Unlimited Unlimited Unlimited Unlimited Unlimited Unlimited Production DB 1 2 Unlimited Unlimited Unlimited Unlimited Tech Support Community Community 5 tickets 10 tickets 10 tickets 20 tickets Price Free Free $1500/yr $3000/yr $3000/yr $6000/yr Distribution With Product Email addr Sales Sales Sales Sales Source: http://gemtalksystems.com/index.php/lc-licensing/
  • 31. 31 Support Models • Web Support (24 x 7) – https://techsupport.gemtalksystems.com – Help requests processed 8 am – 5 pm Pacific Time • Emergency 24 x 7 Support – Available for a premium – GemTalk provides an emergency phone number – Call back to the customer within 15 minutes • Mailing Lists – GLASS – Open source projects: Seaside / GLASS / tODE – GemStone Smalltalk – GemStone-specific – Sign up at: • https://lists.gemtalksystems.com/mailman/listinfo/
  • 33. 33 GS/64 Server Releases • Version 3.7 – Late 2022 / early 2023 • Version 3.6.x – 3.6.5: July 2022 • Version 3.5.x – 3.5.8: February 2022 – 3.5.9: October 2022 • Version 3.4.x – 3.4.6: February 2021
  • 34. 34 New In Version 3.6 • Support for DARE (Data At Rest Encryption) – Optional encryption of database extents and tranlogs – Encryption done at the database page level • Each page is encrypted individually – Encryption Mode: XTS-AES • XTS == XEX-based tweaked-codebook mode with ciphertext stealing • Support for 128 and 256 bit XTS keys • XTS is supported by: BestCrypt, TrueCrypt, VeraCrypt, DiskCryptor, MS Bitlocker, wolfCrypt. – Private key (and passphrase) required to start encrypted GemStone database.
  • 35. 35 New In Version 3.6 • Support for DARE (Data At Rest Encryption) – Encrypt / decrypt via copydbf utility • Creating an encrypted database extent: $GEMSTONE/bin/copydbf –e dbCert.pem –s 128 –K /home/normg/certs $GEMSTONE/data/extent0.dbf $GEMSTONE/data/extent0.sdbf • Starting an encrypted database: $GEMSTONE/bin/startstone –D dbPrivateKey.pem –J ~/secrets/passphrase.txt –K /home/normg/keys -z $GEMSTONE/data/system.conf normstone
  • 36. 36 New In Version 3.6 • Restricted System >>performOnServer: – If enabled, each UserProfile has a whitelist of permited performOnServer: commands. – Only commands on the whitelist may be executed. – Default whitelist is empty. – Example of adding a permitted command (git) |up| up := AllUsers userWithId: ‘normg’. up addPrivilege: ‘NoPerformOnServer’ ; addPerformOnServerCommands: (Array with: ‘/usr/bin/git’) .
  • 37. 37 New In Version 3.6 • 4 New Special Classes – Also known as immediate objects – Value encoded in the object ID – Never occupy disk space • SmallDate • SmallDateAndTime • SmallScaledDecimal • SmallTime
  • 38. 38 New In Version 3.6 • gslist output as JSON: normg@moop>gslist -j {"GemStoneServers":[ { "Name":"norm", "Host":"moop", "HostId":"b6f9ea8dee7eca73", "Ip":"10.94.141.31", "Status":"Exists", "Type":"Stone", "Version":"3.6.0", "Creator":"normg", "Started":"2020-09-21T12:44:59.000-07:00", "Pid": 7733, "Port": 38423, ….
  • 39. 39 New in Version 3.6 • Amazon AWS Customer Master Key (CMK) Support – Encrypted data stored in GemStone. – Encryption keys managed by AWS. – Cloud user controls if/when data is unlocked and accessed.
  • 40. 40 Coming in Version 3.7 • Support Monitoring GemStone by Prometheus – “Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company.” - https://prometheus.io
  • 42. 42 Coming in Version 3.7 • Faster Smalltalk VM on x86_64 – Native code generator optimized by Andres Valloud – Reduce number of instructions and number of branches – Better branch prediction – Average ~35% improvement
  • 43. 43 Coming in Version 3.7 • MS Azure Customer Master Key (CMK) Support – Encrypted data stored in GemStone. – Encryption keys managed by Azure.
  • 44. 44 Coming in Version 3.7 • Fast Instance Migration – Migrate and commit all instances of up to 2000 classes in a single operation. – Multi-threaded: uses multiple C threads for speed. – Typical Use Case: Add a new instance variable.
  • 45. 45 Coming in Version 3.7 • ssh Support – New Class: GsSshSocket – Execute remote commands via ssh • sftp Support – New Classes: GsSftpSocket, GsSftpRemoteFile – Upload and download files via sftp
  • 46. 46 Coming in Version 3.7 • Faster Read Streams on Strings – New Class: ReadByteStream – Optimized for reading String and byte objects.
  • 47. 47 Version 3.7 and Beyond… • Native ROWAN support – ROWAN is a new package manager that supports FileTree and Tonel repositories. – https://github.com/GemTalk/Rowan • Pharo Support (Sparkle) – Not GBS for Pharo – Inspectors and debuggers – Work In progress. – https://github.com/GemTalk/Sparkle – No GA date yet. – Martin’s UK Smalltalk talk: https://vimeo.com/676889959 – More in Martin McClure’s talk Thursday @ 9 am
  • 48. 48 New Open-Source Projects • GemConnect for Postgres – 100% Smalltalk code via FFI – Requires GemStone/64 v3.6.2 or later – Available as open source on github: • https://github.com/GemTalk/GemConnect-for-Postgres • GemConnect for RabbitMQ – 100% Smalltalk code via FFI – Requires GemStone/64 v3.6.4 or later – Available as open source on github: • https://github.com/GemTalk/GemConnectForRabbitMQ
  • 49. Questions? 49 GemTalk Systems LLC 15220 NW Greenbrier Pkwy., Suite 240 Beaverton, Oregon, 97006 Mobile: (503) 804-2041 norm.green@gemtalksystems.com Norman R. Green Senior VP & Chief Technical Officer www.gemtalksystems.com ®