SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
GemStone/S Update
                               Norman R. Green
                          Director, R & D, VMware Inc.
                            ESUG Conference 2012
                                Gent, Belgium




Thursday, August 30, 12
Agenda
        GemStone/S 32
        GemStone/S 64 2.4.x
        GemStone/S 64 3.0
        GemStone/S 64 3.1




     2

Thursday, August 30, 12
Thursday, August 30, 12
GemStone/S 32 Bit


    Yes, it’s still in use, and in production!
    Last Major Release: 6.6.2 in Feb 2012
    6.6.x Summary
         • Rudimentary multi-threaded garbage collection
          • Use native threads to perform I/O
         • Symbol Garbage Collection
          • Methods to locate and remove unreferenced symbols.
          • Non-canonical symbol detection
         • Methods to override commit-at-login behavior
          • lastLoginTime is committed at login time if UserProfile security is
            enabled.
          • Commit-at-login can now be disabled on a per-UserProfile basis.



     4

Thursday, August 30, 12
GemStone/S 32 Bit


    6.6.x Summary
          • Backup and Restore to/from NFS
             • Full backups may now be made to an NFS file system.
             • Full backups may be restored from an NFS file system.
             • Tranlogs may be restored from an NFS file system.
         • POWER7 Certification (AIX only)
          • Add additional memory barriers required by POWER7 Processor




     5

Thursday, August 30, 12
GemStone/S 32 Bit


    End of Life
         • EOL for GemStone/S 32 bit is planned for Oct-2012.
         • What does that mean exactly?
          • No more major releases.
          • No new product sales.
          • Support for existing customers will continue for 3 more years (2015).
          • Maintenance renewals beyond 2015 will not be accepted.




     6

Thursday, August 30, 12
GemStone/S 64 2.4.x


    Current Releases
         • 2.4.4.7
          • Critical bug fixes
          • A few minor new features
         • 2.4.5
          • Critical and non-critical bug fixes
          • Several minor new features
         • 2.4.5.1
          • Minor bug fixes
          • POWER7 certification
    Further Details
         • Release Notes
         • http://community.gemstone.com/display/GSS64/Documentation

     7

Thursday, August 30, 12
Thursday, August 30, 12
GemStone/64 3.0


    3.0 shipped on June 15, 2011.
    3.0 was a major step forward in features and
     performance.
    Adoption has been (predictably) slow.

    Native Code Virtual Machine
         • Converts byte codes to native instructions
         • JIT design – conversion occurs at first method invocation.
         • 25% to 100% speed improvement




     9

Thursday, August 30, 12
GemStone/64 3.0


    Foreign Function Interface (FFI)
      • Load shared libraries.
      • Call C functions without writing C code.
      • All coding can be done in Smalltalk
      • Martin presented FFI at STIC 2011




     10

Thursday, August 30, 12
GemStone/S 64 3.1.x


    Current Releases
      • 3.1 - July 6, 2012
      • 3.1.0.1 - August 28, 2012
    Next Release
      • 3.1.1 - Q1, 2013
          • Bug fixes




     11

Thursday, August 30, 12
New Features


    Mid-Level Shared Caches
      • Caches that sit between the stone cache and a remote
        SPC
      • Benefits
          • Better caching.
             • 3 caches to look for pages rather than 2
          • Reduced Network I/O on Stone Server
             • 500 remote caches can red-line a 10 GB/s network!




     12

Thursday, August 30, 12
Classic Remote SPC “Star” Configuration



                SPC                          SPC




                          Stone
      SPC
                                   SPC
                                              SPC

                                  DB


           SPC                                SPC




     13

Thursday, August 30, 12
Mid-Level Cache Configuration


                                Mid-Level Caches
                SPC                                      SPC




                                Stone
          SPC                            SPC
                                                   SPC    SPC
                          SPC

                                        DB


           SPC                                            SPC

                                 Leaf Caches


     14

Thursday, August 30, 12
New Features


    Mid-Level Shared Caches
      • Creating a Mid-Level Cache
      1.Start the netldi on the remote (leaf cache) host, mid-level
       host, and stone server
      2.From the leaf-cache host, do a normal remote login
      3.Run this code to create the mid-cache:

      System
          midLevelCacheConnect: midLevelHostName
          cacheSizeKB: aSize
          maxSessions: nSess




     15

Thursday, August 30, 12
New Features


    Mid-Level Shared Caches
      • Connecting to an Existing Mid-Level Cache
      1.From the leaf-cache host, do a normal remote login
      2.Run this code to connect to the mid-cache:

      System midLevelCacheConnect: hostName




     16

Thursday, August 30, 12
New Features


    External Password Validation
      • Passwords may now be stored and managed outside of
        GemStone.
      • 2 New Options
          • LDAP = Lightweight (ha!) Directory Access Protocol
          • UNIX password




     17

Thursday, August 30, 12
New Features


    External Password Validation
      • User ID Aliases are Supported
          • GemStone user ID may or may not match external user ID.
          • Example:
             • GemStone UID: ‘normg’
             • LDAP UID: ‘norm.green’




     18

Thursday, August 30, 12
New Features


    External Password Validation
      • LDAP – Uses OpenLDAP and OpenSSL libraries (shipped
        with GemStone).
      • UNIX – Uses getpwnam() / getspnam() UNIX calls.




     19

Thursday, August 30, 12
New Features


    External Password Validation
      • Enabling LDAP authentication for a UserProfile:

          | u |
          u := AllUsers userWithId: ‘normg’.
          u enableLDAPAuthenticationWithAlias: ‘norm.green’
            baseDN: ‘uid=%s,ou=LdapTesting,dc=gemstone,dc=com’
            filterDN: nil .
          System commitTransaction .




     20

Thursday, August 30, 12
New Features


    Multi-threaded Operations
      • The following operations are now multi-threaded:
                •   markForCollection
                •   objectAudit
                •   findDisconnectedObjects
                •   countInstances
                •   listInstances
                •   listReferences
                •   GsObjectInventory
                •   findObjectsLargerThan
                •   Epoch Garbage Collection
                •   Write Set Union Sweep (part of GC finalization)
      • Native (OS) threads are used.
      • Each thread is a unique GemStone session
      • Each thread takes a shared page cache slot.
     21

Thursday, August 30, 12
New Features


    Multi-threaded Operations
      • Aggressiveness Is Controlled By 2 Parameters:
          • Number of threads
          • Percent CPU Active
             • Means total CPU load on the server across all cores.
             • Threads will start sleeping if the threshold is exceeded.
      • Both Parameters Can Be Adjusted On The Fly
          • SystemRepository
             setMultiThreadedScanThreads: numThreads
             maxCpu: aPercent




     22

Thursday, August 30, 12
New Features


    Multi-threaded Operations
      • The default methods are NOT aggressive
      • If you want speed, use the fast* methods
          • markForCollection – uses 2 threads
          • fastMarkForCollection – uses up to 16 threads




     23

Thursday, August 30, 12
New Features


    ProfMonitor Improvements
      • New implementation supports sample intervals down to 1
        microsecond (1000 ns).
      • New Class Protocol
          • ProfMonitor monitorBlock: aBlock downTo: hits
            intervalNs: ns
          • ProfMonitor monitorBlock: aBlock intervalNs: ns




     24

Thursday, August 30, 12
New Features


    Built-In Monticello Support
      • Monticello Support is now available “out of the box”
      • Protocols:
          • GSPackageLibrary loadMczFile: aFile
            fromRepositoryPath: aPath
          • GSPackageLibrary loadLastVersionOf: packageName
            fromRepositoryPath: aPath




     25

Thursday, August 30, 12
Smalltalk Changes


    Array Literal Syntax
      • Run-time Constructor
          • 2.x: #[ 1, 2, 3 ]
          • 3.0: { 1 . 2 . 3 }
      • Compile-time Constructor (unchanged)
          • #( 1, 2, 3)

    In 3.0, the old 2.x Array syntax can be enabled by
      running this code after login:
      • System gemConfigurationAt:#GemConvertArrayBuilder put: true


    ByteArray Literal Syntax (new)
      • #[ 0 1 254 255 ]

     26

Thursday, August 30, 12
Smalltalk Changes


    Exception Handling
      • In 3.0, ANSI exceptions are fully supported.
      • ANSI exceptions are class-based.
      • Old GemStone Exception class is deprecated, but still
        works in some cases.
      • GemStone error numbers are deprecated.




     27

Thursday, August 30, 12
Smalltalk Changes


    New Special Selectors
      • The following selectors are inlined by the compiler and
          may not be overloaded:
          •   ifNil:
          •   ifNotNil:
          •   ifNotNil:ifNil:
          •   ifNil:ifNotNil:
          •   _isSmallInteger
          •   _isInteger
          •   _isNumber
          •   _isFloat
          •   _isSymbol
          •   _isExceptionClass
          •   _isExecBlock
          •   _isArray

     28

Thursday, August 30, 12
Smalltalk Changes


    Segment is renamed GsObjectSecurityPolicy
      • We’ve wanted to change that for a long time.




     29

Thursday, August 30, 12
Smalltalk Changes


    Dynamic Instances Variables
      • Add instance variables on the fly!
      • No instance migration required.
      • Replaces object tags
      • Methods:
          • Object dynamicInstVarAt: aSymbol
          • Object dynamicInstVarAt: aSymbol put: anObject
          • Object removeDynamicInstVar: aSymbol




     30

Thursday, August 30, 12
Smalltalk Changes


    LargeInteger Changes
      • New class: LargeInteger
          • Replaces both LargePositiveInteger and LargeNegativeInteger
          • Existing Instances:
             • LargePositiveInteger -> ObsoleteLargePositiveInteger
             • LargeNegativeInteger -> ObsoleteLargeNegativeInteger
          • Instances are automatically converted when loaded into object
            memory.
          • To convert manually, send:
             • anObsoleteInt convert




     31

Thursday, August 30, 12
Smalltalk Changes


    ScaledDecimal Changes
      • New format:
          • mantissa (SmallInteger or LargeInteger)
          • scale (SmallInteger) – power of 10
      • New Literal Notation (ANSI compliant)
          • 1.23s2
             • Mantissa: 123
             • Scale: 2




     32

Thursday, August 30, 12
Smalltalk Changes


    ScaledDecimal Changes
          • GS/64 v2.x ScaledDecimal is now FixedPoint in 3.0
          • Instances are automatically converted
          • New Literal Syntax:
                  • 1.23p2
                      • Numerator: 123
                      • Denominator: 100
                      • Scale: 2




     33

Thursday, August 30, 12
Smalltalk Changes


    New Class/Metaclass Hierarchy
                      2.x                            3.0
      •    Object                      •   Object
            •    Behavior                  •   Behavior
                  •       Metaclass            •    ObsoleteMetaclass
                  •       Class                •    Module
                                                    •   Metaclass3
                                                          •   Class
      •   After upgrade, existing Metaclasses become ObsoleteMetaclass
      •   Newly created classes will have a class of Metaclass3
      •   Applications which are sensitive to the superclass of Class or
          Metaclass will need to be adjusted.
     34

Thursday, August 30, 12
Performance Improvements


    Aborting A Transaction
      • Round trips to stone reduced from 2 to 1




     35

Thursday, August 30, 12
Performance Improvements

                                                   Stone
    Old SMC Design
                                          Gem
                 Gem Procedure
    •     Get SMC queue lock
    •     Add self to SMC queue           Gem               Spin Lock
    •     Release SMC queue lock
    •     Wait on semaphore for stone’s
          response.                       Gem
                 Stone Procedure
    1.    Get SMC queue lock.
    2.    Remove all requests from
          SMC queue.
    3.    Release SMC queue lock
    4.    Process Requests                      SMC Queue

     36

Thursday, August 30, 12
Performance Improvements


    New SMC Design – No Lock or Queue
                  Gem Procedure
                                          Gem           Gem
    •     Set my bit (atomic OR)
    •     Wait on semaphore for stone’s
          response.

                                                              SMC Words
                Stone Procedure
   1.     For each 64-bit session word:         Stone
          •     Read and clear all bits
                (atomic AND).
   2.     Process Requests



     37

Thursday, August 30, 12
Performance Improvements


    Session Priority
      • Elimination of SMC queue means sequence of sessions
        requesting service from stone is not preserved.
      • Session Priority added to compensate.
      • Session Priority Values:
             0 – lowest (Reclaim and Admin GC gems)
             1 – low
             2 – medium (default)
             3 – high
             4 – highest
      • Session holding (or about to receive) the commit token
          always has highest priority.



     38

Thursday, August 30, 12
Performance Improvements


    Session Priority Protocol
      • System setSessionPriority: anInt
        forSessionId: aSessionId
      • System priorityForSessionId: aSessionId




     39

Thursday, August 30, 12
Performance Improvements


    Shared Cache Hash Table Read Locks
    SPC Hash Table is a dictionary in shared memory
     • pageId -> cache offset (address)

      • 2.x Design
          • All hash table row accesses were serialized by spin lock.
          • Result: All lookups are serialized.
      • 3.0 Design
          • Each hash table row now has a reference count and a write
            lock.
          • Result: Lookups are done in parallel.




     40

Thursday, August 30, 12
Performance Improvements


    Serialized Hash Table Lookups In 2.x
            Gem1
                            Spin Locks
                                                          Collision Chain

            Gem2                         14               9      2      6



             Gem3                  SPC Hash Table


          •3 Gems want to lookup page 6.      If the lookup time is n, then:
          •Each gem must hold the lock to          •Gem1: n
          perform the lookup.                      •Gem2: 2n
                                                   •Gem3: 3n


     41

Thursday, August 30, 12
Performance Improvements


    Parallelized Hash Table Lookups In 3.0
            Gem1
                          Spin Locks
                                                        Collision Chain

            Gem2                       14               9      2      6



             Gem3                SPC Hash Table


  •3 Gems want to lookup page 6.            If the lookup time is n, then:
  •All 3 lookups can be done                     •Gem1: n
  simultaneously!                                •Gem2: n
                                                 •Gem3: n


     42

Thursday, August 30, 12
Performance Improvements


    New Tranlog AIO System
      • POSIX AIO calls (aio_write()) removed.
          • Too many OS bugs
      • Replaced With Our Own Code
      • Based on Native OS Threads
      • New Config Parameter:
          • STN_NUM_AIO_WRITE_THREADS - Number of native threads
             started to perform tranlog writes.




     43

Thursday, August 30, 12
Index Performance Improvement
                                                      Index Performance



                          Remove indexes
              Operation




                            Audit indexes
                                                                                          3.0
                                                                                          2.4



                            Build Indexes



                                            0   200          400          600      800
                                                           Seconds




          •        Solaris 10 SPARC                          •       5 Equality Indexes
          •        Tranlogs on solid state disks
          •        Extents on raw partitions.
          •        2M element collection

     44

Thursday, August 30, 12
Thursday, August 30, 12
GemStone/S 64 3.1


    Hot-standby database support
          • Automatically synchronize 1 or more hot standby databases across a LAN
            or WAN.
          • Real-time tranlog replay
          • Failover support
          • Automatic reconnect support
    Support for UTF & Locale-specific collation using ICU
          • Interface to the International Components for Unicode (ICU) libraries.
          • ICU is a widely used open source set of libraries providing Unicode and
             globalization support for software applications.
    Secure RPC logins using SSL
          • All RPC logins now use Secure Socket Layer (SSL) and Secure Remote
            Password (SRP) to establish the initial connection between the GCI client
            and gem and to authenticate passwords.
          • Passwords are now stored in GemStone in the encrypted form used by
            SRP.
     46

Thursday, August 30, 12
GemStone/S 64 3.1


    Backup and restore reimplemented as multi-threaded
          • For multi-file backups, the protocol that created or restored backup files in a
            sequence of commands has been removed
          • All backup files are created or restored simultaneously
          • Multi-file backups are now created or restored by a single command rather
            than repeated calls to continue* methods
          • Written in parallel, using separate threads to write to each file after initial
            material is written to the first file.
    Symbol garbage collection
          • If enabled, this occurs automatically in the background and requires no
             management.
    Garbage Collection Enhancements
          • Ability to defer reclaim under low free space conditions
          • Further optimizations to MFC
    The FFI has a number of changes and improvements
    47

Thursday, August 30, 12
GemStone/S 64 3.1


    Nested Transactions
     • Create up to 16 sub-transactions which may be independently aborted or
          committed.
     • Protocol:
          •   System beginNestedTransaction
              •   Begin a new nested transaction
          •   System abortNestedTransaction
              •   Roll back changes made in this nested transaction only.
          •   System commitNestedTransaction
              •   Commits the modifications made in the current nested transaction to the next
                  outer-level transaction.
              •   Changes are NOT seen by other sessions until the outer-most transaction is
                  committed.
              •   Write-write conflicts with other session are not detected here.



     48

Thursday, August 30, 12
GemStone/S 64 3.1


    IPv6 Support
          •   3 Address protocols now supported:
              •   IPv4
              •   IPv6
              •   IPv4-mapped IPv6
          •   New Config File Options:
              •   STN_LISTENING_ADDRESSES – A list of 0 to 10 addresses upon which stone
                  should listen for login connections .
          •   For More Info:
              •   RFC 2373
              •   RFC 4291
              •   RFC 4038




     49

Thursday, August 30, 12
GemStone/S 64 3.2


    Target Date
      • 3.2 - Q3, 2013
    New Features
      • Multi-threaded page reclaim sessions.
      • Additional multi-threaded garbage collection options.
      • Additional Unicode character features
      • Thread-safe GCI (Customer C Interface)
      • Optimize GemStone/S to run on ESXi.
      • Add protection for DoS attacks.
      • Load Balancer – balance loads across multiple nodes.




     50

Thursday, August 30, 12
Questions ?




          VMware Inc.                 Norman R. Green
          15220 NW Greenbrier Pkwy.   Director, R&D
          Suite 150                   normg@vmware.com
          Beaverton, Oregon, 97006
                                      (503) 533-3710 direct
          www.vmware.com              (503) 804-2041 mobile




     51

Thursday, August 30, 12
Ruby that Scales




Thursday, August 30, 12
GemStone/S HIstory

    1982       32-bit     64-bit
      .
      .
      .
    1986         1.0
      .
      .          1.5
      .
    1990         2.0
      .
      .          3.0
      .
      .          4.0
      .
      .          5.0
      .
      .          5.1
      .
    2000
      .
      .          6.0
      .          6.1
      .
      .                    1.0
      .                    2.0
      .          6.2       2.2
      .          6.3       2.3
      .          6.5       2.4
    2010
      .          6.6       3.0
      .                    3.1
                                   First GemStone customer, May 1986
     53                            Confidential


Thursday, August 30, 12
The future is here, it’s just not
                             evenly distributed yet.
                                – William Gibson




Thursday, August 30, 12

Contenu connexe

Tendances

Low latency & mechanical sympathy issues and solutions
Low latency & mechanical sympathy  issues and solutionsLow latency & mechanical sympathy  issues and solutions
Low latency & mechanical sympathy issues and solutionsJean-Philippe BEMPEL
 
Varnish in action pbc10
Varnish in action pbc10Varnish in action pbc10
Varnish in action pbc10Combell NV
 
Thinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lotThinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lotMark Broadbent
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganetikawamuray
 
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph EnterpriseRed Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph EnterpriseRed_Hat_Storage
 
Kernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architectureKernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architectureAnne Nicolas
 
Hands on Virtualization with Ganeti (part 1) - LinuxCon 2012
Hands on Virtualization with Ganeti (part 1)  - LinuxCon 2012Hands on Virtualization with Ganeti (part 1)  - LinuxCon 2012
Hands on Virtualization with Ganeti (part 1) - LinuxCon 2012Lance Albertson
 
NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010Ben Scofield
 
Checkpoint/Restore mostly in Userspace
Checkpoint/Restore mostly in UserspaceCheckpoint/Restore mostly in Userspace
Checkpoint/Restore mostly in UserspaceAndrey Vagin
 
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1Yukio Saito
 
Nytro-XV_NWD_VM_Performance_Acceleration
Nytro-XV_NWD_VM_Performance_AccelerationNytro-XV_NWD_VM_Performance_Acceleration
Nytro-XV_NWD_VM_Performance_AccelerationKhai Le
 
APC & Memcache the High Performance Duo
APC & Memcache the High Performance DuoAPC & Memcache the High Performance Duo
APC & Memcache the High Performance DuoAnis Berejeb
 
CloudStackユーザ会〜仮想ルータの謎に迫る
CloudStackユーザ会〜仮想ルータの謎に迫るCloudStackユーザ会〜仮想ルータの謎に迫る
CloudStackユーザ会〜仮想ルータの謎に迫るsamemoon
 
Barcelona apc mem2010
Barcelona apc mem2010Barcelona apc mem2010
Barcelona apc mem2010isnull
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingDataStax Academy
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasualYuji Kubota
 
Logical volume manager xfs
Logical volume manager xfsLogical volume manager xfs
Logical volume manager xfsSarwar Javaid
 

Tendances (20)

Low latency & mechanical sympathy issues and solutions
Low latency & mechanical sympathy  issues and solutionsLow latency & mechanical sympathy  issues and solutions
Low latency & mechanical sympathy issues and solutions
 
Varnish in action pbc10
Varnish in action pbc10Varnish in action pbc10
Varnish in action pbc10
 
Thinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lotThinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lot
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganeti
 
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph EnterpriseRed Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
 
Kernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architectureKernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architecture
 
Hands on Virtualization with Ganeti (part 1) - LinuxCon 2012
Hands on Virtualization with Ganeti (part 1)  - LinuxCon 2012Hands on Virtualization with Ganeti (part 1)  - LinuxCon 2012
Hands on Virtualization with Ganeti (part 1) - LinuxCon 2012
 
NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010
 
Checkpoint/Restore mostly in Userspace
Checkpoint/Restore mostly in UserspaceCheckpoint/Restore mostly in Userspace
Checkpoint/Restore mostly in Userspace
 
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
 
Nytro-XV_NWD_VM_Performance_Acceleration
Nytro-XV_NWD_VM_Performance_AccelerationNytro-XV_NWD_VM_Performance_Acceleration
Nytro-XV_NWD_VM_Performance_Acceleration
 
Tools for Metaspace
Tools for MetaspaceTools for Metaspace
Tools for Metaspace
 
APC & Memcache the High Performance Duo
APC & Memcache the High Performance DuoAPC & Memcache the High Performance Duo
APC & Memcache the High Performance Duo
 
CloudStackユーザ会〜仮想ルータの謎に迫る
CloudStackユーザ会〜仮想ルータの謎に迫るCloudStackユーザ会〜仮想ルータの謎に迫る
CloudStackユーザ会〜仮想ルータの謎に迫る
 
Barcelona apc mem2010
Barcelona apc mem2010Barcelona apc mem2010
Barcelona apc mem2010
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
ZFSperftools2012
ZFSperftools2012ZFSperftools2012
ZFSperftools2012
 
Lock free programming- pro tips
Lock free programming- pro tipsLock free programming- pro tips
Lock free programming- pro tips
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasual
 
Logical volume manager xfs
Logical volume manager xfsLogical volume manager xfs
Logical volume manager xfs
 

Similaire à GemStone/S Update Highlights

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
 
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
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapESUG
 
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012Roland Tritsch
 
Nimble Storage Series A presentation 2007
Nimble Storage Series A presentation 2007Nimble Storage Series A presentation 2007
Nimble Storage Series A presentation 2007Wing Venture Capital
 
Ceph Day New York 2014: Ceph, a physical perspective
Ceph Day New York 2014: Ceph, a physical perspective Ceph Day New York 2014: Ceph, a physical perspective
Ceph Day New York 2014: Ceph, a physical perspective Ceph Community
 
Cassandra 2.0 better, faster, stronger
Cassandra 2.0   better, faster, strongerCassandra 2.0   better, faster, stronger
Cassandra 2.0 better, faster, strongerPatrick McFadin
 
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, StrongerCassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, StrongerDataStax
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)MongoDB
 
PuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That WasPuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That WasWalter Heck
 
PuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That WasPuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That WasOlinData
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment StrategyMongoDB
 
The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...
The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...
The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...Glenn K. Lockwood
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for DockerChristian Beedgen
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introductionkanedafromparis
 
Monitoring at/with SUSE 2015
Monitoring at/with SUSE 2015Monitoring at/with SUSE 2015
Monitoring at/with SUSE 2015Lars Vogdt
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment StrategiesMongoDB
 

Similaire à GemStone/S Update Highlights (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
 
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
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product Roadmap
 
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
 
Nimble Storage Series A presentation 2007
Nimble Storage Series A presentation 2007Nimble Storage Series A presentation 2007
Nimble Storage Series A presentation 2007
 
Ceph Day New York 2014: Ceph, a physical perspective
Ceph Day New York 2014: Ceph, a physical perspective Ceph Day New York 2014: Ceph, a physical perspective
Ceph Day New York 2014: Ceph, a physical perspective
 
Cassandra 2.0 better, faster, stronger
Cassandra 2.0   better, faster, strongerCassandra 2.0   better, faster, stronger
Cassandra 2.0 better, faster, stronger
 
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, StrongerCassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
Google file system
Google file systemGoogle file system
Google file system
 
PuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That WasPuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
 
PuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That WasPuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
PuppetCamp SEA @ Blk 71 - Puppet: The Year That Was
 
Js on-microcontrollers
Js on-microcontrollersJs on-microcontrollers
Js on-microcontrollers
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment Strategy
 
The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...
The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...
The Proto-Burst Buffer: Experience with the flash-based file system on SDSC's...
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for Docker
 
Galaxy Big Data with MariaDB
Galaxy Big Data with MariaDBGalaxy Big Data with MariaDB
Galaxy Big Data with MariaDB
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
Monitoring at/with SUSE 2015
Monitoring at/with SUSE 2015Monitoring at/with SUSE 2015
Monitoring at/with SUSE 2015
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment Strategies
 

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

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

GemStone/S Update Highlights

  • 1. GemStone/S Update Norman R. Green Director, R & D, VMware Inc. ESUG Conference 2012 Gent, Belgium Thursday, August 30, 12
  • 2. Agenda  GemStone/S 32  GemStone/S 64 2.4.x  GemStone/S 64 3.0  GemStone/S 64 3.1 2 Thursday, August 30, 12
  • 4. GemStone/S 32 Bit  Yes, it’s still in use, and in production!  Last Major Release: 6.6.2 in Feb 2012  6.6.x Summary • Rudimentary multi-threaded garbage collection • Use native threads to perform I/O • Symbol Garbage Collection • Methods to locate and remove unreferenced symbols. • Non-canonical symbol detection • Methods to override commit-at-login behavior • lastLoginTime is committed at login time if UserProfile security is enabled. • Commit-at-login can now be disabled on a per-UserProfile basis. 4 Thursday, August 30, 12
  • 5. GemStone/S 32 Bit  6.6.x Summary • Backup and Restore to/from NFS • Full backups may now be made to an NFS file system. • Full backups may be restored from an NFS file system. • Tranlogs may be restored from an NFS file system. • POWER7 Certification (AIX only) • Add additional memory barriers required by POWER7 Processor 5 Thursday, August 30, 12
  • 6. GemStone/S 32 Bit  End of Life • EOL for GemStone/S 32 bit is planned for Oct-2012. • What does that mean exactly? • No more major releases. • No new product sales. • Support for existing customers will continue for 3 more years (2015). • Maintenance renewals beyond 2015 will not be accepted. 6 Thursday, August 30, 12
  • 7. GemStone/S 64 2.4.x  Current Releases • 2.4.4.7 • Critical bug fixes • A few minor new features • 2.4.5 • Critical and non-critical bug fixes • Several minor new features • 2.4.5.1 • Minor bug fixes • POWER7 certification  Further Details • Release Notes • http://community.gemstone.com/display/GSS64/Documentation 7 Thursday, August 30, 12
  • 9. GemStone/64 3.0  3.0 shipped on June 15, 2011.  3.0 was a major step forward in features and performance.  Adoption has been (predictably) slow.  Native Code Virtual Machine • Converts byte codes to native instructions • JIT design – conversion occurs at first method invocation. • 25% to 100% speed improvement 9 Thursday, August 30, 12
  • 10. GemStone/64 3.0  Foreign Function Interface (FFI) • Load shared libraries. • Call C functions without writing C code. • All coding can be done in Smalltalk • Martin presented FFI at STIC 2011 10 Thursday, August 30, 12
  • 11. GemStone/S 64 3.1.x  Current Releases • 3.1 - July 6, 2012 • 3.1.0.1 - August 28, 2012  Next Release • 3.1.1 - Q1, 2013 • Bug fixes 11 Thursday, August 30, 12
  • 12. New Features  Mid-Level Shared Caches • Caches that sit between the stone cache and a remote SPC • Benefits • Better caching. • 3 caches to look for pages rather than 2 • Reduced Network I/O on Stone Server • 500 remote caches can red-line a 10 GB/s network! 12 Thursday, August 30, 12
  • 13. Classic Remote SPC “Star” Configuration SPC SPC Stone SPC SPC SPC DB SPC SPC 13 Thursday, August 30, 12
  • 14. Mid-Level Cache Configuration Mid-Level Caches SPC SPC Stone SPC SPC SPC SPC SPC DB SPC SPC Leaf Caches 14 Thursday, August 30, 12
  • 15. New Features  Mid-Level Shared Caches • Creating a Mid-Level Cache 1.Start the netldi on the remote (leaf cache) host, mid-level host, and stone server 2.From the leaf-cache host, do a normal remote login 3.Run this code to create the mid-cache: System midLevelCacheConnect: midLevelHostName cacheSizeKB: aSize maxSessions: nSess 15 Thursday, August 30, 12
  • 16. New Features  Mid-Level Shared Caches • Connecting to an Existing Mid-Level Cache 1.From the leaf-cache host, do a normal remote login 2.Run this code to connect to the mid-cache: System midLevelCacheConnect: hostName 16 Thursday, August 30, 12
  • 17. New Features  External Password Validation • Passwords may now be stored and managed outside of GemStone. • 2 New Options • LDAP = Lightweight (ha!) Directory Access Protocol • UNIX password 17 Thursday, August 30, 12
  • 18. New Features  External Password Validation • User ID Aliases are Supported • GemStone user ID may or may not match external user ID. • Example: • GemStone UID: ‘normg’ • LDAP UID: ‘norm.green’ 18 Thursday, August 30, 12
  • 19. New Features  External Password Validation • LDAP – Uses OpenLDAP and OpenSSL libraries (shipped with GemStone). • UNIX – Uses getpwnam() / getspnam() UNIX calls. 19 Thursday, August 30, 12
  • 20. New Features  External Password Validation • Enabling LDAP authentication for a UserProfile: | u | u := AllUsers userWithId: ‘normg’. u enableLDAPAuthenticationWithAlias: ‘norm.green’ baseDN: ‘uid=%s,ou=LdapTesting,dc=gemstone,dc=com’ filterDN: nil . System commitTransaction . 20 Thursday, August 30, 12
  • 21. New Features  Multi-threaded Operations • The following operations are now multi-threaded: • markForCollection • objectAudit • findDisconnectedObjects • countInstances • listInstances • listReferences • GsObjectInventory • findObjectsLargerThan • Epoch Garbage Collection • Write Set Union Sweep (part of GC finalization) • Native (OS) threads are used. • Each thread is a unique GemStone session • Each thread takes a shared page cache slot. 21 Thursday, August 30, 12
  • 22. New Features  Multi-threaded Operations • Aggressiveness Is Controlled By 2 Parameters: • Number of threads • Percent CPU Active • Means total CPU load on the server across all cores. • Threads will start sleeping if the threshold is exceeded. • Both Parameters Can Be Adjusted On The Fly • SystemRepository setMultiThreadedScanThreads: numThreads maxCpu: aPercent 22 Thursday, August 30, 12
  • 23. New Features  Multi-threaded Operations • The default methods are NOT aggressive • If you want speed, use the fast* methods • markForCollection – uses 2 threads • fastMarkForCollection – uses up to 16 threads 23 Thursday, August 30, 12
  • 24. New Features  ProfMonitor Improvements • New implementation supports sample intervals down to 1 microsecond (1000 ns). • New Class Protocol • ProfMonitor monitorBlock: aBlock downTo: hits intervalNs: ns • ProfMonitor monitorBlock: aBlock intervalNs: ns 24 Thursday, August 30, 12
  • 25. New Features  Built-In Monticello Support • Monticello Support is now available “out of the box” • Protocols: • GSPackageLibrary loadMczFile: aFile fromRepositoryPath: aPath • GSPackageLibrary loadLastVersionOf: packageName fromRepositoryPath: aPath 25 Thursday, August 30, 12
  • 26. Smalltalk Changes  Array Literal Syntax • Run-time Constructor • 2.x: #[ 1, 2, 3 ] • 3.0: { 1 . 2 . 3 } • Compile-time Constructor (unchanged) • #( 1, 2, 3)  In 3.0, the old 2.x Array syntax can be enabled by running this code after login: • System gemConfigurationAt:#GemConvertArrayBuilder put: true  ByteArray Literal Syntax (new) • #[ 0 1 254 255 ] 26 Thursday, August 30, 12
  • 27. Smalltalk Changes  Exception Handling • In 3.0, ANSI exceptions are fully supported. • ANSI exceptions are class-based. • Old GemStone Exception class is deprecated, but still works in some cases. • GemStone error numbers are deprecated. 27 Thursday, August 30, 12
  • 28. Smalltalk Changes  New Special Selectors • The following selectors are inlined by the compiler and may not be overloaded: • ifNil: • ifNotNil: • ifNotNil:ifNil: • ifNil:ifNotNil: • _isSmallInteger • _isInteger • _isNumber • _isFloat • _isSymbol • _isExceptionClass • _isExecBlock • _isArray 28 Thursday, August 30, 12
  • 29. Smalltalk Changes  Segment is renamed GsObjectSecurityPolicy • We’ve wanted to change that for a long time. 29 Thursday, August 30, 12
  • 30. Smalltalk Changes  Dynamic Instances Variables • Add instance variables on the fly! • No instance migration required. • Replaces object tags • Methods: • Object dynamicInstVarAt: aSymbol • Object dynamicInstVarAt: aSymbol put: anObject • Object removeDynamicInstVar: aSymbol 30 Thursday, August 30, 12
  • 31. Smalltalk Changes  LargeInteger Changes • New class: LargeInteger • Replaces both LargePositiveInteger and LargeNegativeInteger • Existing Instances: • LargePositiveInteger -> ObsoleteLargePositiveInteger • LargeNegativeInteger -> ObsoleteLargeNegativeInteger • Instances are automatically converted when loaded into object memory. • To convert manually, send: • anObsoleteInt convert 31 Thursday, August 30, 12
  • 32. Smalltalk Changes  ScaledDecimal Changes • New format: • mantissa (SmallInteger or LargeInteger) • scale (SmallInteger) – power of 10 • New Literal Notation (ANSI compliant) • 1.23s2 • Mantissa: 123 • Scale: 2 32 Thursday, August 30, 12
  • 33. Smalltalk Changes  ScaledDecimal Changes • GS/64 v2.x ScaledDecimal is now FixedPoint in 3.0 • Instances are automatically converted • New Literal Syntax: • 1.23p2 • Numerator: 123 • Denominator: 100 • Scale: 2 33 Thursday, August 30, 12
  • 34. Smalltalk Changes  New Class/Metaclass Hierarchy 2.x 3.0 • Object • Object • Behavior • Behavior • Metaclass • ObsoleteMetaclass • Class • Module • Metaclass3 • Class • After upgrade, existing Metaclasses become ObsoleteMetaclass • Newly created classes will have a class of Metaclass3 • Applications which are sensitive to the superclass of Class or Metaclass will need to be adjusted. 34 Thursday, August 30, 12
  • 35. Performance Improvements  Aborting A Transaction • Round trips to stone reduced from 2 to 1 35 Thursday, August 30, 12
  • 36. Performance Improvements Stone  Old SMC Design Gem Gem Procedure • Get SMC queue lock • Add self to SMC queue Gem Spin Lock • Release SMC queue lock • Wait on semaphore for stone’s response. Gem Stone Procedure 1. Get SMC queue lock. 2. Remove all requests from SMC queue. 3. Release SMC queue lock 4. Process Requests SMC Queue 36 Thursday, August 30, 12
  • 37. Performance Improvements  New SMC Design – No Lock or Queue Gem Procedure Gem Gem • Set my bit (atomic OR) • Wait on semaphore for stone’s response. SMC Words Stone Procedure 1. For each 64-bit session word: Stone • Read and clear all bits (atomic AND). 2. Process Requests 37 Thursday, August 30, 12
  • 38. Performance Improvements  Session Priority • Elimination of SMC queue means sequence of sessions requesting service from stone is not preserved. • Session Priority added to compensate. • Session Priority Values: 0 – lowest (Reclaim and Admin GC gems) 1 – low 2 – medium (default) 3 – high 4 – highest • Session holding (or about to receive) the commit token always has highest priority. 38 Thursday, August 30, 12
  • 39. Performance Improvements  Session Priority Protocol • System setSessionPriority: anInt forSessionId: aSessionId • System priorityForSessionId: aSessionId 39 Thursday, August 30, 12
  • 40. Performance Improvements  Shared Cache Hash Table Read Locks  SPC Hash Table is a dictionary in shared memory • pageId -> cache offset (address) • 2.x Design • All hash table row accesses were serialized by spin lock. • Result: All lookups are serialized. • 3.0 Design • Each hash table row now has a reference count and a write lock. • Result: Lookups are done in parallel. 40 Thursday, August 30, 12
  • 41. Performance Improvements  Serialized Hash Table Lookups In 2.x Gem1 Spin Locks Collision Chain Gem2 14 9 2 6 Gem3 SPC Hash Table •3 Gems want to lookup page 6. If the lookup time is n, then: •Each gem must hold the lock to •Gem1: n perform the lookup. •Gem2: 2n •Gem3: 3n 41 Thursday, August 30, 12
  • 42. Performance Improvements  Parallelized Hash Table Lookups In 3.0 Gem1 Spin Locks Collision Chain Gem2 14 9 2 6 Gem3 SPC Hash Table •3 Gems want to lookup page 6. If the lookup time is n, then: •All 3 lookups can be done •Gem1: n simultaneously! •Gem2: n •Gem3: n 42 Thursday, August 30, 12
  • 43. Performance Improvements  New Tranlog AIO System • POSIX AIO calls (aio_write()) removed. • Too many OS bugs • Replaced With Our Own Code • Based on Native OS Threads • New Config Parameter: • STN_NUM_AIO_WRITE_THREADS - Number of native threads started to perform tranlog writes. 43 Thursday, August 30, 12
  • 44. Index Performance Improvement Index Performance Remove indexes Operation Audit indexes 3.0 2.4 Build Indexes 0 200 400 600 800 Seconds • Solaris 10 SPARC • 5 Equality Indexes • Tranlogs on solid state disks • Extents on raw partitions. • 2M element collection 44 Thursday, August 30, 12
  • 46. GemStone/S 64 3.1  Hot-standby database support • Automatically synchronize 1 or more hot standby databases across a LAN or WAN. • Real-time tranlog replay • Failover support • Automatic reconnect support  Support for UTF & Locale-specific collation using ICU • Interface to the International Components for Unicode (ICU) libraries. • ICU is a widely used open source set of libraries providing Unicode and globalization support for software applications.  Secure RPC logins using SSL • All RPC logins now use Secure Socket Layer (SSL) and Secure Remote Password (SRP) to establish the initial connection between the GCI client and gem and to authenticate passwords. • Passwords are now stored in GemStone in the encrypted form used by SRP. 46 Thursday, August 30, 12
  • 47. GemStone/S 64 3.1  Backup and restore reimplemented as multi-threaded • For multi-file backups, the protocol that created or restored backup files in a sequence of commands has been removed • All backup files are created or restored simultaneously • Multi-file backups are now created or restored by a single command rather than repeated calls to continue* methods • Written in parallel, using separate threads to write to each file after initial material is written to the first file.  Symbol garbage collection • If enabled, this occurs automatically in the background and requires no management.  Garbage Collection Enhancements • Ability to defer reclaim under low free space conditions • Further optimizations to MFC  The FFI has a number of changes and improvements  47 Thursday, August 30, 12
  • 48. GemStone/S 64 3.1  Nested Transactions • Create up to 16 sub-transactions which may be independently aborted or committed. • Protocol: • System beginNestedTransaction • Begin a new nested transaction • System abortNestedTransaction • Roll back changes made in this nested transaction only. • System commitNestedTransaction • Commits the modifications made in the current nested transaction to the next outer-level transaction. • Changes are NOT seen by other sessions until the outer-most transaction is committed. • Write-write conflicts with other session are not detected here. 48 Thursday, August 30, 12
  • 49. GemStone/S 64 3.1  IPv6 Support • 3 Address protocols now supported: • IPv4 • IPv6 • IPv4-mapped IPv6 • New Config File Options: • STN_LISTENING_ADDRESSES – A list of 0 to 10 addresses upon which stone should listen for login connections . • For More Info: • RFC 2373 • RFC 4291 • RFC 4038 49 Thursday, August 30, 12
  • 50. GemStone/S 64 3.2  Target Date • 3.2 - Q3, 2013  New Features • Multi-threaded page reclaim sessions. • Additional multi-threaded garbage collection options. • Additional Unicode character features • Thread-safe GCI (Customer C Interface) • Optimize GemStone/S to run on ESXi. • Add protection for DoS attacks. • Load Balancer – balance loads across multiple nodes. 50 Thursday, August 30, 12
  • 51. Questions ? VMware Inc. Norman R. Green 15220 NW Greenbrier Pkwy. Director, R&D Suite 150 normg@vmware.com Beaverton, Oregon, 97006 (503) 533-3710 direct www.vmware.com (503) 804-2041 mobile 51 Thursday, August 30, 12
  • 52. Ruby that Scales Thursday, August 30, 12
  • 53. GemStone/S HIstory 1982 32-bit 64-bit . . . 1986 1.0 . . 1.5 . 1990 2.0 . . 3.0 . . 4.0 . . 5.0 . . 5.1 . 2000 . . 6.0 . 6.1 . . 1.0 . 2.0 . 6.2 2.2 . 6.3 2.3 . 6.5 2.4 2010 . 6.6 3.0 . 3.1 First GemStone customer, May 1986 53 Confidential Thursday, August 30, 12
  • 54. The future is here, it’s just not evenly distributed yet. – William Gibson Thursday, August 30, 12