GemStone/S 64 Bit Release Notes

  • 1. GemStone/S 64 Bit 3.4 Release Notes

    • Overview

    • Upgrade

      • New keyfiles required

    • Supported Platforms

      • Platforms for Version 3.4

      • GemBuilder for Smalltalk (GBS) Versions

      • VSD Version

      • Other Products

      • Documentation Changes

    • 1.1 Library, version and distribution changes

      • Updated library versions

      • Library distribution change

      • Updated ICU shared library loading

      • Updated ZoneInfo TimeZone database

      • Updated SSL example certificates

        • Configuration file

        • Scripts added

    • 1.2 Keyfiles

      • Web/Community Edition license distribution on non-GLASS platforms

      • Option to update the keyfile without stopping the stone

    • 1.3 Optimizations

      • Primitives optimized

      • TLS/SSL now used over remote connection from GCI client to NetLDI

      • More efficient transaction logging

      • Multithreaded mid-cache page servers

      • Commit Record disposal without disk I/O

      • Using multiple sizes of large memory pages on Linux

    • 1.4 Highlights of new features

      • Single sign-on using Kerberos

      • Secure backups

      • Cache warming the working set of data pages

      • Backup, restore, copydbf, and statmonitor now support LZ4

      • GsBitmaps

      • New Reduced-Conflict Collection classes

      • Indexing changes

    • 1.5 Removed and deprecated classes and methods

      • Classes no longer in Globals

      • Replaced methods

        • _sharedCounter:

      • Methods deprecated in v3.4

        • BinaryFloat Exceptions

        • Finding object reference paths

        • Methods replaced by GsBitmap versions

        • Backup methods that do not specify type of compression

        • Other newly deprecated methods

      • Removed Deprecated Methods

        • Removed deprecated or obsolete methods

        • Constraints methods

      • Removed Ruby Methods

      • Removed Private Methods

  • 2. Changes in Administration

    • 2.1 UserProfile and groups changes

      • Enable and disable

      • enableGemStoneAuthentication requires password argument

      • Bypass GsCurrentSession initialize in topaz

      • UserIds outside the ASCII range

      • UserProfile empty passwords disallowed

      • UserProfile Instance variable slot for spare1 now reused

      • UserProfileGroup replaces string-based groups

        • Creating and Deleting Groups using UserProfileGroup

        • Connecting UserProfiles and Groups

        • Membership

        • Group audit

    • 2.2 Single sign-on with Kerberos

      • Kerberos

        • Realm

        • User Principals

        • GemStone Service Principals

        • Keytab

      • KerberosPrincipal and AllKerberosPrincipals

      • UserProfile new methods

      • Setting up Kerberos Authentication in GemStone

      • Using Groups to authenticate with Kerberos

      • Remote login on Windows

      • GemBuilder for Smalltalk

      • Login log includes Kerberos principal

      • descriptionOfSession:

      • Using Kerberos for NetLDI authentication

    • 2.3 Secure Backups

      • Example keys and passphrases

      • Added Methods

        • Making the Backup

        • Restoring the Backup

      • Configuration option

      • copydbf information about secure backups

      • Examples of Secure Backup

        • Create a signed, unencrypted backup

        • copydbf of a signed, unencrypted backup

        • Restore an unencrypted secure backup

        • Create an encrypted backup

        • Copydbf of an encrypted backup

        • Restore an encrypted backup

      • Script to support verifying digital signature

        • Example

    • 2.4 Changes related to Repository Scan operations

      • Concurrent Repository Scan Operations

      • Object Profiling of objects in temporary object memory

      • Finding Reference Paths

        • Deprecated methods

        • Multiple Reference Path Scans

        • Other added Classes

      • Backup and restore support lz4 compression

        • fullBackupCompressedTo: deprecated

        • Restore of backups and transaction logs

        • Buffer size

    • 2.5 Bitmap based operations with new class GsBitmap

      • GsBitmap

      • Bitmap Files

        • File format

      • Garbage Collection consequences

      • GsBitmap and Hidden Sets

      • Methods returning GsBitmaps

        • Changes to existing methods

        • Deprecated Methods

    • 2.6 Other changes affecting administrative operations

      • fileSizeReport formatting change

      • Added method Repository >> extentsReport

      • Temporary Symbol creation allowed during restore from logs

      • Logging to GCI server rather than client

      • The login log includes the Kerberos principal

      • descriptionOfSession: results includes Kerberos principal

      • Manually send LostOT to a session

    • 2.7 Cache Warming Changes

      • Running cache warming automatically on startstone

      • Cache warming based on previously loaded data pages

      • startstone can wait for cache warming to complete

      • waitstone can wait for cache warming to complete

    • 2.8 Configuration Parameter changes

      • Parsing Change

      • Changes in parameters

        • The following option has been removed:

        • The following option has been renamed:

        • The following options have been superceded:

        • STN_MAX_AIO_REQUESTS default/minimum changed

        • STN_NUM_LOCAL_AIO_SERVERS default changed

        • STN_TRAN_LOG_SIZES min value changed

      • Added configuration Parameters

        • GEM_CACHE_WARMER_ARGS

        • GEM_CACHE_WARMER_MID_CACHE_ARGS

        • GEM_COMPRESS_TRANLOG_RECORDS

        • GEM_KERBEROS_KEYTAB_FILE

        • GEM_KEYRING_DIRS

        • SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_SIZE_MB

        • STN_ALLOW_NO_SESSION_INIT

        • STN_CACHE_WARMER_ARGS

        • STN_CACHE_WARMER_WAIT_MODE

        • STN_COMMIT_RECORD_BM_CACHING

        • STN_GEM_PGSVR_CONNECT_TIMEOUT

        • STN_GEM_PRIVATE_PGSVR_ENABLED

        • STN_GROUP_COMMITS

        • STN_TRANQ_TO_RUNQ_THRESHOLD

    • 2.9 Utility and script changes

      • gemnetdebug change

      • copydbf changes

        • copydbf supports lz4 compression

        • Added secure backup options

      • startnetldi

        • Process authentication using Kerberos

        • Version mismatch handling

        • NetLDI connection table

      • startcachewarmer

        • Cache warming a working set

      • waitstone

        • Headers simplified

        • Wait for cache warming to complete

      • stoplogreceiver

      • Legal to use netldid and stoned directly

    • 2.10 Topaz Changes

      • Printing change

      • Option added for linked topaz that suppresses gemnetid in .topazini

      • set cachename changes

      • -u sets cachename

      • Custom arguments following POSIX end of options marker

      • Added LIST options

        • Added option linenumbers

        • Added options primitives, cprimitives

        • Added argument for selectors and cselectors

      • Added SUBHIERARCHY command

      • Added RUNBLOCK command

      • SESSIONINIT to allow login when session initialization fails

    • 2.11 Cache Statistics Changes

      • statmonitor changes

        • New option to specify the hours for restart

        • statmonitor supports lz4 compression

        • Deprecated options removed

      • The following statistics have been removed:

      • Changes in existing statistics

      • The following statistics have been added:

      • AIX System stats

        • On AIX, added System Pages statistics

      • The following are additional AIX_System stats:

  • 3. GemStone Smalltalk changes and new features

    • 3.1 Changes in Class and Method handling

      • Changes to class variables requiring class versioning

      • Added Behavior method

      • Changes in class history for String and Symbol classes

      • changeClassTo: handling of differently sized objects

      • GsNMethod printOn:

      • Pragmas

        • Pragma class added

      • Added ClassOrganizer subhierarchy report

      • Support for multiple execution environments

        • Behavior/Module

        • ClassOrganizer

      • PrivateObject

    • 3.2 Changes in Collections

      • species, speciesForCollect, speciesForSelect

      • Added RC Collection classes

        • RcArray

        • RcLowMaintenanceIdentityBag

        • RcIdentitySet

        • GsPipe

        • RcPipe

      • Improved Concurrency for RC replay

      • Return type for remove: and add:

      • Set arithmetic operators extended to Set and Bag

      • Added SequencableCollection method

      • Added Append classes for performance

        • AppendStream

        • AppendableString

      • Legacy stream added methods

      • Added String/UTF8 optimization and encoding

        • encodeAsUTF8IntoString

        • javaScriptEncode

      • Symbol parsing

      • keywords

        • Symbol keywords changes

        • CharacterCollection isKeywords more precise

    • 3.3 Indexing changes

      • BtreePlus indexes

        • Optimized comparisons

        • lastElementClass

      • Performance

      • GsIndexOptions changes

        • not operator

        • Auto-unset of optimizedComparison

        • Initial default

        • Setting the default

      • Indexes on new Reduced-conflict classes

      • Queries on Array and other non-UnorderedCollections

      • Improved reliability and bug fixes

    • 3.4 Socket Enhancements and new features

      • GsSocket adds support for SO_REUSEPORT

      • GsSecureSocket

        • GsSignalingSocket

        • Errors now signalled, rather than methods returning false

        • SSLv3

        • Additional Peer Authentication Options

        • Client certificate verification automatically enabled when CA certificate set

      • SecureSocketError

      • SocketError asString

      • HTTPS example

      • Connect with timeout

    • 3.5 Numerics changes

      • Random default change

      • FloatingPoint signalling Exceptions

        • Added methods

      • Invariance for non-special numeric instances

      • Obsolete methods

    • 3.6 GsEventLog

      • Adding events

      • Querying and reporting

      • Deleting events

      • Example

    • 3.7 Changes in Errors and Error Handling

      • Message class added

      • #rtErrInvalidArgClass now maps to ArgumentTypeError

      • "statement has no effect" compiler errors

      • Unicode at:put: argument errors

      • New errors

      • Changes in errors

      • Removed errors

      • Debugger Changes

        • Debugger frame printing of activations in blocks is simplified

        • GsProcess added methods

        • GsProcess stack report line length

    • 3.8 ProfMonitor changes

      • Default interval changed

      • ProfMonitor reporting change

        • Report Generation added methods

      • ProfMonitor save and report

      • spyOn: removed

    • 3.9 Other Additions and Changes

      • Public objectForOop:

      • DateAndTime with ScaledDecimal seconds

      • performOnServer: and GsHostProcess optimization

      • GsBitmap added

      • ExecBlock

        • ExecBlock >> on:do: accepts zero argument do: block

        • Added cull:* methods

      • TestSuite debug

      • Cypress subsystem preview added

  • 4. Changes in the GCI Interfaces

    • 4.1 Changes in standard GCI API

      • Added functions

        • GciUtf8To8bit

      • Function changes

      • Removed functions

    • 4.2 FFI-related changes

      • Create a CCallout from a function pointer

      • CByteArray pointerAt:resultClass: allows CPointer

      • Copying CByteArray

    • 4.3 Bug Fixes

      • GciRtlLoad with null path failed on Windows and for 32-bit GCI applications

      • GciStoreTravDoTravRefs error if same oop in both GCed set and noLongerReplicated set

    • 4.4 Changes in Thread-safe GCI

      • Status of User Actions and GsFile operations

      • New Thread-Safe feature to Fork execution

        • GciTsForkContinueWith

        • GciTsForkExecute

        • GciTsForkLogin

        • GciTsForkPerform

        • GciTsForkStoreTravDoTravRefs

      • Other Added Thread-Safe functions

        • GciTsCallInProgress

        • GciTsFetchTraversal

    • 4.5 Updated Compile and Link Information

      • Linux Compile and Link Information

        • Complier version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • Solaris on x86 Compile and Link Information

        • Complier version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • AIX Compile and Link Information

        • Complier version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • DARWIN Compile and Link Information

        • Complier version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • Windows Compile and Link Information

        • Complier/Debugger version

        • Compiling a GCI application

        • Linking a GCI application

  • 5. Bug Fixes

    • Idle Gems not terminated by STN_GEM_TIMEOUT

    • Idle gems in transactionless mode could be terminated by sigAbort

    • AIO page server errors on fsync may cause Stone to hang

    • Out of tranlog disk space during checkpoint may cause Stone to hang and restart to fail

    • Tranlog record containing only one selectiveAbort skipped by restore

    • Extra ShrPcMon processes on heavily loaded system

    • Race condition when committing many symbols from multiple gems

    • Changing CanonStringBucket’s objectSecurityPolicy results in SymbolGem death

    • Suspended checkpoints resumed after an Epoch GC

    • Symbol Garbage Collection did not collect Double and Quad ByteSymbols

    • waitstone may have returned error while stone in startup

    • Cache warming error when termination due to cache full

    • Keyfile CPU limit not correctly applied for remote gems on large hosts

    • Keyfile CPU limit does not work correctly with more than 32 CPUs

    • Upgrade could error attempting to remove documentation category

    • pstack on linux required kernel.yama.ptrace_scope=0

    • Remote Cache Issues

      • Remote cache connection behavior

      • Mid-level change used random port to connect to page server on stone’s node

      • System stopZombieSession slow on overloaded remote node

      • Multithreaded pageserver not shut down after remote cache death

      • Log file name for remote cache page server used customization

    • Risk of SEGV when accessing hidden classes

    • GsExternalSession>>lastResult may be incorrect with multiple sessions

    • startnetldi -D did not tolerate GEMSTONE_NRS_ALL with #dir:%D

    • allSelectors result included duplicates for inherited methods

    • Error on missing UserGlobals dictionary

    • listReferences failed to find object in large IdentityBags/Sets

    • findReferences found references from a large NSC that did not contain the object

    • Indexing methods failed to reset ProgressCount

    • ExecBlock >> selfValue

    • Cannot change objectSecurityPolicy of a DbTransient object

    • transactionConflicts commitResult key was used as details key

    • GsSecureSocket could prompt for passphrase

    • Configuration file and parameter Issues

      • Last line of configuration file without linefeed was ignored

      • Dynamically set AdminGem config parameters could be lost after reclaim

      • Read-only stone configuration files are not handled correctly

    • String, Character and UTF issues

      • String hash incorrect in Unicode mode with terminal nulls

      • Unicode string at:put: handling of invalid index argument

      • Character codePoints could have been truncated by withAll:

      • Utf8 decodeToString could produce DoubleByteString in String range

      • findPatternNoCase:startingAt: error with Unicode string argument

      • Multi-character binary selectors involving a hyphen character required quoting

    • contentsAndTypesOfDirectory:onClient: incorrect in unicode comparison mode

    • searchlogs script did not respect sessionid, required client in IPv6

    • GsSocket read: 0 returned nil

    • GsExternalSession resolveResult:toLevel: broken

    • Reclaim may be blocked if STN_FREE_SPACE_THRESHOLD lower than #reclaimMinFreeSpaceMb

    • Hotstandby issues with manually gzipped tranlogs

    • Float passivate-activate resulted in SmallDouble

    • FileStream errored on read-only files

    • FileStream peekTwice failed

Copyright 2017 GemTalk Systems