view PostgreSQL/NEWS @ 595:272eeb046a88 find-refactoring

Introduced a new ChildCount table in PG to improve retrieval of NumberOfRelatedStudyInstances and other similar tags that could consume up to 95% of a request time + added a DB-Housekeeper thread to populate the new table
author Alain Mazy <am@orthanc.team>
date Tue, 26 Nov 2024 17:59:14 +0100
parents 14ba6a6f633f
children 8f6e7ae942f3
line wrap: on
line source

Pending changes in the mainline (future 7.0)
===============================

DB schema revision: 3
Minimum plugin SDK (for build): 1.12.3
Optimal plugin SDK (for build): 1.12.5+
Minimum Orthanc runtime: 1.12.3
Optimal Orthanc runtime: 1.12.5+

Minimal Postgresql Server version: 9
Optimal Postgresql Server version: 11+

* WARNING: An Index is being replaced to improve performance.  The creation
  of the new index can take some time (we have observed 3 minutes on a
  DB with 70M instances).  Orthanc will not be available during the
  creation of this index.  If needed, you can create it manually before installing
  the new plugin by executing these SQL commands:

    https://orthanc.uclouvain.be/hg/orthanc-databases/file/tip/PostgreSQL/Plugins/SQL/Upgrades/Partial/Rev2_1_ReplaceChildrenIndex.sql

* WARNING: A new table is being created when upgrading to this version.  A new thread
  is populating this new table and might consume DB bandwitdh and CPU.


* Fix updates from plugin version 3.3 to latest version
* Added support for ExtendedChanges:
  - changes?type=...&to=...
* Performance optimizations (to be summarized before release):
  - using more prepared SQL statements:
    - InsertOrUpdateMetadata
    - ExecuteSetResourcesContentTags
  - merged BEGIN and SET TRANSACTION statements
  - reduced the number of round-trips between Orthanc and the PostgreSQL server:
    - e.g: when receiving an instance in an existing series, reduced the number of SQL queries from 13 to 9
* Fixed a memory leak when executing non cached SQL statements (rarely used)
* New default values for configurations:
  - "IndexConnectionsCount": 50
  - "TransactionMode": "ReadCommitted"

Release 6.2 (2024-03-25)
========================

DB schema revision: 2
Minimum plugin SDK (for build): 1.12.3
Minimum Orthanc runtime: 1.12.3

* Fix check of Orthanc runtime version


Release 6.1 (2024-02-14)
========================

DB schema revision: 2

* Fix handling of MaximumStorageSize & MaximumPatientCount.


Release 6.0 (2024-02-08)
========================

DB schema revision: 2

* The DB schema has been updated to Revision 2.  If you need to reinstall the previous
  version of the plugin, you should run this script:
  https://orthanc.uclouvain.be/hg/orthanc-databases/file/tip/PostgreSQL/Plugins/SQL/Downgrades/Rev2ToRev1.sql
* Transaction Mode:
  Introduced a new configuration "TransactionMode" to select the transaction isolation level.
  Allowed values: "Serializable", "ReadCommitted".
  The "Serializable" mode was the only available value up to now.  It is still the default
  value now.
  The "ReadCommitted" is possible now due to rewrites of SQL queries and notably improves
  the Orthanc ability to ingest data from multiple sources in parallel.
* New "EnableVerboseLogs" configuration to show SQL statements being executed.


Release 5.1 (2023-06-27)
========================

DB schema revision: 1

* Optimization of LookupResources mainly used in tools/find, C-Find and QIDO-RS.

Release 5.0 (2023-04-15)
========================

* Added support for labels
* Compatibility with Orthanc SDK 1.12.0 (communications between the
  Orthanc core and the database plugin using Google Protocol Buffers)
* Upgraded dependencies for static builds (notably on Windows and LSB):
  - openssl 3.1.0


Release 4.0 (2021-04-22)
========================

* New option "IndexConnectionsCount" to control how many simultaneous
  connections to the PostgreSQL database are used by the index plugin
* Support of revisions for metadata and attachments
* Support of multiple readers/writers, by handling retries from Orthanc SDK 1.9.2
* Support of range reads for the storage area, from Orthanc SDK 1.9.0
* Fix issue #193 (LSB binaries crash with PostgreSQL + SSL) by changeset
  in OrthancFramework: https://orthanc.uclouvain.be/hg/orthanc/rev/9a9118406484
* Fix issue #151 (Storage failures when running with two instances and PG_LOCK=false)


Release 3.3 (2020-12-14)
========================

* Added an advisory lock to avoid race conditions during database setup
* Added "MaximumConnectionRetries" & "ConnectionRetryInterval" to configure 
  the retries when connecting to the DB at startup
* Support of dynamic linking against the system-wide Orthanc framework library
* Upgraded dependencies for static builds (notably on Windows and LSB):
  - openssl 1.1.1g
  - libpq 13.1 (replacing libpq 9.6.1)


Release 3.2 (2019-03-01)
========================

* Explicit deallocation of prepared statements


Release 3.1 (2019-02-08)
========================

* Fix build on Debian Buster
* Remove "ASSERT" in SQL for compatibility with older releases of PostgreSQL
* Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
* Performance: Defining option "TCP_NODELAY" if libpq is linked statically


Release 3.0 (2019-01-21)
========================

* New configuration option: "EnableSsl"
* Database optimizations by implementing new primitives of Orthanc SDK 1.5.2
* Fix issue 105 (Unable to connect to PostgreSQL database using SSL)
* Fix Debian issue #906771 (Uncaught exception prevents db intialization
  (likely related to pg_trgm))
* Fix: Catching exceptions in destructors


Release 2.2 (2018-07-16)
========================

!! Important remark when upgrading from an older version of the plugin:

   The plugin will create a new index to improve search performance.
   This can take several minutes at the first Orthanc startup. Orthanc
   will not be available during this period. On a PostgreSQL database
   with 100,000 studies, we have observed that updating the index took
   around 10 minutes.

* Migration into the "orthanc-databases" repository
* Full refactoring to share code with MySQL
* Fix issue 41 (Additional range IdentifierConstraintType in Orthanc)
  !! This fix requires Orthanc version >= 1.4.0
* Fix issue 47 (Index improvements for PG plugin)
* Fix issue 76 (PG connection shall reconnect/retry in case it loses
  the connection to the server)


Release 2.1 (2018-04-20)
========================

* Running transactions in "Serializable" isolation level to avoid 
  inconsistencies if multiple Orthanc are writing to the same DB
* Upgrade to PostgreSQL 9.6.1 client library for static builds
* Performance warning if runtime debug assertions are turned on
* Fix issue 62 (use correct type for lo_read() value)
* Fix issue 63 (allow to connect without specifing username and/or port)
* Fix issue 68 (PostgreSQL plugin needs extra flags to compile)
* Resort to Orthanc framework
* Support of Linux Standard Base, OpenBSD and FreeBSD


Release 2.0 (2015-12-02)
========================

=> Minimum SDK version: 0.9.5 <=
=> Supported database versions: 5 (upgrade only) and 6 <=

* Support version 6 of the database schema
* The "value" column of tables "MainDicomTags" and "DicomIdentifiers" are now TEXT instead of BYTEA


Release 1.3 (2015-10-07)
========================

=> Minimum SDK version: 0.9.4 <=
=> Supported database versions: 5 <=

* Fix build with Orthanc plugin SDK 0.9.4
* Implementation of "GetAllPublicIdsWithLimit" extension
* Implementation of "UpgradeDatabase" extension


Release 1.2 (2015-08-02)
========================

=> Minimum SDK version: 0.9.1 <=

* Inject version information into Windows binaries
* CMake flag to prevent compiling the unit tests (if no PostgreSQL test server is available)
* Update to Boost 1.58.0 for static and Windows builds
* Support of OS X compilation


Release 1.1 (2015-07-03)
========================

* Fixes
* Support of Visual Studio 2008
* Support of FreeBSD thanks Mikhail <mp39590@gmail.com>


Release 1.0 (2015-02-27)
========================

* Use of advisory locks
* Support of connection URI in PostgreSQL
* Options "EnableIndex" and "EnableStorage" to explicitly enable PostgreSQL


2015-02-06
==========

* Initial release