comparison Sphinx/source/faq/scalability.rst @ 513:f22b3743fd3f

Orthanc 1.7.4
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 18 Sep 2020 15:18:40 +0200
parents 933e28b6a64d
children 50bdd7c7e9b9
comparison
equal deleted inserted replaced
512:be8b638f3f46 513:f22b3743fd3f
52 -------------------------------------- 52 --------------------------------------
53 53
54 Here is a generic setup that should provide best performance in the 54 Here is a generic setup that should provide best performance in the
55 presence of large databases: 55 presence of large databases:
56 56
57 * Make sure to use the latest release of Orthanc (1.7.3 at the time of 57 * Make sure to use the latest release of Orthanc (1.7.4 at the time of
58 writing). 58 writing).
59 59
60 * We suggest to use the latest release of the :ref:`PostgreSQL plugin 60 * We suggest to use the latest release of the :ref:`PostgreSQL plugin
61 <postgresql>` to store the database index (3.2 at the time of 61 <postgresql>` to store the database index (3.2 at the time of
62 writing). Make sure that ``EnableIndex`` is set to ``true``. 62 writing). Make sure that ``EnableIndex`` is set to ``true``.
170 ----------------- 170 -----------------
171 171
172 Exclusive access to the DB 172 Exclusive access to the DB
173 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 173 ^^^^^^^^^^^^^^^^^^^^^^^^^^
174 174
175 As of Orthanc 1.7.3, the internal code accessing the DB is still affected 175 As of Orthanc 1.7.4, the internal code accessing the DB is still affected
176 by limitations induced by the SQLite engine that was the only one originally 176 by limitations induced by the SQLite engine that was the only one originally
177 available at the beginning of the project: inside a single Orthanc process, 177 available at the beginning of the project: inside a single Orthanc process,
178 there is no concurrent access to the DB. 178 there is no concurrent access to the DB.
179 179
180 One solution to avoid this limitation is to have multiple Orthanc accessing 180 One solution to avoid this limitation is to have multiple Orthanc accessing
182 <https://bitbucket.org/osimis/orthanc-setup-samples/src/master/docker/multiple-orthancs-on-same-db/>`__. 182 <https://bitbucket.org/osimis/orthanc-setup-samples/src/master/docker/multiple-orthancs-on-same-db/>`__.
183 183
184 Also note that the core of Orthanc does not currently support the replay 184 Also note that the core of Orthanc does not currently support the replay
185 of database transactions, which is necessary to deal with conflicts 185 of database transactions, which is necessary to deal with conflicts
186 between several instances of Orthanc that would simultaneously write 186 between several instances of Orthanc that would simultaneously write
187 to the database. As a consequence, as of Orthanc 1.7.3, when connecting multiple 187 to the database. As a consequence, as of Orthanc 1.7.4, when connecting multiple
188 Orthanc to a single database by setting ``Lock`` to ``false``, there 188 Orthanc to a single database by setting ``Lock`` to ``false``, there
189 should only be one instance of Orthanc acting as a writer and all the 189 should only be one instance of Orthanc acting as a writer and all the
190 other instances of Orthanc acting as readers only. Be careful to set 190 other instances of Orthanc acting as readers only. Be careful to set
191 the option ``SaveJobs`` to ``false`` in the configuration file of all 191 the option ``SaveJobs`` to ``false`` in the configuration file of all
192 the instances of Orthanc acting as readers. 192 the instances of Orthanc acting as readers.
201 201
202 202
203 Latency 203 Latency
204 ^^^^^^^ 204 ^^^^^^^
205 205
206 As of Orthanc 1.7.3, Orthanc still performs quite a large number of small 206 As of Orthanc 1.7.4, Orthanc still performs quite a large number of small
207 SQL requests. A simple request to a route like ``/studies/{id}`` can trigger 207 SQL requests. A simple request to a route like ``/studies/{id}`` can trigger
208 6 SQL queries. 208 6 SQL queries.
209 209
210 This is not an ideal situation and this might be addressed 210 This is not an ideal situation and this might be addressed
211 in a future larger DB refactoring (the most time-consuming queries have already 211 in a future larger DB refactoring (the most time-consuming queries have already