Submit Search
Upload
Glass
•
1 like
•
260 views
E
ESUG
Follow
Glass - Transparent Persistence for Web Applications.ESUG 2007, Lugano
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 39
Download now
Download to read offline
Recommended
Give Your Site a Boost with Memcache
Give Your Site a Boost with Memcache
Ben Ramsey
Zookeeper In Simple Words
Zookeeper In Simple Words
Fuqiang Wang
Best Practices - PHP and the Oracle Database
Best Practices - PHP and the Oracle Database
Christopher Jones
Quest NetVault FastRecover Continuous Data Protection (CDP)
Quest NetVault FastRecover Continuous Data Protection (CDP)
Dell Data Protection
Network performance test plan_v0.3
Network performance test plan_v0.3
David Pasek
optimizing_ceph_flash
optimizing_ceph_flash
Vijayendra Shamanna
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Intel® Software
PoPostgreSQL Web Projects: From Start to FinishStart To Finish
PoPostgreSQL Web Projects: From Start to FinishStart To Finish
elliando dias
Recommended
Give Your Site a Boost with Memcache
Give Your Site a Boost with Memcache
Ben Ramsey
Zookeeper In Simple Words
Zookeeper In Simple Words
Fuqiang Wang
Best Practices - PHP and the Oracle Database
Best Practices - PHP and the Oracle Database
Christopher Jones
Quest NetVault FastRecover Continuous Data Protection (CDP)
Quest NetVault FastRecover Continuous Data Protection (CDP)
Dell Data Protection
Network performance test plan_v0.3
Network performance test plan_v0.3
David Pasek
optimizing_ceph_flash
optimizing_ceph_flash
Vijayendra Shamanna
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Intel® Software
PoPostgreSQL Web Projects: From Start to FinishStart To Finish
PoPostgreSQL Web Projects: From Start to FinishStart To Finish
elliando dias
Solving_the_C20K_problem_PHP_Performance_and_Scalability-phpquebec_2009
Solving_the_C20K_problem_PHP_Performance_and_Scalability-phpquebec_2009
Hiroshi Ono
How can your applications benefit from Java 9?
How can your applications benefit from Java 9?
EUR ING Ioannis Kolaxis MSc
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13
Gosuke Miyashita
Docker San Diego 2015-03-25
Docker San Diego 2015-03-25
Casey Bisson
Ceph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for Ceph
Danielle Womboldt
Cont0519
Cont0519
Samuel Dratwa
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!
ESUG
Oracle 10g Performance: chapter 11 SQL*Net
Oracle 10g Performance: chapter 11 SQL*Net
Kyle Hailey
How swift is your Swift - SD.pptx
How swift is your Swift - SD.pptx
OpenStack Foundation
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
Serge Stinckwich
Rakuten LeoFs - distributed file system
Rakuten LeoFs - distributed file system
Rakuten Group, Inc.
Build Your Own Middleware Machine
Build Your Own Middleware Machine
Simon Haslam
Conference tutorial: MySQL Cluster as NoSQL
Conference tutorial: MySQL Cluster as NoSQL
Severalnines
Solving the C20K problem: Raising the bar in PHP Performance and Scalability
Solving the C20K problem: Raising the bar in PHP Performance and Scalability
ZendCon
Enterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best Practices
Simon Haslam
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios
Dnssec
Dnssec
guest3131f85
Symmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan Doherty
harryvanhaaren
Queues, Pools, Caches
Queues, Pools, Caches
Gwen (Chen) Shapira
Modular ObjectLens
Modular ObjectLens
ESUG
Stateful Traits
Stateful Traits
ESUG
News from Squeak
News from Squeak
ESUG
More Related Content
What's hot
Solving_the_C20K_problem_PHP_Performance_and_Scalability-phpquebec_2009
Solving_the_C20K_problem_PHP_Performance_and_Scalability-phpquebec_2009
Hiroshi Ono
How can your applications benefit from Java 9?
How can your applications benefit from Java 9?
EUR ING Ioannis Kolaxis MSc
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13
Gosuke Miyashita
Docker San Diego 2015-03-25
Docker San Diego 2015-03-25
Casey Bisson
Ceph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for Ceph
Danielle Womboldt
Cont0519
Cont0519
Samuel Dratwa
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!
ESUG
Oracle 10g Performance: chapter 11 SQL*Net
Oracle 10g Performance: chapter 11 SQL*Net
Kyle Hailey
How swift is your Swift - SD.pptx
How swift is your Swift - SD.pptx
OpenStack Foundation
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
Serge Stinckwich
Rakuten LeoFs - distributed file system
Rakuten LeoFs - distributed file system
Rakuten Group, Inc.
Build Your Own Middleware Machine
Build Your Own Middleware Machine
Simon Haslam
Conference tutorial: MySQL Cluster as NoSQL
Conference tutorial: MySQL Cluster as NoSQL
Severalnines
Solving the C20K problem: Raising the bar in PHP Performance and Scalability
Solving the C20K problem: Raising the bar in PHP Performance and Scalability
ZendCon
Enterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best Practices
Simon Haslam
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios
Dnssec
Dnssec
guest3131f85
Symmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan Doherty
harryvanhaaren
Queues, Pools, Caches
Queues, Pools, Caches
Gwen (Chen) Shapira
What's hot
(19)
Solving_the_C20K_problem_PHP_Performance_and_Scalability-phpquebec_2009
Solving_the_C20K_problem_PHP_Performance_and_Scalability-phpquebec_2009
How can your applications benefit from Java 9?
How can your applications benefit from Java 9?
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13
Docker San Diego 2015-03-25
Docker San Diego 2015-03-25
Ceph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for Ceph
Cont0519
Cont0519
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!
Oracle 10g Performance: chapter 11 SQL*Net
Oracle 10g Performance: chapter 11 SQL*Net
How swift is your Swift - SD.pptx
How swift is your Swift - SD.pptx
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
Rakuten LeoFs - distributed file system
Rakuten LeoFs - distributed file system
Build Your Own Middleware Machine
Build Your Own Middleware Machine
Conference tutorial: MySQL Cluster as NoSQL
Conference tutorial: MySQL Cluster as NoSQL
Solving the C20K problem: Raising the bar in PHP Performance and Scalability
Solving the C20K problem: Raising the bar in PHP Performance and Scalability
Enterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best Practices
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Dnssec
Dnssec
Symmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan Doherty
Queues, Pools, Caches
Queues, Pools, Caches
Viewers also liked
Modular ObjectLens
Modular ObjectLens
ESUG
Stateful Traits
Stateful Traits
ESUG
News from Squeak
News from Squeak
ESUG
The Reflectivity
The Reflectivity
ESUG
Starting fresh every morning
Starting fresh every morning
ESUG
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
ESUG
Gstreamer
Gstreamer
ESUG
SCL
SCL
ESUG
Spyware-ridden software development
Spyware-ridden software development
ESUG
Viewers also liked
(9)
Modular ObjectLens
Modular ObjectLens
Stateful Traits
Stateful Traits
News from Squeak
News from Squeak
The Reflectivity
The Reflectivity
Starting fresh every morning
Starting fresh every morning
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
Gstreamer
Gstreamer
SCL
SCL
Spyware-ridden software development
Spyware-ridden software development
Similar to Glass
Gemstone 64 Product Overview
Gemstone 64 Product Overview
ESUG
GemStone/64 product update and road map
GemStone/64 product update and road map
ESUG
GLASS: A Share Everything Architecture for Seaside
GLASS: A Share Everything Architecture for Seaside
ESUG
Gemstone RoadMap
Gemstone RoadMap
ESUG
GemStone Update
GemStone Update
ESUG
GemStone Update 2023
GemStone Update 2023
ESUG
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
Simon Haslam
RESTful OGC Services
RESTful OGC Services
Pat Cappelaere
Jetty Vs Tomcat
Jetty Vs Tomcat
Tomoaki Sawada
PaaS on Openstack
PaaS on Openstack
Open Stack
GemStone/S 64 Update
GemStone/S 64 Update
ESUG
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
makker_nl
Life on the Edge with ESI
Life on the Edge with ESI
Kit Chan
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
Josef Adersberger
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
QAware GmbH
Open ebs 101
Open ebs 101
LibbySchulze
State of GeoServer
State of GeoServer
Jody Garnett
Building Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache Geode
imcpune
GlassFish in Production Environments
GlassFish in Production Environments
Bruno Borges
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
The Linux Foundation
Similar to Glass
(20)
Gemstone 64 Product Overview
Gemstone 64 Product Overview
GemStone/64 product update and road map
GemStone/64 product update and road map
GLASS: A Share Everything Architecture for Seaside
GLASS: A Share Everything Architecture for Seaside
Gemstone RoadMap
Gemstone RoadMap
GemStone Update
GemStone Update
GemStone Update 2023
GemStone Update 2023
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
RESTful OGC Services
RESTful OGC Services
Jetty Vs Tomcat
Jetty Vs Tomcat
PaaS on Openstack
PaaS on Openstack
GemStone/S 64 Update
GemStone/S 64 Update
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
Life on the Edge with ESI
Life on the Edge with ESI
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Open ebs 101
Open ebs 101
State of GeoServer
State of GeoServer
Building Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache Geode
GlassFish in Production Environments
GlassFish in Production Environments
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
More from ESUG
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
Technical documentation support in Pharo
Technical documentation support in Pharo
ESUG
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
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 results
ESUG
Transpiling 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 Generation
ESUG
Creating 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 Modes
ESUG
Exploring 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 APIs
ESUG
Garbage Collector Tuning
Garbage Collector Tuning
ESUG
Improving 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 Future
ESUG
thisContext in the Debugger
thisContext in the Debugger
ESUG
Websockets for Fencing Score
Websockets for Fencing Score
ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
More from ESUG
(20)
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
Technical 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 Roadmap
Sequence: 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...
Analyzing 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 6
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
Creating 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 Modes
Exploring 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 APIs
Garbage Collector Tuning
Garbage Collector Tuning
Improving 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 Future
thisContext in the Debugger
thisContext in the Debugger
Websockets for Fencing Score
Websockets for Fencing Score
ShowUs: 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 Mooc
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
Recently uploaded
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
Recently uploaded
(20)
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
Glass
1.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.1
2.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. But first, a Word from our Sponsors… Some highlights since last year TimeZone patch for 6.x GemStone/S 64 Bit releases • 1.1.7 to 1.1.14 • 2.0.4, 2.0.5 • 2.1.0 to 2.1.5 • 2.2.0 to 2.2.2 (August 2007) 2
3.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. GemStone 64 Bit Enhancements - 1 Multi-threaded stone, shared page cache monitor Polymorphic method lookup caches Segment (security) support Larger signal buffer for gem-to-gem signals Linux supports faster performance using optimized POSIX Asynchronous I/O Signal when transaction logs are full Ten application write lock queue with timeout Locale and new extended character set support System class>>#logout now available Several float operations now in primitives 3
4.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. GemStone 64 Bit Enhancements - 2 RcQueue improvements Add time is now millisecond-based Improved performance by preconfiguring max size Multiple retries on commit conflict Reduced conflict equality indexes Added tranlog analysis abilities (auditability) DateTime now supports millisecond resolution Better handling of LostOT situation Collection optimizations Optimization of #and: and #or: Intel Macintosh client libraries (level “B” support) Logging enhancements (ms times, etc.) 4
5.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Announcement of Free Edition GemStone “Web Edition” No cost license, even for commercial use! Up to 4 GB image (repository) size Up to 1 GB shared page cache Up to 64 million objects Unlimited VMs (gems) 64-bit Linux on 64-bit Intel hardware Uses only one CPU on one host GemBuilder for Smalltalk is disabled Community support 5
6.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.6 What is Seaside and Why the Interest? What is Seaside? Where were you during Lucas Renggli’s presentation yesterday? Why the interest? Buzz from Ruby on Rails Grow interest in Smalltalk “We can do better” – Alan Knight (Same as Cincom and Instantiations ;-)
7.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.7 Why Port Seaside to GemStone/S? Other dialects of Smalltalk are single-user and non-persistent This means that a Seaside application needs to work around built-in limitations to handle multi- user persistence GemStone’s value has always been providing Smalltalk developers with: Built-in transactional persistence Built-in multi-user capability Built-in multi-CPU and multi-machine scalability. GemStone’s lack of a GUI is okay!
8.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.8 Challenge of Persistence Persistence approaches in Smalltalk In the image • Loss of data if image quits • Not shared across images In a binary file-out • Limited size • Object identity is not be preserved In an external database • Object/relational mapping overhead • Extra coding to foreign interface GemStone/S solves this problem!
9.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.9 Challenge of Multi-User Coordination Multi-user approaches in Smalltalk One image serving multiple clients • Requires layer directing query to image • Scalability limit Coordinate through external database • Object/relational mapping issues • Extra coding to foreign interface GemStone/S solves this problem!
10.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.10 Challenge of Scalability Scalability approaches in Smalltalk Add hardware • Still basically single-threaded Run more images • Presents all the persistent/multi-user issues GemStone/S solves this problem!
11.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.11 Scaling Multiple VMs Each is a separate OS process Each has full access to the database Close to linear scaling Multiple hosts Customer production systems • 1500 VMs; 200 hosts Tested • 3000 VMs; 1 terabyte data; 16 billion objects
12.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. What’s Done? Code in GemStone Smalltalk HTTP Server (Hyper) and FastCGI Server Monticello (File & HTTP) Seaside 2.6 & Seaside 2.8 SqueakSource (in 2.6) Squeak-based tools GS/S login & workspace View & edit GS/S code & objects • OmniBrowser, OB Standard, OB Tools 12
13.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.13 GemSource
14.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.14 Where Do We Get Seaside? The “official” version is in Squeak http://www.squeaksource.com/Seaside Existing Seaside ports to Dolphin VisualWorks Typical porting process is somewhat complex Export from Squeak Import into other dialect
15.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.15 Get Seaside Directly from the Source! Typical port process is awkward Any changes must be made in Squeak Wait for someone to update port GemStone has the “advantage” of no native source code control Source is in Monticello repository File and HTTP interface (among others) Port Monticello to GemStone/S
16.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Technical Challenges and Decisions Method namespaces Base-class additions and overrides Support for hosted sandbox Compiler changes for assignment Transient (non-persistent) objects Selective rollback 16
17.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.17 Aside on Namespaces Namespace problem: Typically, isolating code from each vendor Complexities of multi-user image • Each user can load different packages • A package can add/replace methods for classes in another package • What if other class/method is shared? Prior namespace not adequate Need to isolate each user (session) Add ‘Session Methods’ feature to GS/S
18.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.18 Session Methods-1 Traditional method lookup: Array then… SequenceableCollection then… Collection then… Object then… MessageNotUnderstood exception Dictionary subclass: SessionMethods Keys: Class Values: MethodDictionary instances
19.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.19 Session Methods-2 New method search: • SessionMethods for Array Array • SessionMethods for SequenceableCollection SequenceableCollection • SessionMethods for Collection Collection • SessionMethods for Object Object Method is cached after first lookup
20.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Namespace Proposal Dictionary subclass: Environment Keys: Class Values: MethodDictionary instances Each method, when compiled, can be associated with an Environment Default to class’s Environment Class’s Environment defaults to System Use Environment from method in place of SessionMethods from login 20
21.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.21 Make GemStone/S Accessible to Squeak Developers GemStone/S compiler was modified to allow underbar as the assignment statement: url _ 'http://seaside.gemstone.com/'. This allows code to be loaded directly No translation needed This allows use of Monticello tools to compare versions w/o clutter Export back to Monticello and load in Squeak
22.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. New DbTransient Attribute A class can now have the new attribute DbTransient. This is designed to be similar to Java “transient” variable attribute. The instance variables of instances of a class that is DbTransient are not committed, but remain local to the session. This allows you to reference objects that should not be persistent - such as semaphores - within data structures that are persistent and shared. Typical pattern is to wrap such objects. 22
23.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Multiple Dirty Lists - 1 “Extreme Validation” (Leandro Caniglia) Don’t rely exclusively on presentation layer for validation Check domain objects for validity Rollback domain objects if invalid Problem is that not all work should be discarded Existing continuations need to be saved 23
24.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Multiple Dirty Lists - 2 Create separate buckets for objects Seaside framework objects go in one bucket Application domain objects go in another bucket Objects in one bucket can be rolled back without losing data from objects in the other bucket Not really “nested transactions,” but another solution that works here 24
25.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.25 How Does Apache Fit In? Most Seaside applications use a Smalltalk HTTP server (e.g., Kom) Large-scale applications will generally want a separate web server Serve static pages Handle SSL (https requests) Load balancing Fail-over backup Security (hacker-resistant) Separate server administration
26.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.26 Apache Forwards Requests ReverseProxy Forward selected requests using HTTP FastCGI Forward selected requests using FastCGI
27.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Develop in Squeak, Deploy in GemStone Squeak is more familiar for most Seaside developers Many Seaside applications are already developed Port to GemStone/S when ready for deployment, or when you need to scale 27
28.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Port Process - 1 Fix compile errors on load Export application packages from Squeak to files or HTTP repository Load packages into GemStone Identify compile errors—typically {…} Fix in Squeak image Repeat until no compile errors 28
29.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Port Process - 2 Fix initialization errors on load Export application packages from Squeak to files or HTTP repository Load packages into GemStone Identify initialization errors • References to missing classes or methods Fix • Add missing classes (load more packages) • Add platform-specific or general-use methods Repeat until no initialization errors 29
30.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Port Process - 3 Compare image to filed-out package Should be no differences after load Any differences are due to things that didn’t load Fix any differences Repeat till no differences 30
31.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Port Process - 4 Fix Undeclared Globals Don’t wait for a walkback SymbolDictionary of undeclared globals • Key: Global name (referenced but not found) • Value: Set of Associations identifying methods – Key: Class with referencing method – Value: Selector for referencing method Add missing classes (load more packages) Repeat till no more undeclared globals 31
32.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Port Process - 5 Run Unit Tests You do have tests don’t you? Run application and verify operation Fixes can be exported from GemStone/S and loaded into Squeak! 32
33.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.33 Jade: GemStone/S Tools in Squeak - 1 Client access is through a shared library (DLL on Windows) GemStone C Interface (GCI) Use Squeak’s Foreign Function Interface (FFI) to access GCI Wrap C functions with Smalltalk methods
34.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.34 Jade: GemStone/S Tools in Squeak - 2 User Interface available Login Workspace OmniBrowser Monticello Browsers Thanks to Liliana Ivan for initial port
35.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. GLASS Appliance Avoid Setup, Configuration, and Management of GemStone Server VMware “appliance” VMware Server free for Linux, Windows VMware Fusion for Macintosh (US$60) We create a full Ubuntu machine Linux pre-installed and configured Seaside starts when OS boots Squeak image installed for tools 35
36.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.36 Hosted Sandbox Avoid Setup, Configuration, and Management of GemStone Server Shared Server on Internet Added security features to reduce risk Apply for an Account http://seaside.gemstone.com/
37.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. What’s Left? Tools Monticello browser performance Appliance Start-up Maintenance (GC, backup, etc.) Sandbox Security setup Feedback from beta developers 37
38.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved. Lessons Learned Humility We don’t know Seaside (Apache, etc.) very well, but we recognize the pain of Object-Relational mapping. We have learned a lot about web application needs from you, and have varied our approach based on early feedback (number of VMs, rollback, etc.). Community We aren’t trying to steer the direction, but to give you, the community, good tools. 38
39.
Copyright © 2007,
GemStone Systems Inc. All Rights Reserved.39 Question? Documentation (such as it is ;-) http://seaside.gemstone.com/ Mailing Lists http://www.seaside.st/Community/MailingList/ subscribe-gemstone-smalltalk@earth.lyris.net Email James.Foster@GemStone.com Dale.Henrichs@GemStone.com
Download now