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

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 collectionClosed 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

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) 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 IntegrationClosed 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.

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 storageClosed 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 SpaceClosed 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 JDBCClosed 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:

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 GSAClosed 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 LDAPClosed 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 KafkaClosed 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 GrafanaClosed 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.