What's New in GigaSpaces Version 17.0.0
Release Date: June-2024
This page describes product changes, along with new features and functionality for GigaSpaces release 17.0.0.
Upgrade to Java 17 and Spring 6
This applies for XAP
GigaSpaces eXtreme Application Platform.
Provides a powerful solution for data processing, launching, and running digital services, XAP Skyline
A highly customizable developer platform that allows building scalable HA with high throughput and ultra-low latency Java applications running on Kubernetes clusters and Smart DIH
Smart DIH allows enterprises to develop and deploy digital services in an agile manner, without disturbing core business applications. This is achieved by creating an event-driven, highly performing, efficient and available replica of the data from multiple systems and applications,
Java Upgrade
GigaSpaces has been upgraded to Java 17 as the upgrade Spring 6 (see below) requires Java 17 or higher. In addition, this upgrade leverages updated features and improvements in Java, providing enhanced performance, security, and functionality. Java 17 includes more advanced garbage collection
Garbage collection (GC) is a form of automatic memory management. The garbage collector attempts to reclain memory that was allocated by the program, but is not longer referenced; such memory is called garbage. (GC) mechanisms. Advanced garbage collectors open more possibilities for managing our memory footprint. For additional information about GigaSpaces Java usage, refer to JVM Settings and Tuning.
Why not Java 21?
Java 21 was released in September 2023 and has not yet been widely adopted in the community. If GigaSpaces enforce Java 21 on the server side (XAP), there might be a bigger impact on our install base that we can anticipate. Our recommendation to existing customers would be to consider upgrading their client applications directly to Java 21 to support forward compatibility.
Spring Framework Upgrade
We have transitioned from Spring 5.3 to Spring 6. Upgrading to Spring 6 ensures continued compliance with security best practices and access to the latest patches and fixes.
Rationale:
Security Enhancements: The shift to Spring 6 addresses known security issues inherent in previous versions, aligning with our commitment to maintaining a secure and robust system.
End-of-Support Considerations: This move is driven by the upcoming end-of-support for Spring 5.3 in August 2024, ensuring we continue to receive necessary security updates and benefit from the latest features in the Spring ecosystem. .
Impact:
Developers:
-
Client Applications: This impacts all client applications which use Java SDK. Any applications which use .NET will be required to upgrade to Java 17.
-
Codebase and dependencies need to be updated to ensure compatibility with Java 17 and Spring 6.
-
Review and adjust custom implementations and third-party integrations to align with the updated frameworks.
Operations:
-
Enhanced security and performance metrics due to the new Java and Spring versions.
-
Monitoring and adjustments may be required during the transition period to ensure system stability.
We encourage all users to thoroughly test their applications in the updated environment to identify and resolve any issues prior to deploying the changes in production.
For additional details, including upgrading from previous version, please contact our Customer Support team.
FAQ
Q: Will backward compatibility be broken when moving to GigaSpaces version 17.0?
A: Existing XAP customers who upgrade to GigaSpaces version 17.0 will also need to upgrade their client applications to be compiled with Java 17 or higher
Q: If you are using an older GigaSpaces version, will GigaSpaces still support you?
A: Older versions will be supported as always, within policy or per an extended support contract. That said, any vulnerabilities resulting from 3rd party versions that are end-of-support (for example, Spring 5.3) will only be addressed by an upgrade to a supported version of the 3rd party. As result, this might force an upgrade to GigaSpaces version 17.0 unless the customer accepts the risks that will exist due to those vulnerabilities.
Security
This applies for XAP Skyline and Smart DIH
Digital Integration Hub.
An application architecture that decouples digital applications from the systems of record, and aggregates operational data into a low-latency data fabric. as it is only available on Kubernetes
An open-source container orchestration system for automating software deployment, scaling, and management of containerized applications..
Service Account Privilege Management
GigaSpaces already secures user accounts by, for example, using IDP. This is now being expanded to include the securing of service accounts.
-
A Service Account is an account that is typically used by an application or a compute workload. It is an application that wishes to access GigaSpaces resources. This could either be a user of applications or components that wish to access GigaSpaces APIs.
-
A service account differs to a user account in that it is associated with software that runs in our XAP Skyline or Smart DIH environments.
For additional information, refer to our Service Account Privilege Management page.
Data Integration (DI) Updates
This applies for Smart DIH.
Multiversion Concurrency Control (MVCC
Multiversion Concurrency Control.
This is a database optimization technique that creates duplicate copies of records so that data can be safely read and updated at the same time.)
Multiversion concurrency control (MVCC) is method that allows a user to have a concurrent and persistent view of distributed transactions across partitions. keep multiple versions of modified entries to ensure that a user has a persistent view of the data that is consistent with the SoR.
For additional information refer to our MVCC page.
Transformations
GigaSpaces are introducing Transformations as part of our Data Integration
The Data Integration (DI) layer is a vital part of the Digital Integration Hub (DIH) platform. It is responsible for a wide range of data integration tasks such as ingesting data in batches or streaming data changes. This is performed in real-time from various sources and systems of record (SOR. The data then resides in the In-Memory Data Grid (IMDG), or Space, of the GigaSpaces Smart DIH platform. module. Configuring Transformations enables data to be converted into a simple format that can then be used for the easy creation of services.
-
A data pipeline is a method of transporting data from one place to another. Acting as a conduit for data, these pipelines will enable efficient processing, transformation, and delivery of data to the desired location.
-
Through data cleansing and Transformation processes, data pipelines enhance data quality and ensure accuracy for analysis and decision-making.
For additional information, refer to our Transformations page.
Batch Load (Feeders)
GigaSpaces now has the ability for Smart DIH to define batch loads via a standard pipeline interface.
-
Full batch loads can now be performed as a "pull" functionality.
-
Can be managed by SpaceDeck
GigaSpaces intuitive, streamlined user interface to set up, manage and control their environment. Using SpaceDeck, users can define the tools to bring legacy System of Record (SoR) databases into the in-memory data grid that is the core of the GigaSpaces system. or via REST API
REpresentational State Transfer. Application Programming Interface
An API, or application programming interface, is a set of rules that define how applications or devices can connect to and communicate with each other. A REST API is an API that conforms to the design principles of the REST, or representational state transfer architectural style.
For additional information, refer to our Batch Load page.
Release Date: February-2025
This page describes product changes, along with new features and functionality for GigaSpaces release 17.0.0.
Aggregator and Tier Improvements
This applies for XAP and XAP Skyline
Aggregator Memory Consumption Improvements
Prior to this version, aggregation kept UIDs of all scanned objects during an operation, in case the same object ID is deleted and recreated. When the relevant table is very large, such as in tiered storage
Automatically assigns data to different categories of storage types based on considerations of cost, performance, availability, and recovery., this could lead to high memory consumption. To solve this, parameters were added to control UID storage for tiered storage and in-memory spaces. For more information, see Aggregators.
Aggregator Local Space Injection
Aggregation usually iterates over a group of entries and aggregates values from related entries. There are some cases in which there is a need to access another object in the local Space
Where GigaSpaces data is stored. It is the logical cache that holds data objects in memory and might also hold them in layered in tiering. Data is hosted from multiple SoRs, consolidated as a unified data model.. Local Space injection was added for this purpose. For more information, see Aggregators.
Aggregator Index Usage
In some scenarios, using indexes for aggregations can avoid a full table scan and reduce execution time significantly. However, relying on the index can be risky in cases with a high load of transactions. Therefore, changes were made to optimize index usage for different cases: For more information, see Aggregators.
New Custom Aggregator Methods
The following custom Aggregator methods were added:
-
isIndexUsed() - check if aggregation index optimization can be used.
-
skipProcessedUidStore() - when iterating one by one, determine whether or not to store UIDs in order to avoid duplication.
-
handleIntermediateResultOfMemoryStorage() - determine how to handle partition results for memory space if one by one aggregation is skipped.
-
handleIntermediateResultOfDbStorage() - determine how to handle partition results for tiered space if one by one aggregation is skipped.
-
getSQLQuery() - set the query to be used for tiered storage if one by one aggregation is skipped.
For more information, see Custom Aggregators.
Counters for Count Aggregation and API
Counters can be used when asking for a table count (count(*)) with no conditions, or Ignoring transactions or there are no active transactions & lease expirations. For more information, see Aggregators.
Push Down Aggregation to Tiered Storage (SQLite)
When tiered storage is used and the query should be performed in the underlying database, queries can now be pushed down. For more information, see Aggregators.
Tiered Storage Initial Load
In order to improve recovery time from tiered storage space, counters initialization was moved to async mode, allowing the space to be ready before filling up statistics.
Read-only Quiesce Mode
This applies for XAP and XAP Skyline
Read-only quiesce mode
This is a maintenance mode that differs from the regular quiesce mode by allowing read-only operations so the space is available to read but not for write/update/take operations. For more information, see Quiesce Mode.
Durable Tasks
This applies for XAP and XAP Skyline
Durable Tasks
A Durable Task is a Task that can be canceled and recovered. It extends distributed tasks.
Use cases :
-
A task that does a job that takes long time and needs the ability to be cancelled.
-
Business logic - adds the ability to change the business logic of the space without redeploying the space.
Durable Tasks can be created using the Durable Task API. For more information, see Task Execution.
Query Protective Mode
This applies for XAP, XAP Skyline and Smart DIH
Query Protection Mode
The new query protection mode provides protection against executing queries that perform a full scan if the table size is above a limit. By default, protective mode is disabled. If enabled, an exception will be thrown when a query as” select * from the table” is performed and the table size is larger than the specified limit.
If protective mode is disabled, a warning message will be logged if a query meets the protective mode conditions. It is recommended to enable this property in QA and stage environments.
For more information, see Space Index.
JDBC V3 Improvements
This applies for XAP, XAP Skyline and Smart DIH
The following improvements to JDBC
Java DataBase Connectivity.
This is an application programming interface (API) for the Java programming language, which defines how a client may access a database. V3 have been made:
-
Support for queries starting with “with”.
-
Support for the NVL function, as in Oracle.
-
Dynamic filters hints - a different algorithm to execute a query, to be used when a join condition significantly reduces results. For more information, see Hints.
-
Colocated joining based on routing
The mechanism that is in charge of routing the objects into and out of the corresponding partitions. The routing is based on a designated attribute inside the objects that are written to the Space, called the Routing Index. -
IN query improvement-previously, the IN condition was translated into OR conditions, which is not efficient when used for many items,. Now, if there are more than 10 items, the condition will be propagated to the gigaspace api.
Note: It's important to have equal index for the related property to avoid a full table scan.
Secured ZooKeeper
You can now set up secured ZooKeeper. For more information, see GigaSpaces Manager.
New Service Level Script
A new service-overrides script was added to allow changes per service without restarting the GSA
Grid Service Agent.
This is a process manager that can spawn and manage Service Grid processes (Operating System level processes) such as The Grid Service Manager, The Grid Service Container, and The Lookup Service. Typically, the GSA is started with the hosting machine's startup. Using the agent, you can bootstrap the entire cluster very easily, and start and stop additional GSCs, GSMs and lookup services at will.. For more information, see Scripts.
Embedded Replication Mode Change Listener
Relevant for primary backup replication, to identify situations when replication moves to async mode. For more information, see Replication.
LDAP Changes
This applies for XAP
Due to changes in Spring LDAP
Lightweight Directory Access Protocol.
An open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network., the class attribute in LDACP configuration must be updated to com.gigaspaces.security.ldap.XAPLdapAuthoritiesPopulator.
For example:
<bean id=“populator” class=“com.gigaspaces.security.ldap.XAPLdapAuthoritiesPopulator”> <constructor-arg ref=“contextSource” /> <!-- group based DN - we will be searching for groups in “ou=groups,dc=example,dc=com” --> <constructor-arg value=“ou=groups” /> <!-- the name of the attribute that will contain role information (which effectively translates to a user’s granted authorities. Default is “cn” --> <property name=“groupRoleAttribute” value=“ou” /> … </bean>
XAP.NET Improvements
This applies for XAP
The following XAP.NET improvements have been made:
-
Support for Broadcast tables
-
Ability to get replication statistics from an embedded space
Kubernetes Improvements
The following Kubernetes improvements have been made:
-
Readiness probe for xap manager to allow safe rolling upgrade of managers.
-
Parallel mode deployment of space with multi partitions when HA is false to allow faster deployment and faster rolling upgrade
-
Added jvm utilities as jmap to the image.
-
Utility to backup and restore tiered storage space data.
-
Added OOB alert system with installation of Kapacitor and config map for default alert settings.
-
Auto scaler operator that can add/remove more clusters (including copy data from original cluster if needed), according to defined rules.
Data Integration (DI) Updates
This applies for Smart DIH
DIHCTL Command Line Application
DIHCTL Application
The new DIHCTL command line application is intended to perform different actions on the working Smart DIH installation (environment). It can be run manually, or as part of a CI/CD pipeline. For more information, see DIHCTL.
Import & Export Capabilities
Import and Export
You now have the ability to:
-
Import/export pipeline definitions
-
Import/export service configurations
-
Import/export GraphQL relationship definitions
These actions can be performed through SpaceDeck or using the DIHCTL application. Fore more information, see SpaceDeck and DIHCTL.
GraphQL and SpaceQL
GraphQL
Smart DIH now includes embedded GraphQL API Gateway functionality. The GraphQL API Gateway service allows to query XAP spaces using GraphQL syntax.
The service detects all Spaces and corresponding types that exist in each Space. It then auto-generates GraphQL functions that can be used to easily query the Space and retrieve faster results in comparison to using the equivalent SQL queries.
You can query the GraphQL service through SpaceQL, or using the DIHCTL application.
For more information, see GraphQL and SpaceQL.
Kafka as a Data Source
You can now add Confluent Kafka
Apache Kafka is a distributed event store and stream-processing platform. Apache Kafka is a distributed publish-subscribe messaging system.
A message is any kind of information that is sent from a producer (application that sends the messages) to a consumer (application that receives the messages).
Producers write their messages or data to Kafka topics. These topics are divided into partitions that function like logs.
Each message is written to a partition and has a unique offset, or identifier. Consumers can specify a particular offset point where they can begin to read messages. as a data source. For more information, see Kafka as a Data Source.
Grafana Alerts
You can now enable Grafana
Grafana is a multi-platform open source analytics and interactive visualization web application. It provides charts, graphs, and alerts for the web when connected to supported data sources. alerts. See Using Grafana for Monitoring and Analytics.
Manage User Access Tokens using SpaceDeck
You can now manage user access token using SpaceDeck. For more information, see SpaceDeck – Administration.
In-Memory Data Grid - achieve unparalleled speed, persistence, and accuracy.