Releases: thatdot/quine
Releases · thatdot/quine
Release Quine 1.3.2
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
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
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
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
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 (usetoInteger
instead) - Remove support for
filter
andextract
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
toinfo
. - Rename
executionGuarantee
parameter on the CypherQuery Standing Query Output toshouldRetry
, 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
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
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
Initial release https://quine.io