From 955b7f60367974f3677177a2a279656afb39491a Mon Sep 17 00:00:00 2001 From: Louise Davies Date: Thu, 28 Nov 2024 15:47:35 +0000 Subject: [PATCH] Add meeting notes for November 34 meeting --- .../2024-meetings/20241128-meeting.md | 158 ++++++++++++++++++ .../esrf_processed_datasets_histogram.png | Bin 0 -> 38673 bytes .../monthly-meetings/2024-meetings/index.md | 2 + 3 files changed, 160 insertions(+) create mode 100644 content/collaboration/communication/monthly-meetings/2024-meetings/20241128-meeting.md create mode 100644 content/collaboration/communication/monthly-meetings/2024-meetings/esrf_processed_datasets_histogram.png diff --git a/content/collaboration/communication/monthly-meetings/2024-meetings/20241128-meeting.md b/content/collaboration/communication/monthly-meetings/2024-meetings/20241128-meeting.md new file mode 100644 index 000000000..5d203df23 --- /dev/null +++ b/content/collaboration/communication/monthly-meetings/2024-meetings/20241128-meeting.md @@ -0,0 +1,158 @@ +--- +title: ICAT Collaboration Meeting - 28th November 2024 +date: 2024-11-28 +chair: Rolf +scribe: Louise/Patrick +--- + +## Attendance + +Attendees: + +- Rolf Krahl +- Louise Davies +- Kirsty Syder +- Marjolaine Bodin +- Kevin Phipps +- Alex de Maria +- Patrick Austin + +## Agenda + +## Site Updates + +### HZB + +Nothing to report + +Working on sample database. Connected to ICAT but not in ICAT. Separate instance but closely tied to ICAT. Developing. Still issue in ICAT that [Investigation <-> Sample relation is 1 to many](https://repo.icatproject.org/site/icat/server/6.0.0/schema.html#Sample). [Need many to many](https://github.com/icatproject/icat.server/issues/231). This is incompatible with our usecase, so will become urgent at some point. + +Alex: What is scope of Sample Database. +Rolf: Link all the Datasets that are related to that Sample. Notebooks. Idea is that there is little hope that some Sample describing schema. Rather, to have information about the sample need to tie the history of the sample creation, characterisation, measurement and other things. For this, one identifier, and manage it. Once you have that, you can mint ... identfiers for the Sample. Do nice things. +Alex: Also interested in extending the metadata of the Sample. Once it is created, there is a lot of information but it does not come to the Facility. Should be prepared before doing the experiment. This is tricky. +Rolf: Hard to get users to do it, but giving the possibility to do it would be the first step . Home institute could register, and use an existing identifier from their home institue, that is the first step. Depends on user communities and home facilities. Maybe they have something there that they can point to the logbooks that they have. Idea is to have the basic infrastuture in place that links to other things. Ideally the logbook from sample creation. +Alex: How do you think we motivate them to do that? Most of the time the users do not care. +Rolf: Aware that this is the tricky part. Very nice things that you need to do, first is make it possible. Next is to... multiple approaches, e.g. make it rewarding. If users are interested they should have the means to do so. Aware this catches only the minority. +Alex: Fear that even if possible you will have around 0 Samples declared. They will not do it. +Rolf: Anticipate that a wide variation of user behaviour. Projects like the rock IT project. Where that they will do that. Discussing in the DAPHNE project. Few, but they will make use of that. Once these users see a benefit, and others see it makes sense, others will follow. Have quite some in house research users, have a much closer relation to them and discuss workflows. They will be an easier catch. Can integrate the whole thing in their lab workflows. Pretty well aware it will not be adopted by all immediately. If you are interested can present it and seee what you think. At the moment in development phase. Similar approach to ICAT+ but in a different direction. Using Postgresql, more than can be captured in Parameters. Every entry in Sample Database corresponds. Two reasons: linking datasets and don't want to re-implement auth - use ICAT for that. Users need ICAT sessionIds. Will get to see everyhting that ICAT lets them, using the Rule system. + +### ESRF + +Last week, ISPYB collab meeting. Interest in some facilities in running SciCAT. Invited SciCAT to talk about their roadmap, to catch up to ICAT features their roadmap takes them to 2029. + +Number of datasets (especially processed). 3x more processed than raw. Too many processed data in the ingest queue, takes hours for data to be ingested & seen in portal. Need to increase number of ingesters +Kevin: is your ingestion single threaded? +Alex: no, multi-threaded. However, not touched in 10 years. Should probably rethink. However, can scale easily by adding more machines, but limit is datafiles in DB. +~1500 Datasets an hour, think can scale by a factor of ~2-3. + +Kevin: SciCAT road map is to get to base ICAT or ICAT+ (& DataPortal)? +ISpyb roadmap - 5 years is to get to the ICAT+/Ipsyb functionality. Needs to include sample tracking, visualisations. A lot of non-core/OOTB ICAT functionality. + +Presentations: +Scicat by Max Novelli: + + +Scicat roadmap by Alberto (MAXIV): + + +ESRF: + + +All presentations: + + +![Processed datasets@ESRF over time](./esrf_processed_datasets_histogram.png) + +### ISIS + +Louise: Santosh on leave. Same as last time. Security updates, Payara migration stuff. + +### DLS + +Had meeting with users for quick wins with DataGateway. 2 main things - single visit download. Single visit is fairly easy as long as restricted to DLS users. + +Patrick: current plan to change datagateway-download-api (was the TopCAT backend) and nothing else (at least at first). Minimal DataGateway (UI) changes. Introduce a queue and queue up visit restore jobs when low loads. +Rolf: Would have a separate component. +Patrick: it's going in the place it's easiest to put it. dg-download-api is centralised, DLS in particular has multiple IDSes so dg-dl-api is the central part. + +## Component Updates + +### icat.server + +Alan is still working on work to containerise & modernisation but still ongoing + +Alex: modTime? Can't be modified ourselves +Kevin: every entity has it, part of entity base class. +Louise: used for audit info +Louise: note, Datafile has datafileModTime etc. which is separate to modTime +Rolf: yeah datafileModTime is for the file metadata + +Alex: yes, in UI want to sort by most recent Sample. Sort by modTime. Also want to sort by raw dataset modTime. +Rolf: Unsure if sorting is a good idea. E.g. database updates, would update all the modTimes. +Patrick: e.g. schema updates would affect things? +Rolf: should rely on startDate/endDate of Dataset. +Alex: problem is it's on the Sample. +Patrick: Could have a sample parameter? +Alex: yes, it's slower... Just need to be careful with modifying the modTime +Louise: It's only a UX thing, so maybe not a concern that the ordering gets wiped? +Alex: but with 1000s of datasets, might never find the most "recent" if ordering is wrong + +Louise: Maybe misremembering - pending schema changes? +Rolf: Yes, originally planned by the end of the year. Suppose it is not realistic. We just need to do that. + +### ids.server + +Nothing + +Alex: we've changed our fork. Created new endpoint. Gets the real location where the datafile is. Location in ICAT is location it was generated. We have multiple restore locations. ISPYB it's useful to know where the file currently is. So created a new endpoint. +Rolf: it depends on your plugin. Plugin processes the location attribute, and determines how to access that file. +Alex: current IDS endpoint tells you the status (e.g. ONLINE), but not the location. So that's what new endpoint does. +Rolf: IDS doesn't know where the location is +Alex: our IDS plugin knows where to find the file +Rolf: exactly, the plugin knows not the IDS +Alex: Have implemented new endpoint that requests the plugin where it actually is. Goes to the plugin and asks. Plugin responds with the current location of the file or Dataset. +K: To do that, do you just have N locations on disk and look for them and if not their on tape? It can't look in ICAT because it [the information] is not there. +Alex: Yes, exactly. For datafile id, if I get an empty array, it's archived. Otherwise, array with locations (it can be in multiple locations). +Rolf: TBH still a bit puzzled. Meaning of the location is only something the plugin knows. IDS has no clue. +Alex: When you mean location you mean column of the Datafile. We say this is just an identifier. What this endpoint retrieves is the absolute path. +Rolf: You put meaning into that. It has something to +Patrick: it's not dealing with the df location. Give a datafile ID, and get the physical path. +Alex: yes. +Rolf: Standard ids queries DB for all the information, gives location to the plugin and makes sesne of it. +Patrick: apply same logic as normal IDS, pass info to plugin, plugin applies its internal login and returns the physical path + +Alex showed an example of the config + +Alex: Key point: there are 3 possible locations, e.g. a Globus for public data. Emborgoed data that belongs to the user goes somewhere else. Depending on the kind it may end up in muleiple areas (and therefore, have multiple physical paths) +Louise: Diamond also has multiple things, but is done in different ways. +Kevin: Similar problem, there are three places where Diamond's data could be. Would be nice to (if it exists on disk) move it between disk ednpoinds as we always go to tape. IDS per restore mechanism. Can push to Globus, or DLS, but once it's there we can't go get it. Maybe we could do something similar. + +Alex: No magic - instead of "isOnline" just return that path. + +Kevin: Are all these filesystems mounted? We don't have this. Some are in DLS and some are in SCD. We could benefit from something like this. + +Example of the query: + +```text +https://ids.esrf.fr/ids/path?sessionId=XXX&datasetIds=187132537&isonline=True + +["/data/id10b/inhouse/user17.2/scoppola/data"] +``` + +and: + +```text +https://ids.esrf.fr/ids/path?sessionId=XXXX&datasetIds=187132537 + +["/data/visitor/sc4680/id10/restored_dataset/_datasetId_187132537","/data/projects/open-datasets/sc4680/id10/Phospholipidic bilayer at fluorocarbon oil - water interface_High energy X-ray reflectivity at lqiuid-liquid interface","/data/projects/open-datasets/data/id10b/inhouse/user172/scoppola/data","/data/icat/main/187132537"] +``` + +### python-icat + +Another release in December. Minor addition. Custom method for restoring data from IDS. Triggers a restore & waits for the restore to complete. + +## AOB + +### December meeting + +Cancel it, Kevin to set up meeting series for next year. diff --git a/content/collaboration/communication/monthly-meetings/2024-meetings/esrf_processed_datasets_histogram.png b/content/collaboration/communication/monthly-meetings/2024-meetings/esrf_processed_datasets_histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..b56e31e612f41a1ffb9f507694b2ba4fc8eeb38e GIT binary patch literal 38673 zcmeFaXIPbKwk^6W%TUHLp(26-3`7+WMFdMrbcv|s3I0oY<)tS@rH)oo-*ztcqTkK{k&cwrErtTm3^Dn3Ot64A@^N-R0 zri4j_8saavS?*P}R4~)Gv^jQ0k707m^7JV)%TtEOS6SZn=&sj7BUkG!!tQr8f{&^hb{JUS=q;Cj^(s1d-nmBUj&)7v&o{Ae2$`8W<>|=S zw@(%vYMQ%OwhgAlq@I!NAGRpk8F06YL#NWQp6hnisjahd>3GD+Z|%36e9G9xoQWZz z$I> zgEod2_wKOixVL8QT2YIp*Y@H!vLikW32COpJx|+eQeE@*!X?sA;CLjaw7o*mw8)_wUzCbTZC%X>rKr zzwz4<8Wt9|h3n|3QsXO6gT${akXsHnJjikIhLZ>3Iecac=2QF(;8T~FBK zQ&kTyUi^7ye~pD$ZC-k3R-}syL)KqH4R@z_Y1WdmFuAp<>FIo{SN~>~H5h_V=_zG* z`X*VotMA>rcfrvqjE-$T@iQ1vzwg@Ra>!pIygX86X_eE5oGB*tSz1%3OtG=m-M~!H zFHCeEcXAy18rpBSA!TY`XT1<}*4(+CzP|4T0;KGE4BS?T9nw!wTeR+AakxUL$Gv+| z0veCMe0Xx2V-oSZD}&KX^sZWC!( z8WOxkpTX$Z_p>U4p?b9e^%IUCKmNI`Eo#00*@w@a1T|Cc zC)Yb^^tM)dySln+YH9U;dp6&=qb4=&OyhwEL&jpOi;9XWqtp@(*bGE3eD?i1*1}2wgs2;NHp}2A1gC6lVjydtG>1>-VTl)YQ~0yZ_r% zSsxMRQXy@A>w7fi$)>fRKYo1hy|JM6);`X+CBZU0;qQvts~ZZu1Qa5bqd#|a2x3>Q z-FIU@i>CX_7Xz!dcXDH6V`t8sVO_a$MLpTnKQ}tJYUlRchrCN~L!;pYXVSTcOQfApeEiir(jo z4!^|s&6_t5d(&sAzcV%{h}$*od{NQ|>7Oc{1;rYolj~UAbJ<1qYo%FkeDoM!KWp}E zK1+wry3ASg=c^`OP;X1QjIWrPV0^&&%<5|zC1R&PDNLx& zQ&Uo2A~^VoTb0bo9R$6mi=1!0q|+S9H5+T-JWRQZ(8;4U6^*J-K)aFa!huTRjab&Xm90Eldsw5&z}`P z4`OK#wIviOMk))GN2w{yn8#5(K3YF+h&ic#bm9sY1rHMuLV5rGKOURa3+~&u@6yGK z9s_k-goVp9Y%PL=g6Qkxlak6G?71T1G;((34(o&6%|+QCd%wO|wv>ejW@JdLlycGxa2`t) z)XoSyou}!uU4w6sybt3rF7)T%^NFsgw$o)8xQq-6>|`} zz5Z|o*2w3^#^CBC;}su0Ekzydx(me`+uHcKxVWaxn8CMmr&eoaY~@gIYm#|`bfK?U z?7OVBYu1Q34q5K(Dc)oE<-rw-MSJ({GsYsh=I&m3`>y;RPeiC=fv zKPoX%#PNInda+)$#dpNa{I#71_3jqxE5&H4VYwAQxiBNi;O!d6-f|W7G|TV>BB`mV z8%0DEzkdC?*GW)}<>M1Ecg5EItjlwjpOI0B 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
3!8gN&od{{SHKrbl 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 Knbf0tzx@~d?BJLH literal 0 HcmV?d00001 diff --git a/content/collaboration/communication/monthly-meetings/2024-meetings/index.md b/content/collaboration/communication/monthly-meetings/2024-meetings/index.md index 12c0c9268..a0a52c43e 100644 --- a/content/collaboration/communication/monthly-meetings/2024-meetings/index.md +++ b/content/collaboration/communication/monthly-meetings/2024-meetings/index.md @@ -23,3 +23,5 @@ title: 2024 Meetings [3rd October 2024](/collaboration/communication/monthly-meetings/2024-meetings/20241003-meeting) [31st October 2024](/collaboration/communication/monthly-meetings/2024-meetings/20241031-meeting) + +[28th November 2024](/collaboration/communication/monthly-meetings/2024-meetings/20241128-meeting)