SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Product Roadmap 
Norm Green 
Senior VP & CTO 
ESUG 2014 
Cambridge, UK 
August 21, 2014
2 
Agenda 
•GemTalk addYears: 1 
•GemStone/S 64 v 3.2 
•GemStone/S 64 v 3.3 
•New Licensing Options
3 
GemTalk addYears: 1 
•GemTalk Turned 1 on May 1! 
•Year 1 Milestones: 
–8 Product Releases 
–New Licensing Options 
–Financial Goals Achieved 
–Zero Staff Turnover
4 
GemStone/S 64 
•Latest Major Release: 3.2.0 (April, 2014) 
–Avoid 3.2.0. Use 3.2.2 or later. 
•Latest Minor Release: 3.2.2 
•Next Minor Release: 3.2.3 (TBD) 
•Next Major Release: 3.3 (January, 2015)
5 
GemStone/S 64 3.2 
•Additional Unicode character features 
–Indexing Support 
–ICU package collators 
–Replace old CharacterTable Support in favour of libicu functionality
6 
GemStone/S 64 3.2 
•New Indexing Features 
–Set-valued path terms 
–New Query API 
–New Index Creation API 
–Selector Path Terms 
–Date and DateTime Encoding and Caching in B-tree nodes 
–Unicode String Indexes 
–More Info: Dale’s Talk today @ 12:00
7 
GemStone/S 64 3.2 
•New Hot Standby Features 
–Support for automated restore-complete status check during planned failover event. 
–Use SSL socket for communication with hot-standby nodes (optional) 
•Optional Thread-safe GCI C/C++ API 
–“preview” feature in 3.2 
•Support for 64-bit Windows Clients 
–64-bit VisualWorks®
8 
GemStone/S 64 3.2 
•Large Memory Page Support 
–Available on AIX and Linux 
–Enabled by SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_POLICY 
–OS / Kernel Changes Also Required 
•ProfMonitor Enhancements 
–Better object creation reporting: Full Smalltalk Stack
9 
GemStone/S 64 3.2 
•Reclaim Gem Changes 
–Previously (before 3.2.0) 
•N reclaims gem processes, 1 thread per gem 
–Now (3.2.0 and later) 
•1 reclaim gem process, N threads per gem. 
•Each thread is a separate GemStone session 
–Pause Reclaim Upon Low Free Space 
•See: UserGlobals at: #reclaimMinFreeSpaceMb
10 
GemStone/S 64 3.2 
•New List References Method 
–#listReferencesToInstancesOfClasses: anArrayOfClasses 
•Finds all objects that reference one or more instances of the classes in anArrayOfClasses.
11 
GemStone/S 64 3.2 
•Asynchronous #performOnServer: 
–System #performOnServer: blocks until the command completes. 
–New class GsHostProcess allows asynchronous execution: 
| process | 
process := GsHostProcess fork: ‘/bin/ls’. 
<do something else> 
^ process stdout read: 1024
12 
GemStone/S 64 3.2 
•New Login Log File 
–A text file that logs every login and logout to GemStone. 
–Useful for security audits (SOX, etc.) 
–To enable: 
•STN_LOGIN_LOG_ENABLED = TRUE; 
•STN_LOGIN_LOG_DIR = /logfile/path/;
13 
GemStone/S 64 3.2 
•Login Log File Record Data: 
–Timestamp String 
–Timestamp Integer (seconds from the UNIX epoch) 
–EventKind 
–UserName 
–SessionId 
–ProcessId 
–Real UNIX ID 
–Effective UNIX ID 
–Gem host name 
–Gem IP address 
–Client IP address 
–Number of commits by this session 
–Login UNIX user ID
14 
GemStone/S 64 3.2 
Login Log File Record Data Example: 
"08/20/14 02:24:50.498 PDT" 1408526690 STARTUP Stone 0 15373 300 300 lehr ::ffff:10.94.141.26 0.0.0.0 0 300 
"08/20/14 02:24:51.609 PDT" 1408526691 LOGIN GcUser 2 15401 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:24:51.609 PDT" 1408526691 LOGIN GcUser 3 15399 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:24:51.614 PDT" 1408526691 LOGIN SymbolUser 4 15403 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:24:55.018 PDT" 1408526695 LOGIN SystemUser 5 15419 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:24:56.651 PDT" 1408526696 LOGOUT SystemUser 5 15419 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:25:02.435 PDT" 1408526702 LOGIN DataCurator 5 15426 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:25:05.766 PDT" 1408526705 SHUTDOWN Stone 0 15373 300 300 lehr ::ffff:10.94.141.26 0.0.0.0 0 300 
"08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT GcUser 2 15401 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT GcUser 3 15399 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT SymbolUser 4 15403 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 
"08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT DataCurator 5 15426 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300
15 
GemStone/S 64 3.2 
•New Reference Path Scan Methods 
–#findAllReferencePathsToObject: anObject 
•Finds *all* references paths to a leaf object. 
–#findAllReferencePathsToObjects: anArray 
•Finds *all* references paths to an array of leaf objects.
16 
GemStone/S 64 3.2 
•“Why didn’t my object get GC’ed?” 
R 
L 
A 
B 
C 
D 
E 
F 
G 
H 
I 
J 
K 
•The object graph on the left has 3 Reference Paths from the R(oot) object to L(eaf) object: 
•R-A-D-G-J-L 
•R-B-E-H-K-L 
•R-C-F-I-L 
•Before 3.2: 
•Each reference path found separately by invoking findReferencePathToObject: L 
•3.2 and Later 
•All reference paths can be found in a single scan by invoking findAllReferencePathsToObject: L
17 
GemStone/S 64 3.2 
•New Multi-threaded Operations 
–Previously, these were single-threaded: 
•#markGcCandidates 
•#pagesWithPercentFree
18 
GemStone/S 64 3.2 
•“Database In Memory” Optimizations 
–Controlled by config file option: 
•GEM_REPOSITORY_IN_MEMORY 
–Optimizes the following operations for database in memory: 
•findReferencePathToObject: 
•findAllReferencesPathsToObject: 
•pagesWithPercentFree:
19 
GemStone/S 64 3.2 
•Flexible Units in Config File 
–Several config file options now understand the following prefixes: KB, MB, GB 
–Examples: 
•DBF_PRE_GROW 
•DBF_EXTENT_SIZES 
•GEM_PRIVATE_PAGE_CACHE_KB 
•GEM_TEMPOBJ_CACHE_SIZE 
•SHR_PAGE_CACHE_SIZE_KB 
•STN_FREE_SPACE_THRESHOLD 
•STN_PRIVATE_PAGE_CACHE_KB 
•STN_TRAN_LOG_SIZES
20 
GemStone/S 64 3.2 
•New DBF Pregrow Options 
–Extents may now be pregrown to an initial size, but still have a (larger) maximum size. 
–Example: 
•Initial size: 4 GB, Max size: 64 GB: 
•DBF_EXTENT_NAMES = /foo/bar.dbf; 
•DBF_PRE_GROW = 4GB; 
•DBF_EXTENT_SIZES = 64GB;
21 
GemStone/S 64 3.2 
•Extents Permitted Over NFS 
–Generally not recommended! 
–Enable via: 
•STN_ALLOW_NFS_EXTENTS = TRUE;
22 
GemStone/S 64 3.2 
•Persistent Shared Counters 
–Non-transactional – no database transaction required. 
–Persistent – updates are saved to the database immediately. 
–Value Range: -263 –> 263 
–Applications: UUID, Unique serial numbers, atomic counters. 
–Counters Available 
•Increased from 128 to 1536
23 
GemStone/S 64 3.2 
•Some LDAP servers require *all* binds be authenticated. 
–Even binds only used to resolve a distinguished name (DN)! 
•GemStone now supports this. 
•Authenticated LDAP Bind Example 
System validatePasswordUsingLdapServers: 
(Array with: 'ldaps://myldap.mydomain.com') 
baseDn: 'ou=Users,dc=GemTalk,dc=com’ 
filterDn: '(uid=%s)’ 
userId: ‘stephane' 
password: ’SacréBleu’ 
bindDn: 'LdapBindUser' 
bindPassword: 'LdapBindPassword'
24 
GemBuilder for……..Android?!? 
•Experimental Project to Access GemStone from Android Devices 
•Uses GemBuilder for Java (GBJ) 
(OpenSSL)
25 
GbjTest App on Android 
Login Screen
26 
GbjTest App on Android 
Command Execution
27 
Android Test App Source Code 
•Application Code: 
–ftp://ftp.gemtalksystems.com/pub/GBJ/GbjTest.zip 
•Contact: 
–bill.erickson@gemtalksystems.com
28 
GemStone/S 64 3.2 
•VSD Improvements 
–64 bit program 
–(Much) Faster file loading 
–Session ID Column 
–Enable Mouse Wheel scrolling. 
–MS Windows: 
•Rebuilt for Windows 7
29 
GemStone/S 64 v3.2 Platforms 
•Object Server (Database) 
–Linux 64 bit 
–Apple Darwin 64 bit 
–Oracle Solaris 64 bit 
–Oracle Solaris SPARC 64 bit 
–IBM AIX 64 bit 
•Cincom VisualWorks 7.9.1 / 7.10.1 Clients 
–MS Windows 7/8 32 bit 
–MS Windows 7/8 64 bit 
–Linux 32/64 bit 
–Solaris SPARC 32/64 bit 
•Instantiations VA Smalltalk 8.6 / 8.5.2 Clients 
–MS Windows 7/8 32 bit
30 
GemStone/S 3.3 
Faster Virtual Machine 
–Native code generator optimized for branch prediction. 
–~25% performance gain vs. 3.2 VM 
New Immediate Class: SmallFraction 
–Value stored in OOP == #fast 
–Ranges: 
•Numerator: -536870912 -> 536870911 
•Denominator: 0 -> 134217727
31 
GemStone/S 3.3 
Faster Tranlog Restore 
–Optimize object table generation during restore. 
–~30% improvement 
–Affects: 
•#restoreFromLogs 
•Hot Standby Systems 
Access to syslog() 
–Write messages to the UNIX system log
32 
GemStone/S 3.3 
Things We Are Thinking About… 
oNative XML Parsing 
oPasswordless Logins 
oCapture real-time delays in ProfMonitor 
oSemaphore wait 
oSocket wait 
oI/O Wait 
oEtc
33 
GemStone/S 3.3 
Things We Are Thinking About… 
oImproved Indexed Searches: 
oMessage send 
oBlock evaluation 
ogssapi Integration 
oAccess Current Context via #thisContext 
o<Your Suggestions Here!>
34 
GemStone/S Licensing Models 
•Perpetual 
–Buy once, own it forever 
•Annual Subscription 
–Pay annually, cancel any time. 
•Value Added Reseller (VAR) 
–Percentage of royalties
35 
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 
•Formerly GemStone Web Edition 
•New and Improved! 
•As of April 30, 2014 
Source: http://gemtalksystems.com/index.php/lc-licensing/
Questions? 
36 
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 
®

Contenu connexe

Tendances

The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkmarkdgray
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyVMware Tanzu
 
Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Susan Potter
 
Deeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay NetworksDeeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay NetworksLaurent Bernaille
 
Better Full Text Search in PostgreSQL
Better Full Text Search in PostgreSQLBetter Full Text Search in PostgreSQL
Better Full Text Search in PostgreSQLArtur Zakirov
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
I/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of BootkitsI/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of BootkitsCrowdStrike
 
Linux-Fu for PHP Developers
Linux-Fu for PHP DevelopersLinux-Fu for PHP Developers
Linux-Fu for PHP DevelopersLorna Mitchell
 
Tutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingTutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingLorisPack Project
 
Twisted Introduction
Twisted IntroductionTwisted Introduction
Twisted Introductioncyli
 
Configuring Syslog by Octavio
Configuring Syslog by OctavioConfiguring Syslog by Octavio
Configuring Syslog by OctavioRowell Dionicio
 
Docker-OVS
Docker-OVSDocker-OVS
Docker-OVSsnrism
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleAntonio Musarra
 
Docker Networking
Docker NetworkingDocker Networking
Docker NetworkingWeaveworks
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and moreBrendan Gregg
 
Anchoring Trust: Rewriting DNS for the Semantic Network with Ruby and Rails
Anchoring Trust: Rewriting DNS for the Semantic Network with Ruby and RailsAnchoring Trust: Rewriting DNS for the Semantic Network with Ruby and Rails
Anchoring Trust: Rewriting DNS for the Semantic Network with Ruby and RailsEleanor McHugh
 

Tendances (20)

Discovering OpenBSD on AWS
Discovering OpenBSD on AWSDiscovering OpenBSD on AWS
Discovering OpenBSD on AWS
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdk
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor Netty
 
Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)
 
Deeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay NetworksDeeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay Networks
 
Better Full Text Search in PostgreSQL
Better Full Text Search in PostgreSQLBetter Full Text Search in PostgreSQL
Better Full Text Search in PostgreSQL
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
I/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of BootkitsI/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
 
Linux class 10 15 oct 2021-6
Linux class 10   15 oct 2021-6Linux class 10   15 oct 2021-6
Linux class 10 15 oct 2021-6
 
Linux-Fu for PHP Developers
Linux-Fu for PHP DevelopersLinux-Fu for PHP Developers
Linux-Fu for PHP Developers
 
Tutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingTutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networking
 
Twisted Introduction
Twisted IntroductionTwisted Introduction
Twisted Introduction
 
Subversion To Mercurial
Subversion To MercurialSubversion To Mercurial
Subversion To Mercurial
 
Configuring Syslog by Octavio
Configuring Syslog by OctavioConfiguring Syslog by Octavio
Configuring Syslog by Octavio
 
Prezentacja zimowisko 2014
Prezentacja zimowisko 2014Prezentacja zimowisko 2014
Prezentacja zimowisko 2014
 
Docker-OVS
Docker-OVSDocker-OVS
Docker-OVS
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per Oracle
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Anchoring Trust: Rewriting DNS for the Semantic Network with Ruby and Rails
Anchoring Trust: Rewriting DNS for the Semantic Network with Ruby and RailsAnchoring Trust: Rewriting DNS for the Semantic Network with Ruby and Rails
Anchoring Trust: Rewriting DNS for the Semantic Network with Ruby and Rails
 

Similaire à Gemtalk Systems Product Roadmap

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
 
GemStone/64 Update
GemStone/64 UpdateGemStone/64 Update
GemStone/64 UpdateESUG
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuningMongoDB
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scalethelabdude
 
GemStone Update 2023
GemStone Update 2023GemStone Update 2023
GemStone Update 2023ESUG
 
Optimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsOptimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsEmma Tang
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangDatabricks
 
Container Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixContainer Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixDocker, Inc.
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
Realtime Statistics based on Apache Storm and RocketMQ
Realtime Statistics based on Apache Storm and RocketMQRealtime Statistics based on Apache Storm and RocketMQ
Realtime Statistics based on Apache Storm and RocketMQXin Wang
 
Consul administration at scale
Consul administration at scaleConsul administration at scale
Consul administration at scalePierre Souchay
 
How to improve ELK log pipeline performance
How to improve ELK log pipeline performanceHow to improve ELK log pipeline performance
How to improve ELK log pipeline performanceSteven Shim
 
GemStone/S Update
GemStone/S UpdateGemStone/S Update
GemStone/S UpdateESUG
 
Moving Toward Deep Learning Algorithms on HPCC Systems
Moving Toward Deep Learning Algorithms on HPCC SystemsMoving Toward Deep Learning Algorithms on HPCC Systems
Moving Toward Deep Learning Algorithms on HPCC SystemsHPCC Systems
 
Infrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black BoxInfrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black BoxMiklos Szel
 
Gemstone RoadMap
Gemstone RoadMapGemstone RoadMap
Gemstone RoadMapESUG
 
NSC #2 - Challenge Solution
NSC #2 - Challenge SolutionNSC #2 - Challenge Solution
NSC #2 - Challenge SolutionNoSuchCon
 

Similaire à Gemtalk Systems Product Roadmap (20)

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
 
GemStone/64 Update
GemStone/64 UpdateGemStone/64 Update
GemStone/64 Update
 
Tacc Infinite Memory Engine
Tacc Infinite Memory EngineTacc Infinite Memory Engine
Tacc Infinite Memory Engine
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuning
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scale
 
GemStone Update 2023
GemStone Update 2023GemStone Update 2023
GemStone Update 2023
 
Optimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsOptimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL Jobs
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
 
Container Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixContainer Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, Netflix
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Realtime Statistics based on Apache Storm and RocketMQ
Realtime Statistics based on Apache Storm and RocketMQRealtime Statistics based on Apache Storm and RocketMQ
Realtime Statistics based on Apache Storm and RocketMQ
 
Consul administration at scale
Consul administration at scaleConsul administration at scale
Consul administration at scale
 
How to improve ELK log pipeline performance
How to improve ELK log pipeline performanceHow to improve ELK log pipeline performance
How to improve ELK log pipeline performance
 
GemStone/S Update
GemStone/S UpdateGemStone/S Update
GemStone/S Update
 
Google File System
Google File SystemGoogle File System
Google File System
 
Moving Toward Deep Learning Algorithms on HPCC Systems
Moving Toward Deep Learning Algorithms on HPCC SystemsMoving Toward Deep Learning Algorithms on HPCC Systems
Moving Toward Deep Learning Algorithms on HPCC Systems
 
Infrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black BoxInfrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black Box
 
Gemstone RoadMap
Gemstone RoadMapGemstone RoadMap
Gemstone RoadMap
 
NSC #2 - Challenge Solution
NSC #2 - Challenge SolutionNSC #2 - Challenge Solution
NSC #2 - Challenge Solution
 

Plus de 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
 

Plus de 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
 

Dernier

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
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
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
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
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
 
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
 
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
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Dernier (20)

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....
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
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...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
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
 
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
 
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
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

Gemtalk Systems Product Roadmap

  • 1. Product Roadmap Norm Green Senior VP & CTO ESUG 2014 Cambridge, UK August 21, 2014
  • 2. 2 Agenda •GemTalk addYears: 1 •GemStone/S 64 v 3.2 •GemStone/S 64 v 3.3 •New Licensing Options
  • 3. 3 GemTalk addYears: 1 •GemTalk Turned 1 on May 1! •Year 1 Milestones: –8 Product Releases –New Licensing Options –Financial Goals Achieved –Zero Staff Turnover
  • 4. 4 GemStone/S 64 •Latest Major Release: 3.2.0 (April, 2014) –Avoid 3.2.0. Use 3.2.2 or later. •Latest Minor Release: 3.2.2 •Next Minor Release: 3.2.3 (TBD) •Next Major Release: 3.3 (January, 2015)
  • 5. 5 GemStone/S 64 3.2 •Additional Unicode character features –Indexing Support –ICU package collators –Replace old CharacterTable Support in favour of libicu functionality
  • 6. 6 GemStone/S 64 3.2 •New Indexing Features –Set-valued path terms –New Query API –New Index Creation API –Selector Path Terms –Date and DateTime Encoding and Caching in B-tree nodes –Unicode String Indexes –More Info: Dale’s Talk today @ 12:00
  • 7. 7 GemStone/S 64 3.2 •New Hot Standby Features –Support for automated restore-complete status check during planned failover event. –Use SSL socket for communication with hot-standby nodes (optional) •Optional Thread-safe GCI C/C++ API –“preview” feature in 3.2 •Support for 64-bit Windows Clients –64-bit VisualWorks®
  • 8. 8 GemStone/S 64 3.2 •Large Memory Page Support –Available on AIX and Linux –Enabled by SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_POLICY –OS / Kernel Changes Also Required •ProfMonitor Enhancements –Better object creation reporting: Full Smalltalk Stack
  • 9. 9 GemStone/S 64 3.2 •Reclaim Gem Changes –Previously (before 3.2.0) •N reclaims gem processes, 1 thread per gem –Now (3.2.0 and later) •1 reclaim gem process, N threads per gem. •Each thread is a separate GemStone session –Pause Reclaim Upon Low Free Space •See: UserGlobals at: #reclaimMinFreeSpaceMb
  • 10. 10 GemStone/S 64 3.2 •New List References Method –#listReferencesToInstancesOfClasses: anArrayOfClasses •Finds all objects that reference one or more instances of the classes in anArrayOfClasses.
  • 11. 11 GemStone/S 64 3.2 •Asynchronous #performOnServer: –System #performOnServer: blocks until the command completes. –New class GsHostProcess allows asynchronous execution: | process | process := GsHostProcess fork: ‘/bin/ls’. <do something else> ^ process stdout read: 1024
  • 12. 12 GemStone/S 64 3.2 •New Login Log File –A text file that logs every login and logout to GemStone. –Useful for security audits (SOX, etc.) –To enable: •STN_LOGIN_LOG_ENABLED = TRUE; •STN_LOGIN_LOG_DIR = /logfile/path/;
  • 13. 13 GemStone/S 64 3.2 •Login Log File Record Data: –Timestamp String –Timestamp Integer (seconds from the UNIX epoch) –EventKind –UserName –SessionId –ProcessId –Real UNIX ID –Effective UNIX ID –Gem host name –Gem IP address –Client IP address –Number of commits by this session –Login UNIX user ID
  • 14. 14 GemStone/S 64 3.2 Login Log File Record Data Example: "08/20/14 02:24:50.498 PDT" 1408526690 STARTUP Stone 0 15373 300 300 lehr ::ffff:10.94.141.26 0.0.0.0 0 300 "08/20/14 02:24:51.609 PDT" 1408526691 LOGIN GcUser 2 15401 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:24:51.609 PDT" 1408526691 LOGIN GcUser 3 15399 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:24:51.614 PDT" 1408526691 LOGIN SymbolUser 4 15403 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:24:55.018 PDT" 1408526695 LOGIN SystemUser 5 15419 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:24:56.651 PDT" 1408526696 LOGOUT SystemUser 5 15419 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:25:02.435 PDT" 1408526702 LOGIN DataCurator 5 15426 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:25:05.766 PDT" 1408526705 SHUTDOWN Stone 0 15373 300 300 lehr ::ffff:10.94.141.26 0.0.0.0 0 300 "08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT GcUser 2 15401 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT GcUser 3 15399 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT SymbolUser 4 15403 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300 "08/20/14 02:25:05.766 PDT" 1408526705 LOGOUT DataCurator 5 15426 300 300 lehr ::ffff:10.94.141.26 ::ffff:10.94.141.26 0 300
  • 15. 15 GemStone/S 64 3.2 •New Reference Path Scan Methods –#findAllReferencePathsToObject: anObject •Finds *all* references paths to a leaf object. –#findAllReferencePathsToObjects: anArray •Finds *all* references paths to an array of leaf objects.
  • 16. 16 GemStone/S 64 3.2 •“Why didn’t my object get GC’ed?” R L A B C D E F G H I J K •The object graph on the left has 3 Reference Paths from the R(oot) object to L(eaf) object: •R-A-D-G-J-L •R-B-E-H-K-L •R-C-F-I-L •Before 3.2: •Each reference path found separately by invoking findReferencePathToObject: L •3.2 and Later •All reference paths can be found in a single scan by invoking findAllReferencePathsToObject: L
  • 17. 17 GemStone/S 64 3.2 •New Multi-threaded Operations –Previously, these were single-threaded: •#markGcCandidates •#pagesWithPercentFree
  • 18. 18 GemStone/S 64 3.2 •“Database In Memory” Optimizations –Controlled by config file option: •GEM_REPOSITORY_IN_MEMORY –Optimizes the following operations for database in memory: •findReferencePathToObject: •findAllReferencesPathsToObject: •pagesWithPercentFree:
  • 19. 19 GemStone/S 64 3.2 •Flexible Units in Config File –Several config file options now understand the following prefixes: KB, MB, GB –Examples: •DBF_PRE_GROW •DBF_EXTENT_SIZES •GEM_PRIVATE_PAGE_CACHE_KB •GEM_TEMPOBJ_CACHE_SIZE •SHR_PAGE_CACHE_SIZE_KB •STN_FREE_SPACE_THRESHOLD •STN_PRIVATE_PAGE_CACHE_KB •STN_TRAN_LOG_SIZES
  • 20. 20 GemStone/S 64 3.2 •New DBF Pregrow Options –Extents may now be pregrown to an initial size, but still have a (larger) maximum size. –Example: •Initial size: 4 GB, Max size: 64 GB: •DBF_EXTENT_NAMES = /foo/bar.dbf; •DBF_PRE_GROW = 4GB; •DBF_EXTENT_SIZES = 64GB;
  • 21. 21 GemStone/S 64 3.2 •Extents Permitted Over NFS –Generally not recommended! –Enable via: •STN_ALLOW_NFS_EXTENTS = TRUE;
  • 22. 22 GemStone/S 64 3.2 •Persistent Shared Counters –Non-transactional – no database transaction required. –Persistent – updates are saved to the database immediately. –Value Range: -263 –> 263 –Applications: UUID, Unique serial numbers, atomic counters. –Counters Available •Increased from 128 to 1536
  • 23. 23 GemStone/S 64 3.2 •Some LDAP servers require *all* binds be authenticated. –Even binds only used to resolve a distinguished name (DN)! •GemStone now supports this. •Authenticated LDAP Bind Example System validatePasswordUsingLdapServers: (Array with: 'ldaps://myldap.mydomain.com') baseDn: 'ou=Users,dc=GemTalk,dc=com’ filterDn: '(uid=%s)’ userId: ‘stephane' password: ’SacréBleu’ bindDn: 'LdapBindUser' bindPassword: 'LdapBindPassword'
  • 24. 24 GemBuilder for……..Android?!? •Experimental Project to Access GemStone from Android Devices •Uses GemBuilder for Java (GBJ) (OpenSSL)
  • 25. 25 GbjTest App on Android Login Screen
  • 26. 26 GbjTest App on Android Command Execution
  • 27. 27 Android Test App Source Code •Application Code: –ftp://ftp.gemtalksystems.com/pub/GBJ/GbjTest.zip •Contact: –bill.erickson@gemtalksystems.com
  • 28. 28 GemStone/S 64 3.2 •VSD Improvements –64 bit program –(Much) Faster file loading –Session ID Column –Enable Mouse Wheel scrolling. –MS Windows: •Rebuilt for Windows 7
  • 29. 29 GemStone/S 64 v3.2 Platforms •Object Server (Database) –Linux 64 bit –Apple Darwin 64 bit –Oracle Solaris 64 bit –Oracle Solaris SPARC 64 bit –IBM AIX 64 bit •Cincom VisualWorks 7.9.1 / 7.10.1 Clients –MS Windows 7/8 32 bit –MS Windows 7/8 64 bit –Linux 32/64 bit –Solaris SPARC 32/64 bit •Instantiations VA Smalltalk 8.6 / 8.5.2 Clients –MS Windows 7/8 32 bit
  • 30. 30 GemStone/S 3.3 Faster Virtual Machine –Native code generator optimized for branch prediction. –~25% performance gain vs. 3.2 VM New Immediate Class: SmallFraction –Value stored in OOP == #fast –Ranges: •Numerator: -536870912 -> 536870911 •Denominator: 0 -> 134217727
  • 31. 31 GemStone/S 3.3 Faster Tranlog Restore –Optimize object table generation during restore. –~30% improvement –Affects: •#restoreFromLogs •Hot Standby Systems Access to syslog() –Write messages to the UNIX system log
  • 32. 32 GemStone/S 3.3 Things We Are Thinking About… oNative XML Parsing oPasswordless Logins oCapture real-time delays in ProfMonitor oSemaphore wait oSocket wait oI/O Wait oEtc
  • 33. 33 GemStone/S 3.3 Things We Are Thinking About… oImproved Indexed Searches: oMessage send oBlock evaluation ogssapi Integration oAccess Current Context via #thisContext o<Your Suggestions Here!>
  • 34. 34 GemStone/S Licensing Models •Perpetual –Buy once, own it forever •Annual Subscription –Pay annually, cancel any time. •Value Added Reseller (VAR) –Percentage of royalties
  • 35. 35 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 •Formerly GemStone Web Edition •New and Improved! •As of April 30, 2014 Source: http://gemtalksystems.com/index.php/lc-licensing/
  • 36. Questions? 36 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 ®