changeset 7085:7dfb6d1ff9b1 streaming

reviewing documentation of new options
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 13 Aug 2026 07:59:45 +0000
parents bfd282b98d3a
children dbe83600164c
files OrthancServer/Resources/AdvancedConfiguration.json OrthancServer/Resources/Configuration.json OrthancServer/Sources/ServerContext.cpp
diffstat 3 files changed, 51 insertions(+), 53 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancServer/Resources/AdvancedConfiguration.json	Wed Aug 12 18:20:29 2026 +0200
+++ b/OrthancServer/Resources/AdvancedConfiguration.json	Thu Aug 13 07:59:45 2026 +0000
@@ -344,41 +344,39 @@
   // (new in Orthanc 1.12.6)
   "MaximumConcurrentDcmtkTranscoders" : 0,
 
-  // Number of threads that are used to parse DICOM files (when you need
-  // to access the value of DICOM tags that are not store in DB).
-  // (new in Orthanc 1.13.0)
+  // Number of threads that are used to parse DICOM files (when you
+  // need to access the value of DICOM tags that are not store in DB).
   // You should monitor the "orthanc_dicom_parser_available_threads"
-  // metrics to determine the optimal value for your setup and usage.
+  // metrics to determine the optimal value for your setup. (new in
+  // Orthanc 1.13.0)
   "DicomParserThreads" : 2,
 
-  // Amount of RAM (in MB) that are allocated to the DICOM parser threads.
-  // Note that this limit can be overpassed when a single file
-  // exceeds this size.
-  // (new in Orthanc 1.13.0).
-  // You should monitor the "orthanc_dicom_parser_memory_usage_mb" and
-  // "orthanc_dicom_parser_memory_max_usage_mb" metrics to determine the
-  // optimal value for your setup and usage.
+  // Peak amount of RAM (in MB) that can be allocated by the threads
+  // parsing the DICOM files.  Note that this limit can be overpassed
+  // when a single file exceeds this size.  You should monitor the
+  // "orthanc_dicom_parser_memory_usage_mb" and
+  // "orthanc_dicom_parser_memory_max_usage_mb" metrics to determine
+  // the optimal value for your setup. (new in Orthanc 1.13.0)
   "DicomParserMemoryCapacity" : 256,
 
-  // Maximum size of the DICOM parser cache in MB.  This cache
-  // is stored in RAM and contains a parsed version of recently read
-  // DIOCM files.  A value of "0" indicates the cache
-  // is disabled.  (new in Orthanc 1.13.0)
+  // Maximum size of the DICOM parser cache in MB.  This cache is
+  // stored in RAM and contains a parsed version of recently read
+  // DIOCM files. A value of "0" indicates the cache is disabled.
+  // (new in Orthanc 1.13.0)
   "DicomParserCacheSize" : 128,
 
   // Number of threads that are used to parse transcode DICOM files.
   // (new in Orthanc 1.13.0)
   // You should monitor the "orthanc_transcoder_available_threads"
-  // metrics to determine the optimal value for your setup and usage.
+  // metrics to determine the optimal value for your setup.
   "TranscoderThreads" : 4,
 
-  // Amount of RAM (in MB) that are allocated to the transcoder threads.
-  // Note that this limit can be overpassed when a single file
-  // exceeds this size.
-  // (new in Orthanc 1.13.0).
-  // You should monitor the "orthanc_transcoder_memory_usage_mb" and
+  // Peak amount of RAM (in MB) that can be allocated by the threads
+  // transcoding DICOM instances.  Note that this limit can be
+  // overpassed when a single instance exceeds this size.  You should
+  // monitor the "orthanc_transcoder_memory_usage_mb" and
   // "orthanc_transcoder_memory_max_usage_mb" metrics to determine the
-  // optimal value for your setup and usage.
+  // optimal value for your setup. (new in Orthanc 1.13.0)
   "TranscoderMemoryCapacity" : 256,
 
   // Maximum size of the transcoder cache in MB.  This cache
@@ -415,6 +413,6 @@
   // "SequentialDicomReaderWindowCapacity" limit is reached.
   // Note that this limit can be overpassed when a single file
   // exceeds this size.
-  // (new in Orthanc 1.13.0).
+  // (new in Orthanc 1.13.0)
   "SequentialDicomReaderWindowCapacity" : 64
 }
--- a/OrthancServer/Resources/Configuration.json	Wed Aug 12 18:20:29 2026 +0200
+++ b/OrthancServer/Resources/Configuration.json	Thu Aug 13 07:59:45 2026 +0000
@@ -46,20 +46,12 @@
   // (new in Orthanc 1.11.2)
   "MaximumStorageMode" : "Recycle",
 
-  // Maximum size of the storage cache in MB.  The storage cache
+  // Maximum size of the storage cache in MB. The storage cache
   // is stored in RAM and contains a copy of recently accessed
   // files (written or read).  A value of "0" indicates the cache
   // is disabled.  (new in Orthanc 1.10.0)
   "MaximumStorageCacheSize" : 128,
 
-  // Amount of RAM (in MB) that is allocated to the threads loading
-  // from the storage area. Note that this limit can be overpassed
-  // when a single file exceeds this size. You should monitor the
-  // "orthanc_storage_memory_usage_mb" and
-  // "orthanc_storage_memory_max_usage_mb" metrics to determine the
-  // optimal value for your setup. (new in Orthanc 1.13.0)
-  "StorageMemoryCapacity" : 512,
-
   // Number of threads that are used to read files from the storage.
   // A value > 4 is meaningful only if the storage is a distributed
   // network storage (e.g., object storage plugin). In this case, you
@@ -68,6 +60,14 @@
   // optimal value for your setup. (new in Orthanc 1.13.0)
   "StorageLoaderThreads" : 4,
 
+  // Peak amount of RAM (in MB) that can be allocated by the threads
+  // loading from the storage area. Note that this limit can be
+  // overpassed when a single file exceeds this size. You should
+  // monitor the "orthanc_storage_memory_usage_mb" and
+  // "orthanc_storage_memory_max_usage_mb" metrics to determine the
+  // optimal value for your setup. (new in Orthanc 1.13.0)
+  "StorageMemoryCapacity" : 512,
+
   // List of paths to the custom Lua scripts that are to be loaded
   // into this instance of Orthanc
   "LuaScripts" : [
--- a/OrthancServer/Sources/ServerContext.cpp	Wed Aug 12 18:20:29 2026 +0200
+++ b/OrthancServer/Sources/ServerContext.cpp	Thu Aug 13 07:59:45 2026 +0000
@@ -506,12 +506,12 @@
     if (!lock.GetConfiguration().LookupUnsignedIntegerParameter(mb, parameter))
     {
       mb = lock.GetConfiguration().GetUnsignedIntegerParameter(parameter);
-      LOG(WARNING) << "Performance option '" << parameter << "' is not defined in your configuration, setting it to "
+      LOG(WARNING) << "Performance option \"" << parameter << "\" is not defined in your configuration, setting it to "
                    << mb << "MB. Depending on the available memory on the system, you may want to adapt this value.";
     }
     else
     {
-      LOG(WARNING) << "Performance option '" << parameter << "' is set to " << mb << "MB";
+      LOG(WARNING) << "Performance option \"" << parameter << "\" is set to " << mb << "MB";
     }
 
     result = static_cast<uint64_t>(mb) * MEGABYTE;
@@ -721,29 +721,29 @@
           if (storageLoaderThreads < 4)
           {
             storageLoaderThreads = 4;
-            LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_STORAGE_LOADER_THREADS
-                         << "' is not defined in your configuration, setting it to " << storageLoaderThreads;
+            LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_STORAGE_LOADER_THREADS
+                         << "\" is not defined in your configuration, setting it to " << storageLoaderThreads;
           }
           else
           {
             static const unsigned int CAP = 50;
             storageLoaderThreads = std::min(CAP, storageLoaderThreads);
-            LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_STORAGE_LOADER_THREADS
-                         << "' is not defined in your configuration, setting it to " << storageLoaderThreads
-                         << ", based on the '" << ORTHANC_CONFIG_CONCURRENT_JOBS << "' and the '"
-                         << ORTHANC_CONFIG_LOADER_THREADS << "' options capped at " << CAP;
+            LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_STORAGE_LOADER_THREADS
+                         << "\" is not defined in your configuration, setting it to " << storageLoaderThreads
+                         << ", based on the \"" << ORTHANC_CONFIG_CONCURRENT_JOBS << "\" and the \""
+                         << ORTHANC_CONFIG_LOADER_THREADS << "\" options capped at " << CAP;
           }
         }
         else
         {
-          LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_STORAGE_LOADER_THREADS << "' is set to " << storageLoaderThreads;
+          LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_STORAGE_LOADER_THREADS << "\" is set to " << storageLoaderThreads;
         }
 
         transcoderThreads = lock.GetConfiguration().GetUnsignedIntegerParameter(ORTHANC_CONFIG_TRANSCODER_THREADS);
-        LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_TRANSCODER_THREADS << "' is set to " << transcoderThreads;
+        LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_TRANSCODER_THREADS << "\" is set to " << transcoderThreads;
 
         dicomParserThreads = lock.GetConfiguration().GetUnsignedIntegerParameter(ORTHANC_CONFIG_DICOM_PARSER_SOURCE_THREADS);
-        LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_DICOM_PARSER_SOURCE_THREADS << "' is set to " << dicomParserThreads;
+        LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_DICOM_PARSER_SOURCE_THREADS << "\" is set to " << dicomParserThreads;
 
         GetMemorySizeConfiguration(storageMemoryCapacity, lock, ORTHANC_CONFIG_STORAGE_MEMORY_CAPACITY);
         GetMemorySizeConfiguration(dicomParserMemoryCapacity, lock, ORTHANC_CONFIG_DICOM_PARSER_MEMORY_CAPACITY);
@@ -754,28 +754,28 @@
 
         if (!lock.GetConfiguration().LookupUnsignedIntegerParameter(sequentialReaderThreads, ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_THREADS))
         {
-          LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_THREADS
-                       << "' is not defined in your configuration, setting it to the same value as '"
-                       << ORTHANC_CONFIG_STORAGE_LOADER_THREADS << "': " << storageLoaderThreads;
+          LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_THREADS
+                       << "\" is not defined in your configuration, setting it to the same value as \""
+                       << ORTHANC_CONFIG_STORAGE_LOADER_THREADS << "\": " << storageLoaderThreads;
           sequentialReaderThreads = storageLoaderThreads;
         }
         else
         {
-          LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_THREADS
-                       << "' is set to " << sequentialReaderThreads;
+          LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_THREADS
+                       << "\" is set to " << sequentialReaderThreads;
         }
 
         if (!lock.GetConfiguration().LookupUnsignedIntegerParameter(sequentialReaderWindowSize, ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_WINDOW_SIZE))
         {
-          LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_WINDOW_SIZE
-                       << "' is not defined in your configuration, setting it to the same value as '"
-                       << ORTHANC_CONFIG_LOADER_THREADS << "': " << loaderThreads;
+          LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_WINDOW_SIZE
+                       << "\" is not defined in your configuration, setting it to the same value as \""
+                       << ORTHANC_CONFIG_LOADER_THREADS << "\": " << loaderThreads;
           sequentialReaderWindowSize = loaderThreads;
         }
         else
         {
-          LOG(WARNING) << "Performance option '" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_WINDOW_SIZE
-                       << "' is set to " << sequentialReaderWindowSize;
+          LOG(WARNING) << "Performance option \"" << ORTHANC_CONFIG_SEQUENTIAL_DICOM_READER_WINDOW_SIZE
+                       << "\" is set to " << sequentialReaderWindowSize;
         }
       }