SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
1
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Product Overview
Norman R. Green
norm.green@gemstone.com
Director of Engineering
GemStone Systems Inc.
2
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Subjects For Today s Talk
GemStone Systems At A Glance (briefly)
What Is GemStone/S? (briefly)
Why 64 Bit?
Phase 1
Phase 2
Smalltalk Coding Changes
Future Features
3
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone Systems at a Glance
Founded 1982
Headquarters: Beaverton, Oregon, USA
Privately Held
Investor: 65%
Employees: 35%
Experienced Engineering Team
Many employees with 10+ years tenure
Some over 20 years.
Over 200 installed customers
24 x 7 global support.
4
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Banking / Finance Government
Telecommunications Transportation/Shipping
GemStone/S Customers
5
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
What Is GemStone/S?
Three Easy Pieces:
1. An Object Oriented Database
Objects stored in object format
No tables, rows, or columns.
No O/R mapping code to maintain.
ACID Transactions
Atomic all or nothing
Consistent start/end states are consistent
Isolation Commit in Session A does not
immediately affect Session B
Durable cannot be rolled back once committed.
6
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
What Is GemStone/S?
2. A Smalltalk dialect
Comes with a complete set of Kernel
Classes.
Repository contains object behavior
(classes, compiled methods, etc) as well
as object state (inst vars, class vars, etc).
7
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
What Is GemStone/S?
3. An Application Server
Applications have been written entirely in
GemStone/S.
Supports many kinds of clients
Smalltalk: VA & VW
Java
C & C++
UNIX shell (using topaz)
8
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Why GemStone 64 Bit?
Customers desired to scale beyond
the 32-bit limits:
4 GB Addressable Memory
Max shared page cache size = 2 - 3 GB
1 billion objects max
9
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Why GemStone 64 Bit?
Why Do We Care About 32 Bit Limits?
Examples
5 GB repository, 2 GB Shared page cache
40% of database cached
Performance: OK
100 GB repository, 2 GB Shared page cache
2% of database cached
Performance: POOR
10
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Moving to 64 Bit
Project Divided Into 2 Phases:
Phase 1: 64 bit address space
Phase 2: 64 bit object identifiers
11
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Goals
Performance Scalability
Exploit 64 bit address space
Improve Smalltalk VM performance
Reduce persistent garbage
12
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Features
100% 64 bit
2 billion OOP limit
Current Version: 1.1.5
Supported Platforms :
Solaris 9, 10
HPUX 11.11 (PA-RISC)
AIX 5.2, 5.3
Linux x86_64 (RH 4, SuSE 9.3)
13
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Features
GemBuilder for Smalltalk (GBS) Support
VisualWorks 5i.4, 7.4+
Visual Age 6.0, 7.0
14
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
Supports very large Shared Page
Caches
Up to 16 TB
Database-in-memory capable
15
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
Shared Cache Warming
Loads data into the shared cache
Uses any number of gem processes
Stops when the shared cache becomes full
or all data was loaded.
16
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
No more large object leaks
Old Design
Large objects (> 8 Kb) always go to disk
Old space overflows go to disk
Result: too much persistent garbage
New Design
Objects only go to disk if referenced by a committed
object.
No exceptions for large objects.
Net effect: Large reduction in garbage object
creation.
17
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
Improved Symbol Management
Symbol Gem
New session dedicated to managing AllSymbols.
Creates all new symbol objects.
Guarantees symbols are always canonical
Faster Symbol Lookup
AllSymbols collection redesigned for speed
Lookups now use binary searches
18
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
Online Backups
Safely copy database extents while system
is running.
No impact to users: commits and aborts are
allowed.
19
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
Parallelized Garbage Collection
Reclaim GC gems
Variable number: 0 to 255
Reclaim both shadow and dead objects
Run online with production
Improved reclaim performance for large
production systems.
20
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Improvements
Major Virtual Machine Redesign
Copy-on-read Object Manager (OM)
All Classes and Super classes read into private
memory.
All objects read/written are copied to private VM
memory.
Large working set = large memory footprint
Byte code dispatch loop written in assembler
21
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
0.38093.8879Create & de-ref 6.5MB objs
2.4693.478Fault and verify 30 MB data
20.13654.541Commit 6.5 MB data
2.0922.397100 factorial
2.1752.45950 factorial
GS64 1.1GS 6.1Test
Phase 1 Improvements
Faster Smalltalk Virtual Machine
22
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Engineering Tasks
For 615,000 lines of C code:
Convert to C++
Change of compilers
Make 64-bit safe
long -> int
unsigned long -> unsigned int
Rewrite object manager and LOM garbage
collector from scratch
Duration: 15 months
23
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Production Customers
China Ocean Shipping Company (COSCO)
Location: Shanghai, China
Business: Container Shipping
Platforms: HPUX, Solaris, Windows XP
URL: www.cosco.com
Intercontinental Exchange (ICE)
Location: Atlanta, GA
Business: Energy Futures Trading
Platforms: AIX, Windows XP
URL: www.theice.com
24
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 1
Phase 1 Production Customers
Northwater Capital
Location: Toronto, Canada
Business: Financial Portfolio Management
Platforms: Linux, Solaris
URL: www.northwatercapital.com
Soon: Dutch Agricultural Institute (LEI)
Location: The Hague, Netherlands
Business: Government
Platforms: Solaris, Windows
URL: www.lei.nl
25
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Phase 2 Goals
Object Volume Scalability
Support very large repositories
Overcome 2 billion object limit
Fully exploit 64 bit object identifiers
26
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Phase 2 Features
64 bit object IDs
Maximum Objects: 240 objects
Support for Very Large Databases
Max # of database extents: 255
Max extent size: 32 TB
Max database size: 8,160 TB
27
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Phase 2 Features
Faster Smalltalk VM
Add 100 Additional Smalltalk byte codes
VM runs 30 50% faster
Extended SmallInteger Range
±260 (±1,152,921,504,606,846,976)
Previous range: ±229
28
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Phase 2 Features
New Special Class: SmallDouble
Subset of IEEE 754 float format
8 bit exponent
52 bit mantissa
Range: 5.0e-39 to 6.0e+38 (approx)
Specials encapsulate their value in the in
the object ID
No disk I/O
29
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Phase 2 Features
Better Indexes on Collections
Complete redesign of the indexing
subsystem.
Faster index creation/removal
Fewer concurrency conflicts
Same query semantics as before
AllEmployees detect:{:e| e.firstName = Stephane & e.lastName = Ducasse }
30
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
GemStone/64 2.x Features
Conversion From Previous Releases
GemStone/64 1.1 or later
GemStone/S 6.1.5 or later.
31
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
GemStone/64 2.0
Released 3/31/2006
Supported Platforms
Solaris 9, 10
HPUX 11.11 (PA-RISC)
32
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Production Customers
OOCL (Orient Overseas Container
Limited)
Location: Hong Kong, San Jose, CA
Business: Container Shipping
Platforms: Solaris, HPUX, Windows XP
URL: www.oocl.com
33
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
Production Customers
OOCL
Production deployment: 7/30/06
360 GB repository
1.7 billion objects
1800 concurrent users
34
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
OOCL
Performance:
Server VM:
30% 50% faster
New Smalltalk byte codes
Client Server Network load:
20% more bytes
32 -> 64 bit oops
35
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
OOCL
Performance:
VW Client
30% 50% Slower
64 bit object IDs are LargePositiveIntegers
GemBuilder For Smalltalk (GBS)
performance loss
Improved GBS coming in October
Overall Application Performance: 15%
slower.
36
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Phase 2
GemStone/64 2.1
Target: October 2006:
Add support for:
AIX 5.2, 5.3
Linux on x86-64
VM Performance Improvements
Index improvements
Bug fixes
37
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GS/64 Coding Changes
Possible Problems
All objects accessed by the interpreter
must be read into the VM, even if the
object is only referenced by identity.
38
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GS/64 Coding Changes
Possible Problems: Example
So this code
aLargeArray do:[:each| each == someObject
ifTrue:[^each]. ].
^Object error: #keyNotFound.
may be fast in GS 6.1, but not in GS 64.
Who Knows Why ?
39
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GS/64 Coding Changes
aLargeArray do:[:each| each == someObject
ifTrue:[^each]. ].
^Object error: #keyNotFound.
GS 6.1:
== compares identity without faulting each.
GS 64:
== compares identity, but each must be read into
memory.
40
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GS/64 Coding Changes
Solution: Do it this way:
|index|
index := aLargeArray indexOfIdentical: someObject.
index == 0
ifTrue:[Object error: #keyNotFound]
ifFalse:[^aLargeArray at: index].
#indexOfIdentical calls a primitive,
which is smart enough to search
without faulting in the objects in
aLargeArray
41
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GS/64 Coding Changes
Other Methods Added To Avoid
Unnecessary Object Faulting
IdentityBag >> copyFrom:count:into:startingAt:
IdentityBag >> copyFrom:to:into:startingAt:
OrderedCollection >> addAll:
OrderedCollection >> _addAllFromNsc:
SequencableCollection >>
copyFrom:count:into:startingAt:
42
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Future Releases
Multi-threaded garbage collection
markForCollection, etc
Multi-threaded Tranlog Replay
#restoreFromLogs:
Crash recovery from crash
Multi-thread the Stone process
Improved VM Performance
43
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Future Features
Additional Special Classes
Candidates:
Date
DateTime
Time
Currency
ScaledDecimal
Reduced Conflict (RC) Indexes on
Collections
44
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
GemStone/64 Future Features
Thread-safe C-interface (GCI layer)
Support for Seaside
Need native support for continuations
45
Copyright © 2006, GemStone Systems Inc. All Rights Reserved.
Questions?

Mais conteúdo relacionado

Semelhante a Gemstone 64 Product Overview

Cooking security sans@night
Cooking security sans@nightCooking security sans@night
Cooking security sans@night
jtimberman
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Society
webhostingguy
 

Semelhante a Gemstone 64 Product Overview (20)

Glass
GlassGlass
Glass
 
GemStone Update 2023
GemStone Update 2023GemStone Update 2023
GemStone Update 2023
 
GemStone/S 64bit
GemStone/S 64bitGemStone/S 64bit
GemStone/S 64bit
 
Gemstone RoadMap
Gemstone RoadMapGemstone RoadMap
Gemstone RoadMap
 
GemStone Update
GemStone Update GemStone Update
GemStone 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
 
GemStone/S 64 Update
 GemStone/S 64 Update GemStone/S 64 Update
GemStone/S 64 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
 
An AI accelerator ASIC architecture
An AI accelerator ASIC architectureAn AI accelerator ASIC architecture
An AI accelerator ASIC architecture
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product Roadmap
 
Advanced High-Performance Computing Features of the OpenPOWER ISA
 Advanced High-Performance Computing Features of the OpenPOWER ISA Advanced High-Performance Computing Features of the OpenPOWER ISA
Advanced High-Performance Computing Features of the OpenPOWER ISA
 
times ten in-memory database for extreme performance
times ten in-memory database for extreme performancetimes ten in-memory database for extreme performance
times ten in-memory database for extreme performance
 
Cooking security sans@night
Cooking security sans@nightCooking security sans@night
Cooking security sans@night
 
The Cell Processor
The Cell ProcessorThe Cell Processor
The Cell Processor
 
Malstone KDD 2010
Malstone KDD 2010Malstone KDD 2010
Malstone KDD 2010
 
Open ebs 101
Open ebs 101Open ebs 101
Open ebs 101
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?
 
Gemtalk Product Roadmap
Gemtalk Product RoadmapGemtalk Product Roadmap
Gemtalk Product Roadmap
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Society
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
 

Mais 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 programming
ESUG
 
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
ESUG
 
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 results
ESUG
 
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
ESUG
 
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
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
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
ESUG
 

Mais 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
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Gemstone 64 Product Overview

  • 1. 1 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Product Overview Norman R. Green norm.green@gemstone.com Director of Engineering GemStone Systems Inc.
  • 2. 2 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Subjects For Today s Talk GemStone Systems At A Glance (briefly) What Is GemStone/S? (briefly) Why 64 Bit? Phase 1 Phase 2 Smalltalk Coding Changes Future Features
  • 3. 3 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone Systems at a Glance Founded 1982 Headquarters: Beaverton, Oregon, USA Privately Held Investor: 65% Employees: 35% Experienced Engineering Team Many employees with 10+ years tenure Some over 20 years. Over 200 installed customers 24 x 7 global support.
  • 4. 4 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Banking / Finance Government Telecommunications Transportation/Shipping GemStone/S Customers
  • 5. 5 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. What Is GemStone/S? Three Easy Pieces: 1. An Object Oriented Database Objects stored in object format No tables, rows, or columns. No O/R mapping code to maintain. ACID Transactions Atomic all or nothing Consistent start/end states are consistent Isolation Commit in Session A does not immediately affect Session B Durable cannot be rolled back once committed.
  • 6. 6 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. What Is GemStone/S? 2. A Smalltalk dialect Comes with a complete set of Kernel Classes. Repository contains object behavior (classes, compiled methods, etc) as well as object state (inst vars, class vars, etc).
  • 7. 7 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. What Is GemStone/S? 3. An Application Server Applications have been written entirely in GemStone/S. Supports many kinds of clients Smalltalk: VA & VW Java C & C++ UNIX shell (using topaz)
  • 8. 8 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Why GemStone 64 Bit? Customers desired to scale beyond the 32-bit limits: 4 GB Addressable Memory Max shared page cache size = 2 - 3 GB 1 billion objects max
  • 9. 9 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Why GemStone 64 Bit? Why Do We Care About 32 Bit Limits? Examples 5 GB repository, 2 GB Shared page cache 40% of database cached Performance: OK 100 GB repository, 2 GB Shared page cache 2% of database cached Performance: POOR
  • 10. 10 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Moving to 64 Bit Project Divided Into 2 Phases: Phase 1: 64 bit address space Phase 2: 64 bit object identifiers
  • 11. 11 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Goals Performance Scalability Exploit 64 bit address space Improve Smalltalk VM performance Reduce persistent garbage
  • 12. 12 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Features 100% 64 bit 2 billion OOP limit Current Version: 1.1.5 Supported Platforms : Solaris 9, 10 HPUX 11.11 (PA-RISC) AIX 5.2, 5.3 Linux x86_64 (RH 4, SuSE 9.3)
  • 13. 13 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Features GemBuilder for Smalltalk (GBS) Support VisualWorks 5i.4, 7.4+ Visual Age 6.0, 7.0
  • 14. 14 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements Supports very large Shared Page Caches Up to 16 TB Database-in-memory capable
  • 15. 15 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements Shared Cache Warming Loads data into the shared cache Uses any number of gem processes Stops when the shared cache becomes full or all data was loaded.
  • 16. 16 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements No more large object leaks Old Design Large objects (> 8 Kb) always go to disk Old space overflows go to disk Result: too much persistent garbage New Design Objects only go to disk if referenced by a committed object. No exceptions for large objects. Net effect: Large reduction in garbage object creation.
  • 17. 17 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements Improved Symbol Management Symbol Gem New session dedicated to managing AllSymbols. Creates all new symbol objects. Guarantees symbols are always canonical Faster Symbol Lookup AllSymbols collection redesigned for speed Lookups now use binary searches
  • 18. 18 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements Online Backups Safely copy database extents while system is running. No impact to users: commits and aborts are allowed.
  • 19. 19 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements Parallelized Garbage Collection Reclaim GC gems Variable number: 0 to 255 Reclaim both shadow and dead objects Run online with production Improved reclaim performance for large production systems.
  • 20. 20 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Improvements Major Virtual Machine Redesign Copy-on-read Object Manager (OM) All Classes and Super classes read into private memory. All objects read/written are copied to private VM memory. Large working set = large memory footprint Byte code dispatch loop written in assembler
  • 21. 21 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 0.38093.8879Create & de-ref 6.5MB objs 2.4693.478Fault and verify 30 MB data 20.13654.541Commit 6.5 MB data 2.0922.397100 factorial 2.1752.45950 factorial GS64 1.1GS 6.1Test Phase 1 Improvements Faster Smalltalk Virtual Machine
  • 22. 22 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Engineering Tasks For 615,000 lines of C code: Convert to C++ Change of compilers Make 64-bit safe long -> int unsigned long -> unsigned int Rewrite object manager and LOM garbage collector from scratch Duration: 15 months
  • 23. 23 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Production Customers China Ocean Shipping Company (COSCO) Location: Shanghai, China Business: Container Shipping Platforms: HPUX, Solaris, Windows XP URL: www.cosco.com Intercontinental Exchange (ICE) Location: Atlanta, GA Business: Energy Futures Trading Platforms: AIX, Windows XP URL: www.theice.com
  • 24. 24 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 1 Phase 1 Production Customers Northwater Capital Location: Toronto, Canada Business: Financial Portfolio Management Platforms: Linux, Solaris URL: www.northwatercapital.com Soon: Dutch Agricultural Institute (LEI) Location: The Hague, Netherlands Business: Government Platforms: Solaris, Windows URL: www.lei.nl
  • 25. 25 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Phase 2 Goals Object Volume Scalability Support very large repositories Overcome 2 billion object limit Fully exploit 64 bit object identifiers
  • 26. 26 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Phase 2 Features 64 bit object IDs Maximum Objects: 240 objects Support for Very Large Databases Max # of database extents: 255 Max extent size: 32 TB Max database size: 8,160 TB
  • 27. 27 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Phase 2 Features Faster Smalltalk VM Add 100 Additional Smalltalk byte codes VM runs 30 50% faster Extended SmallInteger Range ±260 (±1,152,921,504,606,846,976) Previous range: ±229
  • 28. 28 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Phase 2 Features New Special Class: SmallDouble Subset of IEEE 754 float format 8 bit exponent 52 bit mantissa Range: 5.0e-39 to 6.0e+38 (approx) Specials encapsulate their value in the in the object ID No disk I/O
  • 29. 29 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Phase 2 Features Better Indexes on Collections Complete redesign of the indexing subsystem. Faster index creation/removal Fewer concurrency conflicts Same query semantics as before AllEmployees detect:{:e| e.firstName = Stephane & e.lastName = Ducasse }
  • 30. 30 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 GemStone/64 2.x Features Conversion From Previous Releases GemStone/64 1.1 or later GemStone/S 6.1.5 or later.
  • 31. 31 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 GemStone/64 2.0 Released 3/31/2006 Supported Platforms Solaris 9, 10 HPUX 11.11 (PA-RISC)
  • 32. 32 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Production Customers OOCL (Orient Overseas Container Limited) Location: Hong Kong, San Jose, CA Business: Container Shipping Platforms: Solaris, HPUX, Windows XP URL: www.oocl.com
  • 33. 33 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 Production Customers OOCL Production deployment: 7/30/06 360 GB repository 1.7 billion objects 1800 concurrent users
  • 34. 34 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 OOCL Performance: Server VM: 30% 50% faster New Smalltalk byte codes Client Server Network load: 20% more bytes 32 -> 64 bit oops
  • 35. 35 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 OOCL Performance: VW Client 30% 50% Slower 64 bit object IDs are LargePositiveIntegers GemBuilder For Smalltalk (GBS) performance loss Improved GBS coming in October Overall Application Performance: 15% slower.
  • 36. 36 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Phase 2 GemStone/64 2.1 Target: October 2006: Add support for: AIX 5.2, 5.3 Linux on x86-64 VM Performance Improvements Index improvements Bug fixes
  • 37. 37 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GS/64 Coding Changes Possible Problems All objects accessed by the interpreter must be read into the VM, even if the object is only referenced by identity.
  • 38. 38 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GS/64 Coding Changes Possible Problems: Example So this code aLargeArray do:[:each| each == someObject ifTrue:[^each]. ]. ^Object error: #keyNotFound. may be fast in GS 6.1, but not in GS 64. Who Knows Why ?
  • 39. 39 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GS/64 Coding Changes aLargeArray do:[:each| each == someObject ifTrue:[^each]. ]. ^Object error: #keyNotFound. GS 6.1: == compares identity without faulting each. GS 64: == compares identity, but each must be read into memory.
  • 40. 40 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GS/64 Coding Changes Solution: Do it this way: |index| index := aLargeArray indexOfIdentical: someObject. index == 0 ifTrue:[Object error: #keyNotFound] ifFalse:[^aLargeArray at: index]. #indexOfIdentical calls a primitive, which is smart enough to search without faulting in the objects in aLargeArray
  • 41. 41 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GS/64 Coding Changes Other Methods Added To Avoid Unnecessary Object Faulting IdentityBag >> copyFrom:count:into:startingAt: IdentityBag >> copyFrom:to:into:startingAt: OrderedCollection >> addAll: OrderedCollection >> _addAllFromNsc: SequencableCollection >> copyFrom:count:into:startingAt:
  • 42. 42 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Future Releases Multi-threaded garbage collection markForCollection, etc Multi-threaded Tranlog Replay #restoreFromLogs: Crash recovery from crash Multi-thread the Stone process Improved VM Performance
  • 43. 43 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Future Features Additional Special Classes Candidates: Date DateTime Time Currency ScaledDecimal Reduced Conflict (RC) Indexes on Collections
  • 44. 44 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. GemStone/64 Future Features Thread-safe C-interface (GCI layer) Support for Seaside Need native support for continuations
  • 45. 45 Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Questions?