Releases: korpling/graphANNIS
Releases · korpling/graphANNIS
1.5.0
Fixed
- RelANNIS version 3.3 files with segmentation might also have a missing "span" column.
In case the "span" column is null, always attempt to reconstruct the actual value from
the corresponding node annotation instead of failing directly.
Changed
- Avoid unnecessary compacting of disk tables when collecting graph updates during import.
This speeds up both the GraphML and the relANNIS importer and can also reduce the
used main memory during import. - Use release optimization of some of the performance sensitive crates even for debug builds.
This allows faster builds and debugging of our own code, while balancing performance.
1.4.1
Fixed
- Avoid unnecessary memory allocation when checking if a node has outgoing edges in
adjacency lists. This improves search for tokens because the Coverage components
are typically adjacency lists, and we need to make sure the token nodes don't
have any outgoing edges. - Fixed miscalculation of whitespace string capacity which could lead to
memory allocation failederror.
1.4.0
Added
- Added
clear()method to theWriteableGraphStoragetrait.
Fixed
- Limit the used main memory cache per
DiskTableby only using a disk block cache for the C1 table.
Since we use a lot of disk-based maps during import of relANNIS files, the previous behavior could
add up to > 1GB easily, wich amongst other issues caused #205 to happen.
With this change, during relANNIS import the main memory usage should be limited to be less than 4GB,
which seams more reasonable than the previous 20+GB - Reduce memory footprint during import when corpus contains a lot of escaped strings (as in #205)
- Avoid creating small fragmented main memory when importing corpora from relANNIS to help to fix #205
Changed
- Improved overall import speed of relANNIS corpora and when applying graph updates
1.3.0
Added
- The webservice endpoint
/search/node-descriptionsnow returns
wether a node in the query is optional or not.
1.2.2
Fixed
- Queries with optional nodes with a smaller index than the last non-optional node could fail.
If the execution nodes re-order the match result vector internally, the query node index is
used to define the mapping. Unfortunately the largest index could be larger than the size of mappings,
which used to be used to create the output vector. By allowing empty elements in the output vector
and using the maximum value, we can still map the results properly.
1.2.1
Fixed
- Don't allow optional operands for non-negated operators
1.2.0
1.1.0
Added
- Added generic operator negation with existance assumption by adding
!before the binary operator (#186)
Changed
- Compile releases on Ubuntu 18.04 instead of 16.04, which means the minimal GLIBC version is 2.27
- Updated dependencies
- Improved compile time by disabling some dependency features.
This also removes some optional features from the command line parser
(used in webservice and CLI binaries). - Don't use RIDGES corpus in search tests and fail search tests when corpus does not exist.
Fixed
- Use the correct
set-disk-based oncommand in the documentation for the CLI - Optimize node annotation storage and graph implementations when importing GraphML files
1.0.2
This release should not have any functional changes and only fixes issues in the GitHub Actions pipeline.
Fixed
- Fix issue when deploying release artifacts on GitHub
1.0.1
Fixed
- Assume that the
annis::node_nameannotation is unique when estimating match size.
This should improve e.g. subgraph-queries, where the intermediate result sizes are now better estimated.