GemStone/S 6.7 is a new version of the GemStone/S object server. This release includes feature enhancements and fixes for a number of bugs.
These release notes provide changes between the previous version of GemStone/S, version 6.6.5, and version 6.7. If you are upgrading from a version prior to 6.6.5, review the release notes for each intermediate release to see the full set of changes.
Customers on 32-bit GemStone/S are encouraged to consider migrating to GemStone/S 64 Bit, for additional scalability and reliability as well as many important new and enhanced features.
For details about installing GemStone/S 6.7 or upgrading from earlier versions of GemStone/S, see the GemStone/S Installation Guide for version 6.7.
GemStone/S version 6.7 is supported on the following platforms:
For more information and detailed requirements for each supported platforms, please refer to the GemStone/S v6.7 Installation Guide for that platform.
Note that the build platform for Window has been updated, since XP has become End-of-Life with Microsoft. You must use Windows 2008 or Windows 7 or later to run GemStone/S server or GBS clients.
Also note that GemStone/S is now built and tested on 64-bit Linux. The distribution filename has changed to reflect this.
The following versions of GBS are supported with GemStone/S version 6.7, with the following client Smalltalk and platforms versions.
Released GemConnect shared libraries will not load into GemStone/S version 6.7 on Solaris and AIX; shared libraries previously supplied for 6.6.4 will load. On these platforms, if you have not obtained new shared GemConnect libraries, please contact GemTalk Technical Support for recompiled libraries. (#43362, #43363)
Since v6.6.5, there have been many changes in how VSD is managed. VSD is now distributed as a separate product with separate version numbers and separate documentation, as well as included with GemStone/S distributions.
The GemStone/S v6.7 distribution includes VSD version 5.1. This version of VSD has updated TCL and other libraries, and has been completely rebuilt for Windows.
The VSD distributions is also now included with the GemStone/S distribution on Windows.
For Documentation, and Release Notes that include recent changes, see https://gemtalksystems.com/products/vsd.
The supported platforms for 6.7 have been updated.
In particular, Windows has been updated, as Windows XP has reached End of Life with Microsoft. Now, you must run GemStone/S server 6.7 or clients on Windows 2008 R2 or Windows 7 or later. Compilers used for User Actions and GCI applications have also been updated.
Also, the Linux build and test platform is now 64-bit Linux. This is reflected in the distribution filename.
GemStone includes a distribution of the tz or zoneinfo Time Zone database, under $GEMSTONE/pub/timezone. The version distributed has been updated to version 2015d.
For the latest versions, see http://www.iana.org/time-zones.
Note that Linux and Solaris systems normally have this Time Zone Database installed as part of the operating system, and many methods in GemStone TimeZone classes will use the OS version by default on these platforms.
To precisely identify individual builds of a particular version, the build number is now included in $GEMSTONE/version.txt, and a line is added to process log headers. This is primarily important for distinguishing Beta, Early Access, and Release versions.
Starting the Stone on Windows can be done as a service (stone create/stone start), or by startstone, which uses the stone tmpstart utility.
In Windows Vista and later, security changes require starting the stone as a service to be done using "Run as Administrator"; this is unchanged from previous versions.
Starting the stone not as a service, using startstone, can be using "Run as Administrator", or by a user with the SeCreateGlobal privilege.
An additional option for starting the stone not as service has been added, using the new environment variable GS_MAKE_EVENTS_LOCAL.
GS_MAKE_EVENTS_LOCAL turns off the internal addition of the "Globals:\ prefix to Windows events. When the Stone is started with this environment variable set to 1, all logins to the stone must also have this environment variable set. This allows non-administrator users to start the Stone.
On most platforms, you can now access OS-level system statistics from GemStone Smalltalk. This is the same information collected by statmonitor.
System class >> fetchSystemStatNames
Return an array of Strings which describe the statistics returned by the #fetchSystemStats method. The length of the result array is host technology dependent, and can be determined by System >> fetchSystemStatCount. Returns nil if the host system does not support system statistics.
System class >> fetchSystemStats
Return an array of Numbers with the statistics specified in the #fetchSystemStatNames method. The length of the result array is host technology dependent. While most elements in the result array will be SmallIntegers, the result may also contain other types of Numbers such as SmallDoubles, Floats, LargePositiveIntegers, etc. Returns nil if the host system does not support system statistics.
System class >> fetchSystemStatCount
Returns the number of host system statistics available for the host system, or zero if host statistics are not supported for this system.
GemStone operations such as restoring from transaction log could fail if the file was on a ZFS file system; ZFS was not recognized as a local filesystem. (#45868)
On Windows, if the cache cannot be started, the SPC monitor fails immediately, but the startup failure is not reported to the user until a 90 second timeout has elapsed. (#45870)
As part of the platform updates with version 6.7, the platform-level system statistics that statmonitor collects have been updated on Solaris, Linux, and Windows.
AckedBytes
The total number of bytes acknowledged by received TCP ack segments.
AcksForUnsentData
The total number of acknowledgment TCP segments received for unsent data.
AcksReceived
The total number of acknowledgment TCP segments received.
AcksSent
The total number of acknowledgment TCP segments sent.
ConnectionFailures
The total number of times TCP connections failed to be established. At the lowest level this means that they have made a direct transition to the CLOSED state from the SYN-SENT state or the SYN-RCVD state, or a direct transition to the LISTEN state from the SYN-RCVD state.
ConnectionsActive
The total number of times a client socket has explicitly connected to a listening server socket. At the lowest level this means that a socket has made a direct transition to the SYN-SENT state from the CLOSED state.
ConnectionsEstablished
Current number of established TCP socket connections on the machine. At the lowest leve this means that a socket's current state is either ESTABLISHED or CLOSE-WAIT.
ConnectionsPassive
The total number of times a listening server socket has accepted a connection from a client. At the lowest level this means that a socket has made a direct transition to the SYN-RCVD state from the LISTEN state.
ConnectionsReset
The total number of times established TCP connections have been closed. At the lowest level this means a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.
ControlSegmentsSent
The total number of control (syn, fin, rst) TCP segments sent.
DelayedAcksSent
The total number of delayed acknowledgment TCP segments sent.
DuplicateAcks
The total number of duplicate acknowledgment TCP segments received.
HalfOpenDrops
The total number of half open connections dropped. Non-zero values usually indicate a SYN flood attack.
HalfOpenQueueFull
The total number of connection refused due to the help open listen queue (q0) being full.
KeepAliveDrops
The connections dropped due to the failure of a keep alive probe.
KeepAliveProbes
The total number of times a probe needed to be sent out due to a keep alive timer expiring.
KeepAliveTimeouts
The total number of keep alive timeouts.
ListenQueueFull
The total number of connections refused due to a listen queue being full.
ReceivedDuplicateBytes
The total number of TCP data bytes received in duplicate segments. Incoming data may be duplicated when an acknowledgment is lost or delayed and the other end retransmits a segment that actually arrived correctly the first time. This situation can be a sign that the remote systems are retransmitting too quickly and needs tuning or a patch.
ReceivedInorderBytes
The total number of TCP data bytes received in the correct order.
ReceivedOutOfOrderBytes
The total number of TCP data bytes received in the wrong order.
If this value is high compared to ReceivedInorderBytes then it could be a sign of routing problems.
ReceivedPartialDuplicateBytes
The total number of TCP data bytes received in partially duplicated segments. Incoming data may be duplicated when an acknowledgment is lost or delayed and the other end retransmits a segment that actually arrived correctly the first time. This situation can be a sign that the remote systems are retransmitting too quickly and needs tuning or a patch.
RetransmittedTcpBytes
The total number of bytes resent in TCP data segments. If this value is more than 30% of SentTcpBytes, you may have some bad network hardware, a congested route that is dropping packets, or an operating system that needs a patch.
RetransmitTimeoutDrops
The total number of connections dropped due to a retransmit timeout.
RetransmitTimeouts
The total number of TCP retransmit timeouts.
Segments
The total number of TCP segments that have been sent or received using the TCP protocol.
SegmentsReceived
The total number of TCP segments that have been received, including those received in error. This count includes segments received on currently established connections.
SegmentsRetransmitted
The total number of retransmitted TCP segments, that is, segments transmitted containing one or more previously transmitted bytes. If this value is more than 30% of SegmentsSent, you may have some bad network hardware, a congested route that is dropping packets, or an operating system that needs a patch.
SegmentsSent
The total number of TCP segments that are sent, including those on current connections, but excluding those containing only retransmitted bytes.
SentTcpBytes
The total number of bytes sent in TCP data segments.
IVolCSW
The number of times the process was forced to do a context switch.
MaxImageSize
The maximum (high water) size of the process's image in kilobytes.
MaxRSS
The high water mark of the processes resident set size.
PageTablesMemoryKB
The amount of memory dedicated to low-level page tables.
RSSData
On Linux, the data resident set size. On other platforms, the combined data and stack resident set size.
RSSLib
The library resident set size. Always zero in Linux 2.6 and later.
RSSStack
The stack resident set size.
RSSText
The text resident set size.
ThreadCount
Number of threads currently active in this process. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Every running process has at least one thread.
VolCSW
The number of voluntary context switches done by the process.
ActiveAnonMemoryKB
The amount of non-file backed memory that has been used more recently.
ActiveFileMemoryKB
The amount of memory used for buffering files that has been used recently.
ActiveMemoryKB
The amount of memory that has been used more recently and usually not reclaimed unless absolutely necessary.
AnonHugePagesKB
The amount of non-file back memory backed by huge memory pages.
AnonymousMemoryKB
The amount of non-file backed memory mapped into userspace page tables.
BounceMemoryKB
The amount of memory used for bounce buffers for block devices.
CachedMemoryKB
The amount of memory used as cache memory.
CachedSwapKB
The amount of swap used as cache memory.
CommitLimitKB
The total amount of memory currently available to be allocated on the system.
CommittedAsKB
The amount of memory presently allocated on the system, including memory allocated by processes that has not yet been used. Linux statistic name: Committed_AS
FileBufferSizeKB
The amount of memory used in file buffers.
HardwareCorrupted
A boolean indicating if the system has detected a memory failure.
HugePagesFreeKB
The amount of memory in the huge pages pool that has not yet been allocated.
HugePageSizeKB
The size of a huge memory page in kilobytes.
HugePagesRsvdKB
The amount of memory in the huge pages pool for which a commitment to allocate from the pool has been made, but no allocation has yet been made.
HugePagesSurpKB
The amount of memory in the huge pages pool above the value in /proc/sys/vm/nr_hugepages.
HugePagesTotalKB
The total amount of memory in the huge pages pool.
InactiveAnonMemoryKB
The amount of non-file backed memory that has not been used recently.
InactiveFileMemoryKB
The amount of memory used for buffering files that has not been used recently.
InactiveMemoryKB
The amount of memory which has been less recently used. It is more eligible to be reclaimed for other purposes.
KernelDataMemoryKB
The amount of memory used by the kernel for caching data structures.
KernelDataReclaimableMemoryKB
The amount of memory used by the kernel for caching data structures that may be reclaimed.
KernelDataUnreclaimableMemoryKB
The amount of memory used by the kernel for caching data structures that cannot be reclaimed.
KernelStackMemoryKB
The amount of memory used by the kernel stack.
LockedMemoryKB
The amont of memory that has been locked using mlock(2) or similar calls. Locked memory cannot be swapped.
MappedMemoryKB
The amount of memory which has been mapped to files.
NfsUnstableMemoryKB
The amount of memory used by NFS pages sent to the server, but not yet committed to stable storage.
PageTablesMemoryKB
The amount of memory dedicated to low-level page tables.
SharedMemoryKB
The amount of memory enabled for sharing between multiple processes via shmat(2) and mmap(2) with the MAP_SHARED attribute set.
UnevictableMemoryKB
The amount of memory that cannot be swapped.
WritebackMemoryKB
The amount of memory which is actively being written back to disk.
WritebackTmpMemoryKB
Amount of memory used by FUSE (Filesystem in Userspace) filesystems.
DataIoKb
Combined number of kilobytes read and written by the process.
DataIoOps
Combined number of read and write I/O operations by the process.
OtherIoKb
Number of kilobytes in I/O operations that don't involve data, such as control operations.
OtherIoOps
Number of I/O operations that don't involve data, such as control operations.
ReadIoKb
Number of kilobytes read by the process.
ReadIoOps
Number of read operations by the process.
WorkingSetPrivateKb
Current size in kilobytes of the set of memory pages touched recently by the threads in the process which cannot be shared by other processes.
The data types for statmonitor data have changed in this release; some statistics that were previously collected under NtMemory are now under NtSystem. Some older data types are no longer collected, and new types are included.
SystemUpTime (NtSystem)
Number of seconds since the host system was started.
Usage (NtPaging File)
The amount of the Page File instance in use in percent. See also PageFileKb.
UsagePeak (NtPaging File)
The peak usage of the Page File instance in percent. See also PageFilePeakKb.
PageFileBytes is renamed to PageFileKb
PageFileBytesPeak is renamed to PageFilePeakKb
PoolNonpagedBytes is renamed to PoolNonPagedKb
PoolPagedBytes is renamed to PoolPagedKb
PrivateBytes is renamed to PrivateKb
VirtualBytes is renamed to VirtualKb
VirtualBytesPeak is renamed to VirtualPeakKb
WorkingSet is renamed to WorkingSetKb
WorkingSetPeak is renamed to WorkingSetPeakKb
TotalPoolNonpagedBytes is renamed to TotalPoolNonpagedKBytes
TotalPoolPagedBytes is renamed to TotalPoolPagedKbytes
SystemCacheResidentBytes is renamed to SystemCacheResidentKBytes
SystemCodeResidentBytes is renamed to SystemCodeResidentKBytes
SystemCodeTotalBytes is renamed to SystemCodeTotalKBytes
SystemDriverResidentBytes is renamed to SystemDriverResidentKBytes
SystemDriverTotalBytes is renamed to SystemDriverTotalKBytes
AvailableBytes is renamed to AvailableKBytes
CacheBytes is renamed to CacheKBytes
CacheBytesPeak is renamed to CacheKBytesPeak
CommitLimit is renamed to CommitLimitKBytes
CommittedBytes is renamed to CommittedKBytes
CommittedBytesInUse is renamed to CommittedKBytesInUse
PoolPagedResidentBytes is renamed to PoolPagedResidentKBytes