Skip to content

Releases: FgForrest/evitaDB

v2025.1.1

06 Feb 12:08
9ae59ef
Compare
Choose a tag to compare
v2025.1.1 Pre-release
Pre-release

What’s Changed

Minor hotfixes of glitches found on internal test implementations.

v2025.1.0

06 Feb 08:27
40a3448
Compare
Choose a tag to compare
v2025.1.0 Pre-release
Pre-release

What’s Changed

⛓️‍💥 Breaking changes

  1. Set time travel to disabled by default @novoj (#772)
    Although time travel works on its own, we've found that it's impractical to use in production because it takes up too much disk space. These issues need to be addressed first so that this feature doesn't cause problems on production systems: #760, #421, #761
    That's why we temporarily disable this feature in the default settings.

🚀 Features

  1. Performance analysis tooling @novoj @lukashornych (#794)
    We want to extend evitaLab with a new view that would list all recent requests and queries / mutations executed within them and visualise them in a comprehensible way. This tooling will build on a new facility in evitaDB that allows to store executed queries in the file log and aggregate them with mutations in WAL and provide the tooling with an aggregated view over them.

    We know from previous experience that such tools are crucial for the development of high performance applications. Developers make many errors (often N+1 errors) that are difficult to track without such tools. When the list of all queries to the database is visible and can be traced back to a particular page/request, developers can much better reason about the problems.

  2. Implement file lock that ensures exclusive access to catalog directory @novoj (#753)
    We have first installations on K8S infrastructure that may start nodes in parallel and in wrong configurations multiple processes might attempt to access same files on the file system. We should implement file locks (https://www.baeldung.com/java-lock-files) that will prevent potential file corruptions that might result from this unfortunate situation.

  3. Make fsSync configurable @novoj (#767)
    Explicit file system synchronisation (java.io.FileDescriptor#sync) is an expensive operation that is not necessary in all scenarios. It ensures that committed data is safely written to persistent storage, but in integration testing, for example, this kind of guarantee is useless.

    The measured impact of this explicit synchronisation in a test integration suite of 1400 E2E tests heavily using evitaDB resulted in 25% better performance (shorter test suite duration), which is a significant improvement. So it's a good idea to make this fsync a configurable option, enabled by default, but able to be disabled.

  4. New artifact evita_java_driver_all_in_one introduced @novoj
    This artifact contains Java client along with all its dependencies that are repackaged, so that they won't conflict with dependencies of your project. This is primarily useful, when your project already uses gRPC libraries of different versions. Unfortunatelly this artifact is quite big due to gRPC and Armeria dependencies, so it should be used only if you can't easily solve the library conflicts.

🐛 Bug Fixes

  • Ordering referenced entities by reference attribute inside inScope container doesn't work @novoj (#789)
  • ChainIndex corrupted in consolidation @novoj (#786)
  • NullPointerException in PredecessorAttributeComparator @novoj (#781)
  • ArrayIndexOutOfBounds in MergedSortedRecordsSupplier @novoj (#780)
  • Filtering constraint attributeStartsWith doesn't work with array type attributes @novoj (#778)
  • Invalid GraphQL schema for facetGroup conjunction/negation/disjunction @lukashornych (#757)

v2024.12.8

04 Feb 16:29
Compare
Choose a tag to compare
v2024.12.8 Pre-release
Pre-release

What’s Changed

  • No changes

v2024.12.7

04 Feb 16:06
0a19ff9
Compare
Choose a tag to compare
v2024.12.7 Pre-release
Pre-release

What’s Changed

  • build: syncing workflows with dev branch @novoj (#792)

v2024.12.6

04 Feb 15:36
c28394d
Compare
Choose a tag to compare
v2024.12.6 Pre-release
Pre-release

What’s Changed

🐛 Bug Fixes

  • fix: Ordering referenced entities by reference attribute inside inScope container doesn't work @novoj (#791)
    This graphQL query:
query productPage {
  queryProduct{
    recordStrip(limit: 1) {
      data {
        primaryKey
        categories(
          orderBy: {inScope: {scope: LIVE, ordering: {attributeCategoryPriorityNatural: ASC}}}
        ) {
          referencedPrimaryKey
          attributes {
            categoryPriority
          }
          referencedEntity {
            primaryKey
            attributes {
              code
            }
          }
        }
      }
    }
  }
}

... doesn't work properly. When ordering constraint is enveloped in inScope container it's completely skipped.

Refs: #789

v2024.12.5

04 Feb 08:45
228aa11
Compare
Choose a tag to compare
v2024.12.5 Pre-release
Pre-release

What’s Changed

🐛 Bug Fixes

  • fix: ChainIndex corrupted in consolidation @novoj (#787)
    The bug manifests itself by incorrect predecessor value in io.evitadb.index.attribute.ChainIndex#elementStates comparing to real value stored in entity data. It seems that during consolidations predecessor of different element is stored to the state of discussed element. Unfortunatelly, the logic is quite complex and there are many cases where the state is updated with different values so it doesn't make sense to encapsulate inner map into more complex object because we'd still rely on proper inputs during updates.

Refs: #786

v2024.11.14

04 Feb 16:03
065880d
Compare
Choose a tag to compare
v2024.11.14 Pre-release
Pre-release

What’s Changed

🐛 Bug Fixes

  • fix: ChainIndex corrupted in consolidation @novoj (#788)
    The bug manifests itself by incorrect predecessor value in io.evitadb.index.attribute.ChainIndex#elementStates comparing to real value stored in entity data. It seems that during consolidations predecessor of different element is stored to the state of discussed element. Unfortunatelly, the logic is quite complex and there are many cases where the state is updated with different values so it doesn't make sense to encapsulate inner map into more complex object because we'd still rely on proper inputs during updates.

Refs: #786

v2024.12.4

30 Jan 14:23
c9d608b
Compare
Choose a tag to compare
v2024.12.4 Pre-release
Pre-release

What’s Changed

🐛 Bug Fixes

  • Master hotfix @novoj (#785)
    fix: NullPointerException in PredecessorAttributeComparator (#781)
    fix: ArrayIndexOutOfBounds in MergedSortedRecordsSupplier (#780)

v2024.12.3

27 Jan 15:48
cb1f80a
Compare
Choose a tag to compare
v2024.12.3 Pre-release
Pre-release

What’s Changed

🐛 Bug Fixes

  • Fix: ArrayIndexOutOfBoundsException in ExactSorter @novoj (#774)

v2024.12.2

20 Jan 16:51
d3430b3
Compare
Choose a tag to compare
v2024.12.2 Pre-release
Pre-release

What’s Changed