See the Github milestone for the issues included in this release
- #555: Removes
submitted-tx-updated-entity?
and submitted-tx-corrected-entity?
from the API, replacing them with a new function, tx-committed?
. - #556: Removes
new-tx-log-context
and tx-log
from the API, replacing them with open-tx-log
. - #619: Standalone topology uses memdb (not persisted by default), removes RocksDB dependency from crux-core. See https://opencrux.com/docs#config-rocksdb for details about how to configure RocksDB
- #496: Adding rocksdb metrics. The
kv-store
is now set as a module inside the topology vector.
- #565: query predicate at zero join depth can now stop tuples from being returned
- #507: ranges in rules revert to a predicate if neither argument is a logic var
- #466: Splitting
sync
's various arities into (sync node <timeout>)
, (await-tx-time node tx-time <timeout>)
and (await-tx node tx <timeout>)
((sync node tx-time <timeout>)
is deprecated and will be removed in a subsequent release). - #625: Metrics can be displayed to a prometheus server
- #597: Metrics can be now analysed in cloudwatch
- #495: Adding metrics to expose various indexer ingest metrics
- #494: Adding metrics to expose metrics on how long queries are taking
- #492: Adding metrics to expose local disk usage
- #494: Adding metrics to expose metrics on how long queries are taking
- #495: Adding metrics to expose various indexer ingest metrics
- #568: You can now supply a vector of modules to
crux.node/topology
- #586: Common artifacts are now deployed on every release, check out the releases page on the repository and the Crux dockerhub account.
- #596: The HTTP server is now a module, to be included in the
:crux.node/topology
vector. See https://opencrux.com/docs#config-http for more details. - #597: Metrics can be now analysed in cloudwatch
- #625: Metrics can be displayed to a prometheus server
- #524: Batch ingesting docs into the KV store
- #520: New
entity
arity accepts a snapshot argument for >40% performance boost
- #371: Documents in failed CaS operations now get evicted correctly
- #434: Fix put/delete/CaS semantics when a transaction contains overlapping valid-time ranges for the same entity
- #545: Fix greater than range predicate bug on empty db
- #546:
crux.node/db
errors if provided a tx-time later than the latest completed tx, to preserve repeatability of queries.
- #506: Fix lifetime of EntityAsOfIdx within put/delete, was being closed too soon.
- #512: Fix race condition initialising id-hashing
These changes bump the index version to version 5 - a re-index of Crux nodes is required.
- #428: Time ranges removed from 'evict' command, see #PR438 for more details.
- #441: Fix two transactions updating the same entity in the same millisecond always returning the earlier of the two values - requires index rebuild.
- #326: Put/delete with start/end valid-time semantics made consistent
- #363: Allow
full-results?
and other boolean flags in a vector-style query - #372: Add support for Java collection types with submitTx
- #377: Can use 'cons' within query predicates
- #414: Developer tool for query tracing
- #430: Add LMDB configuration example to docs + tests
- #457: Allowing nil to be returned from tx-fns
- #362: Fixes 362 where hashes of small maps were dependent on order
- #365: Replace usages of 'pr-str' with 'pr-edn-str' under crux.io
- #367: Can query empty DB
- #351: Do not merge placeholders into unary results
- #368: Protect calls to modules when node is closed
- #418: Adds exception when query with order-by doesn't return variable ordered on
- #419: Fix specification for ':timeout' within queries.
- #440: Fix return type of 'documents' in the API.
- #453: Add nil check for queries in spec.
- #454: Add fix for tx-log breaking in spec after an eviction
- #482: Bringing README up to date.
- #486: Race condition initialising hash implementation
- #340: Breaking Improve node configuration API, introduce topologies
- #341: Various documentation improvements
- #352: Fix Kotlin multhreaded node-start issues
- #348: Increase range constraints var-frequency for join order
- #285: Various doc and tx spec enhancements
- #287: Caching checking of specs for queries, 30% speed up for simple queries
- PR #297: Support for PostgreSQL, MySQL, Oracle, SQLite, H2 via
crux-jdbc
(see subsequent commits on master
) - PR #319: Kafka source and sink connectors
- #176: Ingest API for some operations (without full node / indexes)
- PR #320: Experimental support for transaction functions (disabled by default)
- #314: NPE when submitting a query with empty args
- PR #300: Breaking replace all
usage of the word "system" with "node" (including APIs/docs/examples) e.g.
start-standalone-system
is now start-standalone-node
- PR #297: New
crux-jdbc
backend as an alternative to Kafka for clustered deployments
- PR #281: Breaking deprecate
juxt/crux
release, use crux-core
and new modular deps - #288: Allow
crux-kafka
client configuration via :kafka-properties-map
- #266:
event-log-dir
is mandatory for standalone mode - PR #235: Add entity cache to improve large query performance
- #268:
sync
timeout must be a duration - #272: HTTP server can use
#crux/id
reader
- #208: Breaking Remove need for specifying ID in put and cas operations
- #254: Breaking Move blocking
db
call to sync - PR #243: Refactoring: Split out api spec
- #240: Fix using maps as ID
- #241: Events checked against schema
- #198: Fix docs nav links in safari
- PR #206: Handle current max lag being unknown
- #222: Fix race with eviction and caching
- PR #174: Make
index
Reducible (thank you @mpenet) - #173: Include documents with queries results using
:full-results?
- #202: Enforced use of
Date
instead of Inst
within the transaction spec
- #183: Fixes for JDK8 compilation
- #180: Fix indexer replay of eviction transactions
- #189: Fix evictions in standalone mode
- #184: Improved testing for document eviction support
- PR #N: Breaking example
- #N: issue example
Can you improve this documentation? These fine people already did:
James Henderson, Jon Pither, Tom Taylor, Daniel Mason, Jeremy Taylor, Antonelli712, Dan Mason, Ivan Fedorov & Håkan RåbergEdit on GitHub