What's New in GigaSpaces Version 17.1.0

Release Date: February-2025

This page describes product changes, along with new features and functionality for GigaSpaces release 17.1.0.

Aggregator and Tier Improvements

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, 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. 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

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

The following improvements to JDBCClosed 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. 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, 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 KubernetesClosed 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 SpaceDeckClosed 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 as a data source. For more information, see Kafka as a Data Source.

Grafana Alerts

You can now enable GrafanaClosed 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.