annotate TODO @ 384:e236be67e5f9 db-protobuf

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 03 Apr 2023 10:46:01 +0200
parents c1fe28de1bf6
children 95c413106a66 d700c8f9fc24
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
196
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 ==============================
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 == Orthanc database plugins ==
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 ==============================
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 -----------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 Common - Database index
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 -----------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9
258
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
10 * Performance of joins in LookupResources: Create cached statement for
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
11 LookupResources, that are grouped to search up to, say, 10 tags,
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
12 instead of recompiling for each request
371
Alain Mazy <am@osimis.io>
parents: 365
diff changeset
13 * Do not log "DatabaseCannotSerialize" errors in the plugin but only
Alain Mazy <am@osimis.io>
parents: 365
diff changeset
14 in Orthanc after all retries have been made.
196
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 ---------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 Common - Storage area
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 ---------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 * Implement the "StoreDicom" option from the default filesystem
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 storage area to run MySQL/PostgreSQL storage in index-only mode:
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 https://book.orthanc-server.com/contributing.html
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
259
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 258
diff changeset
24 * Performance: Add a pool of connections to PostgreSQL/MySQL, as
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 258
diff changeset
25 already done in the database index plugins
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 258
diff changeset
26
360
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
27 ----------
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
28 PostgreSQL
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
29 ----------
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
30
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
31 * reported issue to validate: uploading lots of files through HTTP with:
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
32 - 1 client and IndexConnectionsCount==1 took 100s
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
33 - 2 client and IndexConnectionsCount==2 took 600s (lots of transaction replayed)
Alain Mazy <am@osimis.io>
parents: 266
diff changeset
34
365
Alain Mazy <am@osimis.io>
parents: 364
diff changeset
35 * Seems Orthanc might deadlock when there are plenty of conflicting transactions:
Alain Mazy <am@osimis.io>
parents: 364
diff changeset
36 https://groups.google.com/g/orthanc-users/c/xQelEcKqL9U/m/HsvxwlkvAQAJ
Alain Mazy <am@osimis.io>
parents: 364
diff changeset
37 https://groups.google.com/g/orthanc-users/c/1bkClfZ0KBA/m/s4AlwVh3CQAJ
196
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 -----
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 MySQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 -----
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42
266
cc7af42d4f23 Store revisions for metadata and attachments in PostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 259
diff changeset
43 * Store revisions for metadata and attachments in MySQL (this is
cc7af42d4f23 Store revisions for metadata and attachments in PostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 259
diff changeset
44 already implemented in PostgreSQL)
cc7af42d4f23 Store revisions for metadata and attachments in PostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 259
diff changeset
45
196
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 * MySQL performance => implement GlobalProperty_GetTotalSizeIsFast:
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 https://groups.google.com/d/msg/orthanc-users/kSR4a110zDo/D7e4ITR8BwAJ
258
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
48
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
49 * Add index to speed up wildcard search, as already done in PostgreSQL:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
50
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
51 - https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html +
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
52 ALTER TABLE table ADD FULLTEXT index_name(column1);
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
53
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 257
diff changeset
54 - https://dev.mysql.com/doc/refman/8.0/en/index-btree-hash.html