From 0f2e08b43bd06df2bfa493271c46dc994af164f3 Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Tue, 30 Nov 2021 16:44:30 +0200 Subject: [PATCH] Add notes --- content/posts/2021-11.md | 98 ++++++++++++++++++++- docs/2021-11/index.html | 92 +++++++++++++++++-- docs/2021/11/postgres_locks_ALL-week.png | Bin 0 -> 13703 bytes docs/categories/index.html | 2 +- docs/categories/notes/index.html | 2 +- docs/categories/notes/page/2/index.html | 2 +- docs/categories/notes/page/3/index.html | 2 +- docs/categories/notes/page/4/index.html | 2 +- docs/categories/notes/page/5/index.html | 2 +- docs/categories/notes/page/6/index.html | 2 +- docs/index.html | 2 +- docs/page/2/index.html | 2 +- docs/page/3/index.html | 2 +- docs/page/4/index.html | 2 +- docs/page/5/index.html | 2 +- docs/page/6/index.html | 2 +- docs/page/7/index.html | 2 +- docs/page/8/index.html | 2 +- docs/posts/index.html | 2 +- docs/posts/page/2/index.html | 2 +- docs/posts/page/3/index.html | 2 +- docs/posts/page/4/index.html | 2 +- docs/posts/page/5/index.html | 2 +- docs/posts/page/6/index.html | 2 +- docs/posts/page/7/index.html | 2 +- docs/posts/page/8/index.html | 2 +- docs/sitemap.xml | 10 +-- static/2021/11/postgres_locks_ALL-week.png | Bin 0 -> 13703 bytes 28 files changed, 212 insertions(+), 34 deletions(-) create mode 100644 docs/2021/11/postgres_locks_ALL-week.png create mode 100644 static/2021/11/postgres_locks_ALL-week.png diff --git a/content/posts/2021-11.md b/content/posts/2021-11.md index c09401c93..ce19dfc10 100644 --- a/content/posts/2021-11.md +++ b/content/posts/2021-11.md @@ -249,6 +249,102 @@ Total number of hits from bots: 295492 $ ./ilri/fix-metadata-values.py -i /tmp/authors.csv -db dspace -u dspace -p 'fuuu' -f dc.contributor.author -t 'correct' -m 3 ``` -- Then I imported to CGSpace and started a full Discovery re-index +- Then I imported to CGSpace and started a full Discovery re-index: + +```console +$ time chrt -b 0 ionice -c2 -n7 nice -n19 dspace index-discovery -b + +real 272m43.818s +user 183m4.543s +sys 2m47.988 +``` + +## 2021-11-28 + +- Run system updates on AReS server (linode20) and update all Docker containers and reboot + - Then I started a fresh harvest as I always do on Sunday +- I am experimenting with pinning npm version 7 on OpenRXV frontend because of these Angular errors: + +```console +npm WARN EBADENGINE Unsupported engine { +npm WARN EBADENGINE package: '@angular-devkit/architect@0.901.15', +npm WARN EBADENGINE required: { node: '>= 10.13.0', npm: '^6.11.0 || ^7.5.6', yarn: '>= 1.13.0' }, +npm WARN EBADENGINE current: { node: 'v12.22.7', npm: '8.1.3' } +npm WARN EBADENGINE } +``` + +## 2021-11-29 + +- Tezira reached out to me to say that submissions on CGSpace are taking forever +- I see a definite increase in locks in the last few days: + +![PostgreSQL locks week](/cgspace-notes/2021/11/postgres_locks_ALL-week.png) + +- The locks are all held by dspaceWeb (XMLUI): + +```console +$ psql -c "SELECT application_name FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid" | sort | uniq -c | sort -n + 1 + 1 ------------------ + 1 (1394 rows) + 1 application_name + 9 psql + 1385 dspaceWeb +``` + +- I restarted PostgreSQL and the locks dropped down: + +```console +$ psql -c "SELECT application_name FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid" | sort | uniq -c | sort -n + 1 + 1 ------------------ + 1 (103 rows) + 1 application_name + 9 psql + 94 dspaceWeb +``` + +## 2021-11-30 + +- IWMI sent me ORCID identifiers for some new staff + - We currently have 1332 unique identifiers, so this adds sixteen new ones: + +```console +$ cat ~/src/git/DSpace/dspace/config/controlled-vocabularies/cg-creator-identifier.xml /tmp/iwmi-orcids.txt | grep -oE '[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}' | sort | uniq > /tmp/2021-11-30-combined-orcids.txt +$ wc -l /tmp/2021-11-30-combined-orcids.txt +1348 /tmp/2021-11-30-combined-orcids.txt +``` + +- After I combined them and removed duplicates, I resolved all the names using my `resolve-orcids.py` script: + +```console +$ ./ilri/resolve-orcids.py -i /tmp/2021-11-30-combined-orcids.txt -o /tmp/2021-11-30-combined-orcids-names.txt +``` + +- Then I updated some ORCID identifiers that had changed in the XML: + +```console +$ cat 2021-11-30-fix-orcids.csv +cg.creator.identifier,correct +"ADEBOWALE AKANDE: 0000-0002-6521-3272","ADEBOWALE AD AKANDE: 0000-0002-6521-3272" +"Daniel Ortiz Gonzalo: 0000-0002-5517-1785","Daniel Ortiz-Gonzalo: 0000-0002-5517-1785" +"FRIDAY ANETOR: 0000-0003-3137-1958","Friday Osemenshan Anetor: 0000-0003-3137-1958" +"Sander Muilerman: 0000-0001-9103-3294","Sander Muilerman-Rodrigo: 0000-0001-9103-3294" +$ ./ilri/fix-metadata-values.py -i 2021-11-30-fix-orcids.csv -db dspace -u dspace -p 'fuuu' -f cg.creator.identifier -t 'correct' -m 247 +``` + +- Tag existing items from the IWMI's new authors with ORCID iDs using `add-orcid-identifiers-csv.py` (7 new metadata fields added): + +```console +$ cat 2021-11-30-add-orcids.csv +dc.contributor.author,cg.creator.identifier +"Liaqat, U.W.","Umar Waqas Liaqat: 0000-0001-9027-5232" +"Liaqat, Umar Waqas","Umar Waqas Liaqat: 0000-0001-9027-5232" +"Munyaradzi, M.","Munyaradzi Junia Mutenje: 0000-0002-7829-9300" +"Mutenje, Munyaradzi","Munyaradzi Junia Mutenje: 0000-0002-7829-9300" +"Rex, William","William Rex: 0000-0003-4979-5257" +"Shrestha, Shisher","Nirman Shrestha: 0000-0002-0996-8611" +$ ./ilri/add-orcid-identifiers-csv.py -i 2021-11-30-add-orcids.csv -db dspace -u dspace -p 'fuuu' +``` diff --git a/docs/2021-11/index.html b/docs/2021-11/index.html index 20c84b903..29098a2b6 100644 --- a/docs/2021-11/index.html +++ b/docs/2021-11/index.html @@ -18,7 +18,7 @@ $ zstd statistics-2019.json - + @@ -42,9 +42,9 @@ $ zstd statistics-2019.json "@type": "BlogPosting", "headline": "November, 2021", "url": "https://alanorth.github.io/cgspace-notes/2021-11/", - "wordCount": "1682", + "wordCount": "2080", "datePublished": "2021-11-02T22:27:07+02:00", - "dateModified": "2021-11-27T12:18:52+02:00", + "dateModified": "2021-11-27T14:37:33+02:00", "author": { "@type": "Person", "name": "Alan Orth" @@ -389,9 +389,91 @@ Found 3 hits from 188.134.31.88 in statistics
$ ./ilri/fix-metadata-values.py -i /tmp/authors.csv -db dspace -u dspace -p 'fuuu' -f dc.contributor.author -t 'correct' -m 3
 
- +
$ time chrt -b 0 ionice -c2 -n7 nice -n19 dspace index-discovery -b
+
+real    272m43.818s
+user    183m4.543s
+sys     2m47.988
+

2021-11-28

+ +
npm WARN EBADENGINE Unsupported engine {
+npm WARN EBADENGINE   package: '@angular-devkit/architect@0.901.15',
+npm WARN EBADENGINE   required: { node: '>= 10.13.0', npm: '^6.11.0 || ^7.5.6', yarn: '>= 1.13.0' },
+npm WARN EBADENGINE   current: { node: 'v12.22.7', npm: '8.1.3' }
+npm WARN EBADENGINE }
+

2021-11-29

+ +

PostgreSQL locks week

+ +
$ psql -c "SELECT application_name FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid" | sort | uniq -c | sort -n
+      1 
+      1 ------------------
+      1 (1394 rows)
+      1  application_name 
+      9  psql
+   1385  dspaceWeb
+
+
$ psql -c "SELECT application_name FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid" | sort | uniq -c | sort -n
+      1
+      1 ------------------
+      1 (103 rows)
+      1  application_name
+      9  psql
+     94  dspaceWeb
+

2021-11-30

+ +
$ cat ~/src/git/DSpace/dspace/config/controlled-vocabularies/cg-creator-identifier.xml /tmp/iwmi-orcids.txt | grep -oE '[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}' | sort | uniq > /tmp/2021-11-30-combined-orcids.txt
+$ wc -l /tmp/2021-11-30-combined-orcids.txt
+1348 /tmp/2021-11-30-combined-orcids.txt
+
+
$ ./ilri/resolve-orcids.py -i /tmp/2021-11-30-combined-orcids.txt -o /tmp/2021-11-30-combined-orcids-names.txt
+
+
$ cat 2021-11-30-fix-orcids.csv
+cg.creator.identifier,correct
+"ADEBOWALE AKANDE: 0000-0002-6521-3272","ADEBOWALE AD AKANDE: 0000-0002-6521-3272"
+"Daniel Ortiz Gonzalo: 0000-0002-5517-1785","Daniel Ortiz-Gonzalo: 0000-0002-5517-1785"
+"FRIDAY ANETOR: 0000-0003-3137-1958","Friday Osemenshan Anetor: 0000-0003-3137-1958"
+"Sander Muilerman: 0000-0001-9103-3294","Sander Muilerman-Rodrigo: 0000-0001-9103-3294"
+$ ./ilri/fix-metadata-values.py -i 2021-11-30-fix-orcids.csv -db dspace -u dspace -p 'fuuu' -f cg.creator.identifier -t 'correct' -m 247
+
+
$ cat 2021-11-30-add-orcids.csv 
+dc.contributor.author,cg.creator.identifier
+"Liaqat, U.W.","Umar Waqas Liaqat: 0000-0001-9027-5232"
+"Liaqat, Umar Waqas","Umar Waqas Liaqat: 0000-0001-9027-5232"
+"Munyaradzi, M.","Munyaradzi Junia Mutenje: 0000-0002-7829-9300"
+"Mutenje, Munyaradzi","Munyaradzi Junia Mutenje: 0000-0002-7829-9300"
+"Rex, William","William Rex: 0000-0003-4979-5257"
+"Shrestha, Shisher","Nirman Shrestha: 0000-0002-0996-8611"
+$ ./ilri/add-orcid-identifiers-csv.py -i 2021-11-30-add-orcids.csv -db dspace -u dspace -p 'fuuu'
+
diff --git a/docs/2021/11/postgres_locks_ALL-week.png b/docs/2021/11/postgres_locks_ALL-week.png new file mode 100644 index 0000000000000000000000000000000000000000..f13302de75b4917210825cce41d8fbbae03e75e6 GIT binary patch literal 13703 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%0D+RV$JNidF#~l2X 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 - + diff --git a/docs/categories/notes/index.html b/docs/categories/notes/index.html index b4abcbdea..b141c76f9 100644 --- a/docs/categories/notes/index.html +++ b/docs/categories/notes/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/categories/notes/page/2/index.html b/docs/categories/notes/page/2/index.html index 6b28fd746..def0716b7 100644 --- a/docs/categories/notes/page/2/index.html +++ b/docs/categories/notes/page/2/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/categories/notes/page/3/index.html b/docs/categories/notes/page/3/index.html index 5092b411e..ad747d0e6 100644 --- a/docs/categories/notes/page/3/index.html +++ b/docs/categories/notes/page/3/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/categories/notes/page/4/index.html b/docs/categories/notes/page/4/index.html index edc7a933e..a9912c3e1 100644 --- a/docs/categories/notes/page/4/index.html +++ b/docs/categories/notes/page/4/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/categories/notes/page/5/index.html b/docs/categories/notes/page/5/index.html index def8bb8ac..d7cc7dd5e 100644 --- a/docs/categories/notes/page/5/index.html +++ b/docs/categories/notes/page/5/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/categories/notes/page/6/index.html b/docs/categories/notes/page/6/index.html index 97ede8877..923f3a23f 100644 --- a/docs/categories/notes/page/6/index.html +++ b/docs/categories/notes/page/6/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/index.html b/docs/index.html index 3bb5f6f58..d8a149899 100644 --- a/docs/index.html +++ b/docs/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/2/index.html b/docs/page/2/index.html index 09a8081cc..e9fb45abe 100644 --- a/docs/page/2/index.html +++ b/docs/page/2/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/3/index.html b/docs/page/3/index.html index a9d3d4e3f..1c59483cd 100644 --- a/docs/page/3/index.html +++ b/docs/page/3/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/4/index.html b/docs/page/4/index.html index dd80e5721..a7cba308c 100644 --- a/docs/page/4/index.html +++ b/docs/page/4/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/5/index.html b/docs/page/5/index.html index 377869fc1..b3b831e42 100644 --- a/docs/page/5/index.html +++ b/docs/page/5/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/6/index.html b/docs/page/6/index.html index 7a1363927..3fc41cf68 100644 --- a/docs/page/6/index.html +++ b/docs/page/6/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/7/index.html b/docs/page/7/index.html index 33f32c40c..59c79f6be 100644 --- a/docs/page/7/index.html +++ b/docs/page/7/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/page/8/index.html b/docs/page/8/index.html index 1d0739275..8951922fb 100644 --- a/docs/page/8/index.html +++ b/docs/page/8/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/index.html b/docs/posts/index.html index c00d3a5f1..fc701c7ae 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/2/index.html b/docs/posts/page/2/index.html index 407591374..fe4cb6c95 100644 --- a/docs/posts/page/2/index.html +++ b/docs/posts/page/2/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/3/index.html b/docs/posts/page/3/index.html index 83e78e205..4b9631971 100644 --- a/docs/posts/page/3/index.html +++ b/docs/posts/page/3/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/4/index.html b/docs/posts/page/4/index.html index ef51dd460..354ba4f3a 100644 --- a/docs/posts/page/4/index.html +++ b/docs/posts/page/4/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/5/index.html b/docs/posts/page/5/index.html index a18f71661..77e905c3d 100644 --- a/docs/posts/page/5/index.html +++ b/docs/posts/page/5/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/6/index.html b/docs/posts/page/6/index.html index 4955ce4ed..1a1194b7c 100644 --- a/docs/posts/page/6/index.html +++ b/docs/posts/page/6/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/7/index.html b/docs/posts/page/7/index.html index f21238442..fa565943f 100644 --- a/docs/posts/page/7/index.html +++ b/docs/posts/page/7/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/posts/page/8/index.html b/docs/posts/page/8/index.html index 4e63e3435..288c1393a 100644 --- a/docs/posts/page/8/index.html +++ b/docs/posts/page/8/index.html @@ -10,7 +10,7 @@ - + diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 6e9482c28..36957bf80 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -3,19 +3,19 @@ xmlns:xhtml="http://www.w3.org/1999/xhtml"> https://alanorth.github.io/cgspace-notes/categories/ - 2021-11-27T12:18:52+02:00 + 2021-11-27T14:37:33+02:00 https://alanorth.github.io/cgspace-notes/ - 2021-11-27T12:18:52+02:00 + 2021-11-27T14:37:33+02:00 https://alanorth.github.io/cgspace-notes/categories/notes/ - 2021-11-27T12:18:52+02:00 + 2021-11-27T14:37:33+02:00 https://alanorth.github.io/cgspace-notes/2021-11/ - 2021-11-27T12:18:52+02:00 + 2021-11-27T14:37:33+02:00 https://alanorth.github.io/cgspace-notes/posts/ - 2021-11-27T12:18:52+02:00 + 2021-11-27T14:37:33+02:00 https://alanorth.github.io/cgspace-notes/2021-10/ 2021-11-01T10:48:13+02:00 diff --git a/static/2021/11/postgres_locks_ALL-week.png b/static/2021/11/postgres_locks_ALL-week.png new file mode 100644 index 0000000000000000000000000000000000000000..f13302de75b4917210825cce41d8fbbae03e75e6 GIT binary patch literal 13703 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%0D+RV$JNidF#~l2X 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