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
This applies for XAP GigaSpaces eXtreme Application Platform.
Provides a powerful solution for data processing, launching, and running digital services and 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
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 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,
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 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.
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 An open-source container orchestration system for automating software deployment, scaling, and management of containerized applications. 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 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 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.