Release Notes
TigerGraph Server 3.4.0 was released on Dec 21st, 2021.
Security patch for Log4j CVE-2021-45105
TigerGraph 3.4.0 includes a security patch for Log4j CVE-2021-45105. See Fixed issues for details.
New - TigerGraph GraphQL Service
Along with TigerGraph Server 3.4.0, we are proudly introducing TigerGraph GraphQL Service.
TigerGraph GraphQL Service allows you to make GraphQL requests to access graph data in TigerGraph. To learn more, please see TigerGraph GraphQL Service.
New Features
Below is a list of new features and improvements in TigerGraph 3.4.0:
Manageability
-
Added the
-leader
option togsql
to display the current cluster leader. -
Added Oracle Linux 8 (OEL 8) to the list of certified operating systems.
-
Improved query installation process. Failure in installing a subset of the queries in a single
INSTALL QUERY
command will no longer cause all installations to abort.
Observability
-
Added endpoint
POST /current-service-status
to report TigerGraph service status through HTTP requests.
Usability - GSQL
-
Added support for local container variables in the GSQL Query Language.
-
Relaxed GSQL local variable declaration rules. Local base type variables can now be declared at a lower level to override the value of a variable with the same name.
-
Added support for declaring a
HeapAccum
without specifying size. -
Removed the requirement of
LIMIT
clauses when usingORDER BY
in SQL-likeSELECT
statements. -
Removed the limitations on the following functions in Distributed Query Mode:
-
edgeAttribute()
-
neighborAttribute()
-
neighbor()
-
size()
-
-
Added removal methods to
ListAccum
andMapAccum
:-
ListAccum
-
.remove()
-
.removeOne()
-
.removeAll()
-
-
MapAccum
-
.removeKey()
-
-
Usability - GraphStudio and Admin Portal
-
Added support for Pattern View in Visual Query Builder (VQB) that allows outputting a specified subset of a visual pattern’s match results.
-
Added support for using a vertex or edge’s primary ID in expressions if primary ID is marked as an attribute.
-
Added support for formatting number attributes.
-
Added support for search in GSQL query list.
-
Added support for search in visual pattern list.
-
Added a removal tool tip and a checkbox to select all privileges in the user-defined roles interface
-
Removed the deprecated
STRING COMPRESS
data type from schema design options
Fixed issues
Fixed in 3.4.0
-
Upgraded log4j to 2.17.0 to resolve potential security vulnerability
-
Reduced system minimum free memory requirement for transactions
-
Increased the timeout limit for downloading, updating, and deleting the graph catalog
-
Fixed a bug that allowed non-privileged users being able to access GSQL output files through the Admin Portal
-
Increased timeout limit for file operations
-
Fixed an issue that led to GSE crash when a subquery uses file variables
-
Fixed issue where SmartContainer collects hardware-info more than once
-
Fixed an issue that led to cluster shrinking failure when instance as over 1000 queries
-
Increased timeout limit for checking Kafka broker ID
-
Fixed an issue that caused certain queries to use more memory than expected
-
Fixed an issue that in rare cases caused RESTPP memory leak
-
Fixed an issue that occasionally caused GPE to hang when interpreter raises an exception
-
Disabled proxy buffering for /gsqlserver endpoints
-
Fixed an issue that led to backup and restore failures on Kubernetes deployments
-
Fixed an issue with query-request memory tracking that in rare cases led to GPE segmentation fault
-
Fixed an issue that caused unexpected early query return when
getAttr()
has an invalid attribute -
Fixed an issue that caused local base type variable to lose type inference after being overridden
-
Fixed an issue that caused
PER
clause to return unexpected results -
Fixed an issue that produced unexpected output when a
WHERE
clause uses parentheses -
Fixed an issue that caused
v.outdegree()
to return unexpected results -
Fixed an issue that cause errors in accumulator conjunctive functions calls
-
Fixed an issue in GraphStudio that led to browser crash when dealing with huge map data columns
-
Fixed an issue where services don’t automatically restart after updating license
-
Fixed an issue with GSQL syntax checker that threw an unexpected error when a SQL-like query uses built-in functions with multiple arguments
Known Issues
Cluster expansion
If you have ever deleted a vertex or edge attribute before conducting an expansion, cluster expansion may lead to issues reading attributes of that vertex or edge type.
For details, see Cluster Expansion.
Applications
-
GraphStudio
-
The No-Code Data Migration feature is in Alpha release. Your feedback would be appreciated.
-
The No-Code Visual Query Builder is in Beta release. Your feedback would be appreciated.
-
Admin Portal
GSQL
-
Multiple (Conjunctive) Path Patterns:
-
There are no known functional problems, but the performance has not been optimized. Your feedback would be appreciated.
-
-
DML type check error in V2 Syntax:
-
GSQL will report a wrong type check error for Query block with multiple POST-ACCUM clauses and Delete/Update attribute operation.
-
-
Turn on GSQL HA manually when upgrading from 3.0.x
-
Users who are upgrading from 3.0.X need to manually start GSQL HA service. Please reach out to support for help with the process documented in: https://tigergraph.freshdesk.com/a/solutions/articles/5000865072
-
-
Stale data visible after Deletes using index
-
Queries that use secondary index may still see the vertices being deleted until after the snapshots are fully rebuilt.
-
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 allqueryreader
privileges, and also grant theWRITE_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 alladmin
privileges, and also grant theWRITE_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:
-
Some gadmin syntax has changed. Notably.
gadmin set config
is nowgadmin config set
. Please see Managing with gadmin. -
Some features which were previously deprecated have been dropped. Please see V3.0 Removal of Previously Deprecated Features for a detailed list.
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 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
See Control Flow Statements in GSQL Language Reference
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 | Alternate Operation |
---|---|
CREATE JOB | CREATE LOADING JOB |
RUN JOB | Specify the job type: 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. |