Skip to content

Quine 1.2.0

Compare
Choose a tag to compare
@emanb29 emanb29 released this 05 May 20:33

Release Quine 1.2.0

This release brings several API improvements, new Cypher query features, and persistence backend bugfixes and optimizations to better support supernodes and other extreme-scale datasets. Some of these changes affect the data format on disk, and accordingly data from prior versions (<= 1.1.2) can not be used with Quine 1.2.0 without migration. Furthermore, this release increases the minimum supported Java version to 11.

Features:

  • Add reify.time, a cypher procedure to generate a uniform structured representation of timestamp data within the graph, to make time-related data analysis via Standing Queries easier and more consistent
  • Add a REST API endpoint to request a specific node save a snapshot and go to sleep
  • Added support for Cypher subqueries via the CALL {} syntax
  • EXPLAINed query ASTs will now be logged at debug level, if enabled
  • Improved serialization for nodes with an extremely large edge and/or property counts in the persistence backend
  • Nodes with an extremely large edge and/or property count can now be correctly accessed via the Literal Operations REST APIs
  • Iteration and sort order of Map-type values in Cypher queries are handled consistently
  • Add a configuration option for writing updates to disk before applying effects in-memory: quine.persistence.effect-order
  • Add a startup check to verify that Cassandra's configuration matches the provided Quine configuration, warning if there is a mismatch
  • Calling the debug API on a node in a historical query now only includes journal events up to the time of the historical query

Bugfixes:

  • Application start up can no longer log an opaque warning like "Current state = CODING, previous state = FLUSHED"
  • Setting snapshot-singleton=true, snapshot-schedule=on-node-update, and journal-enabled=false no longer causes the most recent event on a node to be dropped
  • Map-type values in Cypher hash to a consistent value, independent of how they were constructed
  • Accessing nodes just as they fall out of the cache can no longer cause the system to enter a failsafe mode
  • Historical queries that restore journals with noncommutative effects after a snapshot from Cassandra apply updates in order
  • Fix an issue with RocksDB where some Standing Query states weren’t restored
  • Added a minimum header width to recipe status query output
  • Fix an issue where standing queries were not properly restored on startup

Misc:

  • Remove support for DistinctId queries that do not specify a DISTINCT keyword
  • Remove support for toInt in Cypher queries (use toInteger instead)
  • Remove support for filter and extract in Cypher queries (use list comprehensions instead)
  • ID values returned via the exploration UI are now pretty-printed
  • Use Cypher for query UI edge queries for better performance and fewer timeouts when querying supernodes
  • Make recipes and example queries more consistent in styling
  • Make use of datetime() in Apache log recipe to parse timestamps
  • When the system clock moves backwards, Quine handles the issue transparently. Change the log level for this occasion from warn to info.
  • Rename executionGuarantee parameter on the CypherQuery Standing Query Output to shouldRetry, and set the default to true
  • Increase resilience of persistence operations in deployments with unreliable persistors
  • Improve performance of historical queries involving nodes with many edges
  • Add persistor exceptions, including timeouts, to the list of exception types that are retried for ingest queries and when shouldRetry = true
  • Rename Cassandra store options insert-time and select-timeout to write-timeout and read-timeout, respectively

Dependency Updates:

  • akka-http, akka-http-xml to 10.2.9
  • protobuf-java to 3.20.0
  • rocksdbjni to 7.0.3
  • ujson, upickle to 1.6.0
  • shapeless to 2.3.9
  • memeid4s to 0.5.0
  • scalajs to 1.10.0
  • scalatest to 3.2.12
  • scalacheck to 1.16.0
  • sbt-scalafix to 0.10.0
  • classgraph to 4.8.146