Skip to content

Releases: thatdot/quine

Release Quine 1.3.2

10 Aug 18:32
Compare
Choose a tag to compare

Release Quine 1.3.2

Enhancements:

  • Improved logging of error and startup messages

Bugfixes:

  • RocksDB unit tests will now clean up files they make (contributed by @dennylee)
  • text.utf8Decode now accepts a 1-argument invocation

Updates:

  • sbt to 1.7.1
  • scala-collection-compat to 2.8.1
  • scalatest to 3.2.13

Quine 1.3.1

13 Jul 18:53
Compare
Choose a tag to compare

Release Quine 1.3.1

Enhancements:

  • Added support for QUINE_DATA environment variable, which can be set to define the default persistence path.
  • Improved consistency of prose in WARN and INFO log messages
  • Improved Cypher query execution time

Bugfixes:

  • Fixed an issue where messages output while running a recipe could be duplicated

Updates:

  • classgraph to 4.8.149
  • sbt to 1.7.0
  • scala-collection-compat to 2.8.0
  • scala-js-macrotask-executor to 1.1.0
  • scopt to 4.1.0
  • memeid4s to 0.6.0
  • msgpack-core to 0.9.3

Release Quine 1.3.0

24 Jun 21:17
Compare
Choose a tag to compare

Features:

  • Added a pagination (SKIP/LIMIT) optimizer to the Cypher query engine for historical queries with no unaliased values
  • Enabled journals by default when running a recipe
  • Added support for using the Stoplight Elements interactive documentation behind an authentication proxy

Bugfixes:

  • Fixed an issue where waking up a node would not correctly re-register its standing queries, potentially resulting in dropped results
  • Fixed an issue where Cypher subqueries could be executed with too many variables in scope
  • Fixed an issue where some Cypher constructs (notably: variable-length relationship patterns) could be executed with too many variables in scope
  • Fixed a documentation rendering issue for Standing Query Outputs
  • Renamed the metric "persistors.snapshot-sizes" to "persistor.snapshot-sizes" for consistency
  • Fixed the behavior of DISTINCT during Cypher query execution, making it work correctly with SKIP and/or LIMIT

Misc:

  • Simplified startup log messages
  • Update some error messages to use the correct name for DistinctId Standing Queries
  • Improved UX for API-issued historical queries near the present time
  • Removed logback-config logging library: to configure logging, use standard logback.xml
  • Added timestamps to node journal events in debug.node and node debug APIs
  • Removed StandingQueryPattern.Graph API
  • Improved distribution of randomly-generated partitioned IDs
  • Documented metrics endpoint in openapi specification
  • Added peephole optimization for property value comparsion
  • Refactored to simplify DomainGraphBranch representation

Updates:

  • rocksdbjni to 7.3.1
  • msgpack-core to 0.9.2
  • cats-core to 2.8.0
  • metrics to 4.2.10
  • scala-library to 2.12.16
  • sbt-paradox to 0.10.2
  • sbt-scalafix to 0.10.1
  • scala-java-time to 2.4.0

Quine 1.2.1

18 May 18:19
Compare
Choose a tag to compare

Features:

  • Added debug.sleep Cypher procedure to request a node sleep
  • Replaced swagger-ui REST API viewer with Stoplight Elements
  • Integrated recipe-like command-line arguments with main configuration, allowing command-line arguments when running the main Quine application and reflecting those settings in the config REST API

Bugfixes:

  • Fixed a bug where some node journal events were not deduplicated, improving throughput and reducing disk usage
  • Fixed a minor typo in command-line argument parsing
  • VOID procedures called as the last clause in a cypher query now return 0 rows instead of 1 empty row

Misc:

  • Switched to target JRE 11 during compilation, allowing more runtime optimizations
  • Made process ID lookup more reliable cross-platform

Updates:

  • rocksdbjni to 7.2.2

Quine 1.2.0

05 May 20:33
Compare
Choose a tag to compare

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

Quine 1.1.2

30 Mar 19:00
Compare
Choose a tag to compare

Changes since Quine 1.1.0

Features:

  • Add support for additional Cypher aggregation functions: stDev, stDevP, percentileCont, and percentileDisc (#1629)
  • Add an option to retry CypherQuery type Standing Query outputs (#1642)
  • Add support for RocksDB on M1 Macs (#1659)
  • Add a metric for "shared.valve.ingest" the "gauges" section of the GET /api/v1/admin/metrics API endpoint to report the backpressured status of ingest streams (#1653)
  • Report all recipe substitution errors at once (#1650)

Bugfixes:

  • Remove references to an endpoint that no longer exists (#1619)
  • Retry loading application state in case of persistor failure (#1631)
  • Print live-updating status messages for Recipes in a consistent order (#1609)
  • Remove a duplicate copy of labels in certain queries for nodes (#1636)
  • Enable ingest to recover from temporary failures (eg as caused by a flaky network) (#1627)

Misc:

  • Rename "importers" package to "ingest" (#1621)
  • Remove unused fields from build info API endpoint (#1554)
  • Add additional context to some log messages (#1639)
  • Log a warning when a node approaches becoming a supernode (#1641)
  • Improve performance of some API endpoints (#1612)
  • Update Akka version to 2.6.19 (#1656)

Quine 1.1.0

04 Mar 00:25
Compare
Choose a tag to compare

Features:

  • Add Websockets ingest adapter
  • Add stdin ingest adapter
  • Add pretty-printing of Status Query results to Recipe interpreter
  • Add a "Run again as text query" link to the Query UI
  • Add a static check to the Cypher query planner to identify queries which cannot fail

Bugfixes:

  • Fix a race condition in the REST API which could cause multiple simultaneous API calls to report incorrect status, even when the system behaves correctly
  • Fix cross-application config loading and re-add clustering config to Quine Enterprise
  • Add extra checks to ensure failure to wake up a node does not leave the system in an inconsistent state
  • Fixed a Cypher bug involving spurious errors during UDF compilation

Misc:

  • Added OSS CI
  • Fix 2.13 build for projects with 2.13 cross build
  • Fix a typo
  • Dependency updates: webjars-locator to 0.45; slinky to 0.7.2; classgraph to 4.8.141; akka-http, akka-http-xml to 10.2.8; scalajs to 1.9.0; sbt-buildinfo to 0.11.0; sbt-assembly to 1.2.0; proguard-base to 7.2.1

Quine 1.0.0

18 Feb 04:35
Compare
Choose a tag to compare

Initial release https://quine.io