Release Notes

TigerGraph Server 3.6.0 was released on June 17th, 2022. The latest maintenance release of TigerGraph 3.6 is available on TigerGraph Cloud.

New Features

Below is a list of new features and improvements:

Elasticity

  • Added support for provisioning Elastic Read-only (ER) clusters (Preview)[1] with different partitions than the primary cluster.

    • Note: This feature is currently in the preview stage only available for enterprise TigerGraph Cloud customers. If you are a paid TigerGraph Cloud enterprise customer and want to set up an ER cluster for your environment, please open a support ticket.

Manageability

  • Introduced TigerGraph Kubernetes Operator (Preview) [1]. TigerGraph Kubernetes Operator allows you to automate operations such as the creation, status checking and deletion of TigerGraph clusters.

Security

  • Sensitive data such as user credentials in log and configuration files are now encrypted.

Ecosystem integration

Performance

  • Improved data loading speed and reliability.

  • Improved the speed and reliability of database catalog operations such as vertex and edge definition, schema changes, and query installation.

  • Optimized query compilation during schema changes to greatly enhance schema change performance.

Observability

  • Improved GSQL log debuggability by ensuring all metadata and data update operations share a common prefix.

  • Improved engine log debuggability by including the ID of the original request from RESTPP.

  • Added more detail to several error messages.

Data API service

Query Language Enhancement

  • Reducer function add() now accumulates values when loading to a MAP attribute.

GraphStudio and Admin Portal Enhancement

Fixed issues

Fixed in 3.6.2

TigerGraph Server 3.6.2 was released on August 16th, 2022.

  • Improved query installation error handling during GBAR restore.

  • Fixed an issue that could cause timeout errors when running queries in rare cases.

  • Fixed an issue that caused cross-region replication to stop syncing when the primary cluster drops a loading job.

  • Fixed an issue where installation for a query that inserts a vertex/edge with a DATETIME attribute would fail.

  • Fixed an issue where S3 loaders created in GraphStudio do not self-delete after loading sample data.

  • Fixed an issue where /requesttoken generates invalid tokens if the RESTPP service is down on a node in a cluster.

  • Fixed an issue where GBAR restore would cause GPE config file permissions to change in rare cases.

  • Fixed an issue where the built-in queries such as searchvertex could cause out-of-memory issues.

  • Fixed an issue in GraphStudio where adding a data mapping with a filter could delete all previously established mappings.

  • Increased restrictiveness of file permissions for snapshot files.

  • Fixed an issue where requests to GSQL endpoints would return an error if the request also included setting cookies.

Fixed in 3.6.1

TigerGraph Server 3.6.1 was released on July 7th, 2022.

  • Fixed an issue where high-frequency schema changes can cause GPE dysfunction in rare cases.

  • Fixed an issue in GraphStudio that caused the data mapping arrow between the file icon and an edge type to disappear in some cases.

  • Fixed an issue where certain internal API endpoints did not properly authenticate incoming requests.

Fixed in 3.6.0

  • Fixed a bug that caused issues reading the attributes of a vertex after cluster expansion if the vertex type had deleted attributes.

  • Fixed an issue that caused Graph Processing Engine (GPE) dysfunction in rare cases during concurrent read and write operations on the same vertex and its connected edges during data loading.

  • Fixed an issue that delayed the display of loading status on Load Data page in GraphStudio.

  • Fixed an issue where v.getAttr() function could cause GPE dysfunction if it is provided the wrong type.

  • Fixed an issue where if a Kafka topic only has one message, it cannot be consumed.

  • Fixed an issue with Graph Storage Engine (GSE) leader election that caused GSE dysfunction.

  • Fixed an issue that prevented GraphStudio from accepting a SET<VERTEX> type parameter if the size of the parameter is greater than 10.

  • Fixed an issue that could cause a query written in GSQL syntax V2 that uses a POST-ACCUM clause without an ACCUM clause to produce wrong results in rare cases.

  • Fixed an issue that could cause a query written in GSQL syntax v2 that uses multiple POST-ACCUM clauses that refer to the source vertex alias to produce wrong results in rare cases.

  • Fixed an issue that resulted in SHOW LOADING STATUS ALL command showing inaccurate loading job status when an instance has multiple graphs.

  • Fixed an issue that caused KAFKACONN out-of-memory (OOM) issue when loading large datasets through the data streaming connector.

  • Fixed an issue that affected the high availability (HA) of the application server on Elastic Kubernetes Service (EKS).

  • Removed inaccurate loading metrics from the Load Data page in GraphStudio.

  • When a user tries to edit an inferred vertex from returned edges in GraphStudio’s visualized query results, they will now see a warning to modify their queries to return the vertices to be able to edit the vertices.

Deprecation warnings

  • The -OPTIMIZE flag for INSTALL QUERY is deprecated and is planned to be dropped in the 3.7 release.

Known Issues

In version Description Status

3.6.0

If a graph on an instance contains a loading job that uses gsql_split_by_space() token function, exporting the graph might lead to GPE dysfunction.

Unresolved

3.6.0

Accumulating a DATETIME object returned from the to_datetime() function to a BagAccum inside an ArrayAccum causes GPE dysfunction.

Unresolved

3.6.0

Calling vertex.edgeAttribute() function with STRING COMPRESS data type causes GPE crash

Unresolved

3.6.0

Interpreting a query that uses bitwise accumulators causes GPE dysfunction.

Unresolved

3.6.0

When vertices are automatically created during edge loading, the primary key of the vertices created are not written to vertex attributes.

Unresolved

3.6.0

Running a query with edgeAttribute() or neighborAttribute() function when accumulator containing universal vertex types is referenced in the same statement may cause GPE dysfunction.

Unresolved

3.6.0

Calling the setAttr() function in an interpreted query causes GPE dysfunction.

Unresolved

3.6.0

High-frequency schema changes can cause GPE dysfunction in rare cases.

Resolved in 3.6.1.

For a list of known issues for GraphStudio and Admin Portal, please see Known issues for GraphStudio and Known issues for Admin Portal.

Compatibility with TigerGraph 3.4

  • A single POST-ACCUM clause can no longer reference more than one vertex alias in Syntax V1.

  • GET /requesttoken endpoint is dropped. Please use POST /requesttoken to request authentication tokens instead.

    • Using request body to store credentials is more secure than using query string. If you have a create a token request that puts the credentials in the query string, all you need to do is use the POST endpoint and move your credentials to the request body.

  • GET /gsqlserver/gsql/queryinfo endpoint on port 14240 now returns the query input parameters in the same order as they are in the query instead of an unordered list.

  • Deploying TigerGraph in Kubernetes now requires more service account permissions than previous versions. For details, see Prerequisites section in Quickstart with GKE, Quickstart with AKS, and Quickstart with EKS.

Compatibility with TigerGraph 3.1

The following changes were made to the built-in roles in TigerGraph’s Role-based Access Control

  • The built-in role queryreader can no longer run queries that include updates to the database.

    • To emulate the old queryreader role, create a role with all queryreader privileges, and also grant the WRITE_DATA privilege to the new role.

  • The built-in role admin can no longer create users

    • To emulate the old admin role, create a global role with all admin privileges, and also grant the WRITE_USER privilege to the new role.

  • To learn more about role management and the privileges of built-in roles, see:

Compatibility with TigerGraph 2

Major revisions (e.g., from TigerGraph 2 to TigerGraph 3) are the opportunity to deliver significant improvements. While we make every effort to maintain backward compatibility, in selected cases APIs have changed or deprecated features have been dropped, in order to advance the overall product.

Data migration: A tool is available to migrate the data in TigerGraph 2.6 to TigerGraph 3.0. Please contact TigerGraph Support for assistance.

Query and API compatibility:

V3.0 Removal of Previously Deprecated Features

TigerGraph 2.x contained some features which were labeled as deprecated. These features are no longer necessary because they have been superseded already by improved approaches for using the TigerGraph platform.

The new approaches were developed because they use more consistent grammar, are more extensible, or offer higher performance. Therefore, TigerGraph 3.0 and above has streamlined the product by removing support for some of these deprecated features, listed below:

Data Types

Deprecated type Alternate approach

REAL

Use FLOAT or DOUBLE

INT_SET

Use SET<INT>

INT_LIST

Use LIST<INT>

STRING_SET_COMPRESS

Use SET<STRING COMPRESS>

STRING_LIST_CONPRESS

Use LIST<STRING COMPRESS>

UINT_SET

Use SET<INT>

UINT32_UINT32_KV_LIST

Use MAP<UINT, UINT>

INT32_INT32_KV_LIST

Use MAP<INT, INT>

UINT32_UDT_KV_LIST

Use MAP<UINT, UDT_type>, where UDT_type is a user-defined tuple type

INT32_UDT_KV_LIST

Use MAP<INT, UDT_type>, where UDT_type is a user-defined tuple type

Syntax for Control Flow Statements

Deprecated statement Alternate statement

FOREACH …​ DO …​ DONE

FOREACH…​ DO…​ END

FOREACH (condition) {
    body
}
FOREACH condition DO
    body
END
IF (condition) {
    body1
}
else {
    body2
}
IF condition THEN
    body1
ELSE
    body2
END
WHILE (condition) {
    body
}
WHILE condition DO
    body
END

Vertex set variable declaration

If a vertex type is specified, the vertex type must be within parentheses.

Deprecated Statement Alternate Statement

MySet Person = …​

MySet (Person) = …​

Query, Job, and Token Management

Deprecated operation Header 2

CREATE JOB

Job types need to be specified:

  • CREATE LOADING JOB

  • CREATE SCHEMA_CHANGE JOB

  • CREATE GLOBAL SCHEMA_CHANGE JOB

RUN JOB

Job types need to be specified:

  • RUN LOADING JOB

  • RUN SCHEMA_CHANGE JOB

  • RUN GLOBAL SCHEMA_CHANGE JOB

CREATE / SHOW/ REFRESH TOKEN

To create a token, use the REST endpoint GET /requesttoken.

offline2online

The offline loading job mode was discontinued in v2.0. Do not write loading jobs using this syntax.

Output

Deprecated Syntax Alternate Syntax

JSON API v1

v2 has been the default JSON format since TigerGraph 1.1. No alternate JSON version will be available.

PRINT …​ TO_CSV [filepath]

Define a file object, then PRINT …​ TO_CSV [file_object]

Built-in Queries

Deprecated statement Alternate statement

SELECT count() FROM …​

  • SELECT approx_count(*) FROM …​

    • May not include all the latest data updates

  • SELECT count(*) FROM …​

    • exact, but slower than approx_count(*)


1. Features in the preview stage should not be used for production purposes. General Availability (GA) versions of the feature will be available in a later release.