github vaticle/typedb 2.15.0
TypeDB 2.15.0

latest releases: 2.28.0, 2.28.0-rc0, 2.27.0...
15 months ago

Install & Run: http://docs.vaticle.com/docs/running-typedb/install-and-run

New Features

Bugs Fixed

  • Optimised relation unification performance

    We improve the relation unification algorithm, which in turn unlocks relation unification with many role-players.

  • Short-cut rules where possible & relax reasoner planner orderings
    We revise the criteria for a constraint to be dependent on a variable being bound. This refines the search-space of the reasoner planner to include more legal plans, and allows an optimisation for reasoning involving relations playing roles in other relations.

    In certain cases during reasoning, we can determine that all answers for a given constraint have already been computed. In such cases, we can bypass inference and simply look up the answers.

  • Add missing ErrorMessage parameters for UNSUPPORTED_OPERATION
    Trying to create an attribute-type which is unwritable throws a TypeDBException UNSUPPORTED_OPERATION, but the Constructor of the error message is missing the parameters describing the operation being attempted and the argument for what it is invalid (here, putAttribute for ValueType.OBJECT).

  • Shutdown gracefully on unexpected server exception

    To prevent zombie or broken server states due to unexpected exceptions, we no longer catch and swallow unexpected exceptions. Instead, we shutdown the server. The catch-and-swallow behaviour is dangerous because 1) an uncaught exception means a thread is also killed somewhere, and could put the server into a zombie or otherwise broken state, and specifically can cause 2) zombie state by catching an OOM exception which would stall the server instead of letting it die.

Code Refactors

  • Refactor statistics corrector module to allow lazy initialisation

    We formalise the state model in a database statistics correction module, which now allows lazy initialisation. This is used in cluster to transition between primary/secondary multiple times within the lifetime of one database.

  • Update brew formula

    We update the formula template used for our own homebrew tap to be more in line with recent changes to the homebrew-core formula.

  • Update kotlin dependencies

    We update to the latest @vaticle_dependencies, which requires upgrading to the latest way of using Kotlin in the WORKSPACE file.

  • Update to error messages for illegal pattern matches

    The error messages returned for illegal pattern matches were not descriptive enough, leading to potential ambiguity for the user. The are now more descriptive.

  • Update test instructions

    Update the filter in the BDD test run instructions.

  • Open import-export modules for extension

    We extend the core Server and Migrators for extension in TypeDB Cluster.

  • Static server constructor with earlier logging configuration

    We introduce a static TypeDB server constructor in which the server's logging is configured ahead of time, instead of in the constructor. This allows TypeDB Cluster have more freedom about when the logging is configured.

Other Improvements

  • Update VERSION and console artifact

  • Top-level server uncaught exception handler logs stacktrace

  • Downgrade rules_go for Apple Silicon compatibility

    We downgrade rules_go from 0.35.0 to 0.34.0 (in @vaticle_dependencies), fixing an issue in C++ toolchain resolution on Apple Silicon.

  • Add transitive dependency on netty-transport to the concurrent package

    In line with bumping our netty dependencies (vaticle/dependencies#415), we need to include a transitive dependency that has been introduced on netty's side between the version we used to depend on and the version we now depend on.

Don't miss a new typedb release

NewReleases is sending notifications on new releases.