David Handermann created NIFI-12206:
---------------------------------------

             Summary: Refactor Flow Configuration History from H2 to JetBrains 
Xodus
                 Key: NIFI-12206
                 URL: https://issues.apache.org/jira/browse/NIFI-12206
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Core Framework
            Reporter: David Handermann
            Assignee: David Handermann
             Fix For: 2.latest


The [H2 Database Engine|https://h2database.com/html/main.html] has provided 
local persistent storage for several types of information across Apache NiFi 
versions. With multiple refactoring efforts over several versions, H2 no longer 
stores user session information or identity provider group information, leaving 
the Flow Configuration History as the only remaining reference to H2.

H2 version 2.1 introduced incompatible changes in the binary storage format 
from H2 version 1.4, and H2 version 2.2 was also unable to read files from 
earlier H2 versions. These binary changes required custom migration modules and 
shaded distribution of H2 libraries to support upgrading between Apache NiFi 
versions.

With the scope of H2 usage narrowed to Flow Configuration History in Apache 
NiFi 1.23.0 and following, the storage strategy should be changed. Apache 
Derby, SQLite, and HSQLDB are other potential options supporting file-based 
relational storage, but maintenance level and platform-specific limitations 
present concerns with these libraries.

The [JetBrains Xodus|https://github.com/JetBrains/xodus] library provides 
persistent and scalable storage that avoids several issues present in other 
alternatives. The framework is licensed under Apache Software License Version 
2.0 and has a narrow set of dependencies aside from the Kotlin standard 
libraries. Xodus is now in version 2.0 and has maintained format compatibility 
when upgrading between major versions.

Based on the H2 database migration modules on the Apache NiFi support branch, a 
subsequent issue can implement automated migration from H2 to Xodus, providing 
an upgrade path from NiFi 1 to 2.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to