Time Series Streaming Graph and other Quine 1.2.0 Highlights

thatDot avatar Michael Aglietti

Time As Categorical Data and other Improvements

Last week saw the release of Quine 1.2.0 and with it, some notable new features, several new recipes, and  a cluster of performance related improvements that include two important changes impacting backwards compatibility.

All in all, Quine Streaming Graph 1.2.0 is a significant update and worth a detailed look.

Time Series Streaming Graph

Reification of time – easily the most immediately useful feature of 1.2.0, `reify.time` is a new custom Cypher procedure you can use to generate a structured representation of timestamp data. Think buckets of days, hours, minutes, and seconds represented as nodes. Does this make Quine a time series database now? More like a time series streaming graph. `reify.time` makes it straightforward to create and connect events to time-based nodes and execute time-related data analysis via standing queries.

For time-series use cases when you’re looking for real-time insights, the ability to treat time as categorical data and render it as nodes on the graph is pretty powerful.

And if you want to quickly try it yourself, we’ve added a new Wikipedia Ingest recipe.

Here’s the `reify.time` documentation page so you can learn more.

Cypher Feature Support

Cypher subqueries – with the introduction of the `CALL {}` command, Quine now adds the subquery. Since Neo4J has the best Cypher documentation in the biz, here’s a link to their Cypher Manual page on `CALL {}`.

OpenCypher and Java 11 – starting with 1.2.0, Quine has switched to OpenCypher, which requires Java 11 or later. Previous versions required Java 8 or later.

Rest API and Storage Enhancements

REST API UPGRADE (DOCS) – we are preparing to move from the standard Swagger stacked REST API documentation to Spotlight’s Elements framework. Check it out on the REST API documentation page. If you have opinions or feedback, we’d love to hear it. Look for it in Quine itself in a near-term release.

Switch to Spotlight Elements for improved API Docs Legibility

Added Quine.persistence.effect-order  – This configuration option is particularly useful for Cassandra users who want to use Quine+Cassandra as their database of record. `quine.persistence.effect-order` can be set to either `memory-first` or `persistor-first`. The latter option, `persistor-first` is meant to support this use case directly.

In the presence of system failure, with `persistor-first` Quine will have durably stored updates before anything else occurs (e.g. triggering standing queries).

Supernode performance enhancements – super nodes, or nodes with LOTS of edges, can negatively impact performance. As part of an ongoing effort to mitigate that impact, we have added two features to improve performance:

  1. Improved serialization for nodes with an extremely large edge and/or property counts in the persistence backend. While large property counts don’t technically make a node a supernode but the performance problems are similar. thatDot platform users should note that a similar change was made to Quine cluster member behavior.
  2. Nodes with an extremely large edge and/or property count can now be accessed via the Literal Operations REST APIs

Storage Format Change – data stored in Quine 1.1.2 and earlier can not be used in Quine 1.2.0 without migration.

Additional Improvements – storage format  in addition to improved serialization for nodes with large edge and/or property counts, updates to Quine 1.2.0 storage included:

  • Calling the debug API on a node in a historical query now only includes journal events up to the time of the historical query
  • Rename Cassandra store options `insert-time` and `select-timeout` to `write-timeout` and `read-timeout`, respectively (#1733)
  • Bugfix: 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

Download and try Quine 1.2.0 today.