Skip to content

Zulia 5.3.2

Choose a tag to compare

@github-actions github-actions released this 23 Jul 20:24
· 3 commits to main since this release

Zulia 5.3.2

Improvements

  • Associated file storage is created lazily. In cluster mode the per-index <cluster>_<index>_fs MongoDB database is now created only when the first associated file is actually stored, for both the GridFS and S3 storage engines. Fetches, deletes, index clears, and filename listings no longer create an empty database for indexes that never use associated files.

Bug Fixes

  • Associated file metadata indexes survive an index clear. Clearing an index drops the GridFS collection, which previously also dropped the metadata indexes without recreating them, leaving associated file lookups unindexed until restart. The next store after a clear now recreates them.
  • Deleting all associated files for a document that has none no longer fails. On file system storage, a delete request with deleteAllAssociated for a document that never had associated files threw NoSuchFileException and failed the whole delete.
  • Short unique ids work with file system associated storage. Ids whose hash produced fewer than five hex digits threw StringIndexOutOfBoundsException when storing or fetching associated files. Existing on-disk layouts are unchanged.
  • Metadata sidecar files no longer appear as associated documents. On file system storage, fetch all associated and the REST file listings previously included the internal .metadata sidecar files as if they were stored documents. Deleting a single associated file now also removes its sidecar instead of orphaning it, and deleting a file that does not exist is a no-op instead of an error, matching the MongoDB backend.
  • Spreadsheet parsing treats empty cells like missing ones. SpreadsheetRecord.parseFromString now returns the default value for an empty string instead of passing it to the parser, which would throw on values like numbers.

Internal

  • Transient index eviction test coverage extended with multi-node and single-shard eviction tests. The soak test can run multi-node via -Dzulia.soak.nodes.