This release includes specific optimizations for Compute-Grid deployment scenarios and is expected to reduce tuning and setup time that is usually required for such an environment. M3
Improved support for large objects Read more...
We have optimized our networking protocol to deal with large objects that are written and read from the space.
The user is able to determine the maximum buffer size to be allocated in order to stream an object over the network in one chunk.
This decouples the network layer from variance with user specific object size.
Now, if a given object should happen to go beyond this limit, it is broken down into small chunks, and passed in a stream to the receiving end.
This enables much more deterministic memory allocation on the networking layer.
In addition, in the event that the JVM GC does not clear the network buffers in a timely fashion, the system does not consume more then what is set to allocate.
Large scale deployments and concurrent discovery with large clusters and large numbers of clients Read more...
Lease renew and lookup mechanism within the LUS are now using different locks.
Previous to GigaSpaces 6.5, running a large number of concurrent clients trying to discover the space using the Jini protocol had a direct effect on the discovery time.
In 6.5, optimizations have been made to significantly reduce dependency between the size of the cluster, the load on the cluster and the discovery time. By doing so, the system is able to support large cluster deployments with dynamic discovery enabled out of the box. In 6.5 G.A, it is expected that the system will easily handle large number of concurrent clients and large size of spaces deployment with the out of the box configuration.
Some of the changes include:
Lease renew and lookup mechanism within the LUS are now using different locks.
The client does not interact with the lookup in constant manner (no heartbeat going on between client lookup cache and lookup service) - i.e. less overheard on the LUS.
The client side Space URL parsing mechanism was optimized.
The Fault detection handler has been enhanced to support large amount of services using a thread pool. No dedicated thread per service mechanism.
The GSM has been optimized to support large amount of services when interacting with the LUS.
The GUI has been enhanced to support large amount of spaces without loading the LUS
Networking resource allocation optimization with blocking operations Read more...
Prior to 6.5, each blocking space operation (take or read) consumed a thread connection on the server side. This meant that with large number of concurrent clients, server-side connection resources were heavily consumed and could easily reach server unavailability – client starvation. As a result, all connections were utilized to enable blocking read/take operations, and there was no resource available to handle write/update operations as well as other monitoring operations.
In GigaSpaces 6.5, allocation of the server communication thread per blocking operation is avoided. Thus, the server can now handle a large number of concurrent blocking operations without reaching starvation in the communication layer (blocking operations are now managed at a higher level in the implementation stack). This means that the out of the box configuration can now handle a large number of concurrent blocking operations easily without tuning.
Memory Manager turned on by default Read more...
Prior to 6.5, the memory manager wasn't turned on by default due to performance overhead.
In GigaSpaces 6.5, monitoring has been added to the network level to detect memory shortage before reaching JVM OutOfMemory. In scenarios where the JVM memory reaches a certain threshold, an exception is thrown, blocking the ability to add more data to the space, but still keeping the space available to find the source of this utilization (without bringing the system down).
Simpler to Develop
Dynamic Language Support
The ability to run dynamic scripts on a given Processing Unit without the need to know this code in advance Read more...
Features in M3:
Based on OpenSpaces, allows you to simply execute dynamic queries (the equivalent of stored procedures) using dynamic languages as remote jobs.
Aggregated queries can be executed in MapReduce fashion, meaning in parallel on all nodes.
The scripts are completely dynamic and are loaded to the server on-demand without any need to bring the server down or change configuration.
Out of the box support for Groovy, JRuby and JavaScript
New OpenSpaces scripting configurers allow you to create scripting for remoting proxies from plain Java code. M9[Documentation]
Groovy is now included in the GigaSpaces installation and Service Grid common classpath. M8[Documentation]
ESB Integration with Mule 2.0
GigaSpaces as a Mule endpointM7 Read more...
Sending and receiving messages from Mule to the space
Embedding Mule in a Processing Unit – Mule applications enjoy the Processing Unit value
[Documentation]
Seamless Scalability through Services Virtualization Framework
Improvements and new features in [OpenSpaces Remoting] Read more...
New OpenSpaces remoting configurers add the ability to configure async and sync remoting proxies. M9 Documentation (see the new Code tabs in the relevant code segments): [Async Remoting] | [Sync Remoting]
New Routing annotation declares which parameters are used to compute the routing of a certain remoting method. M3 Documentation: [Async Remoting] | [Sync Remoting]
New AsyncProxy and SyncProxy annotations for injecting remoting proxies. M3 Documentation: [AsyncProxy] | [SyncProxy]
Adding meta parameters on remote invocation is now supported. For example, adding security context. M3 Documentation: [Async Remoting] | [Sync Remoting]
It's now possible to inject "aspects" that can wrap the invocation of a remote method on the client side, as well as wrap the execution of an invocation on the server side. M3 Documentation: [Async Remoting] | [Sync Remoting]
Remoting ServiceExporter (when used for sync remoting as a filter) now allows you to inject services that depend on GigaSpace/Space without using @GigaSpaceLateContext (or other solutions). M3Documentation
A More Complete SBA Solution for .NET Developers
New .NET Processing Unit, based on the [OpenSpaces Processing Unit]! M9[Documentation]
New space administration functionality using the .NET API. M7 Read more...
Getting cluster member names and connecting directly to a specific cluster member.
Retrieving space state and space type information.
Importing data from another space (SpaceCopy).
[Documentation]
New External Data Source support. Read more...
Allows you to persist any .NET object to an external data source. M3
Default implementation provided is NHibernate, which easily persists objects to a database (although you can implement any other data source of your choice). M3
Grid and puInstance deployment are supported using the pu.xml file. M7
Configuring the External Data Source without using the persistency.config file. M8
New support for .NET session facilities in ASP.NET applications – allows many web servers to share session details using the space as the session state store provider; thus providing more scalability and better performance. Documentation
Introducing C++ for SBA Development
New native C++ support: M3 Read more...
Complete space API support
JAVA-C++ interoperability
Managed C++ services via SLA-driven container
Simple development workflow using gs.xml and gsxml2cpp
[Documentation]
Simpler to Operate
Easier to Configure and Deploy
It is now possible to deploy SBA applications, EDG applications, and single spaces directly from the GigaSpaces Management Center Launch menu. M7[Documentation] See screenshot...
The number of configuration files has been reduced – main and suggested configuration path is OpenSpaces. M7 Read more...
All space schema configuration files have been removed from \config\schemas and are available in the same path under JSpaces.jar!/config/schemas. Users should use the overrides pattern on top of the default-space-schema.xml. \config contains properties files for each override.
\config\services\advanced-space.config has been moved into JSpaces.jar.
GigaSpaces Root>\config\tools files (UI, CLI, focalserver config files) have been moved into relevant JAR files (gs-admin.jar, gs-adminui.jar, focalserver.jar).
All space container schemas have been removed, except for default-container-schema.xml which has been moved into JSpaces.jar.
Out of the box components are continuously refined and improved. Read more...
OpenSpaces deploy class now supports locators. M7[Documentation]
It's now possible to deploy a remote Processing Unit (represented by a JAR) using the Deployment Wizard. M7
In OpenSpaces, it is now possible to explicitly set lookup-locators when defining a space. M3
New validation tools provide clear messages for configuration errors. M3 Read more...
XSD validation is now performed on the cluster schema structure (XSL files) and the user's input/changes are invalidated. Documentation
Service reloading – dynamic redeploy of services during runtime is now supported without bringing down the Processing Unit when working with an embedded space. M3[Documentation]
Overriding cluster configuration is now supported using custom properties injection, XPath properties, and OpenSpaces. M3 Read more...
This change allows you to configure the cluster in a less error-prone an more usable manner, without having to deal with duplication or maintenance of files. Documentation
Deployment Wizard displays existing Processing Units in a drop down. M3Documentation See screenshot...
Ease of Operation: Maintenance and Troubleshooting
Monitoring and troubleshooting improvements – easily launching JConsole; aggregated cluster operations and data; Space Network view improvements; and more. Read more...
It's now possible to export statistics history graphs in the GigaSpaces Management Center, and to define the displayed history time. M11
Data exposed and aggregated for cluster – Operations cluster node allows you to view all classes, data, statistics, transactions, and connections for the entire cluster under a single node. M7[Documentation]
It's now possible to launch a JConsole from the GMC Space Network View (per each space), and from each container and cluster node. M3[Documentation]
Space Network view improvements.
New Used Memory (MB) column is highlighted in green if the space memory usage is lower than the minimum watermark percentage, or red if the space memory usage is higher that the maximum watermark percentage. M7[Documentation]
Classes, Connections, Transaction and Cluster views now display the number of objects/instances in the view. M3
CLI space cluster-members command shows a full list of cluster members (including members that aren't up and running). M3Documentation
More customization to the GigaSpaces Management Center – launching GSM/GSM from the GigaSpaces Management Center; adding/removing columns from Space Network view; and more. M7 Read more...
New refresh feature in the GigaSpaces Management Center cleans all caches/listeners and reloads all data. M11
It is now possible to launch a local GSM/GSC using the GigaSpaces Management Center Deployments tab. [Documentation]
It is now possible to add or remove columns from the GigaSpaces Management Center Space Network view. Documentation
Routing field name is now displayed in the Classes view:
All benchmark operations in a clustered space are now performed on all cluster members. [Documentation]
Includes Failover and Recovery Impovements
GigaSpaces recovery process is now handled by several threads. As a result, when failover takes place with large amounts of data, recovery is shorter, and client throughput isn't damaged. M11
Transaction improvements have been made to prevent unreliable replication when more than one operation was performed under a transaction and the primary space was killed. M11 Read more...
All operations under a transaction are now replicated in an atomic way in a single sync packet.
All transaction operations are now stored in the database as a single sync packet, so recovery from a redo-log retains transaction consistency.
It is now possible to reduce failure detection time in order to optimize handling of failure scenarios. M11 Read more...
This type of configuration is advanced, and is very specific to your scenario, data loading, and other factors; and therefore should be performed carefully. If you are interested in making such changes, please refer to the GigaSpaces Support Team.
For more details on failure detection, refer to the [Failure Detection] section.
Includes Performance Improvements and is More Scalable
Internal data structures, client proxy, transaction handling and destructive operations concurrency were modified to become as close as possible to lock-free. M3
Various tests had been conducted on Azul based machines that are now included as an integral part of our testing environment. M3
com.j_spaces.core.MemoryManagerinterface has been enhanced to include full information about the space (host name and container name) when throwing a MemoryShortageException. M3