|
Back
Midas
Rome
Roody
Rootana
|
Midas DAQ System |
Not logged in |
|
|
31 Mar 2022, Stefan Ritt, Suggestion, Maximum ODB size
|
04 Apr 2022, Konstantin Olchanski, Suggestion, Maximum ODB size
|
27 Apr 2023, Marius Koeppel, Suggestion, Maximum ODB size
|
27 Apr 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
27 Apr 2023, Marius Koeppel, Suggestion, Maximum ODB size
|
27 Apr 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
27 Apr 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
28 Apr 2023, Marius Koeppel, Suggestion, Maximum ODB size
|
28 Apr 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
28 Apr 2023, Marius Koeppel, Suggestion, Maximum ODB size
|
28 Apr 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
27 Apr 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
28 Apr 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
09 Jun 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
12 Jun 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
12 Jun 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
13 Jun 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
13 Jun 2023, Marius Koeppel, Suggestion, Maximum ODB size
|
13 Jun 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
13 Jun 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
13 Jun 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
13 Jun 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
13 Jun 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
15 Jun 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
28 Jul 2023, Stefan Ritt, Suggestion, Maximum ODB size
|
09 Aug 2023, Konstantin Olchanski, Suggestion, Maximum ODB size
|
|
Message ID: 2528
Entry time: 12 Jun 2023
In reply to: 2527
Reply to this: 2529
|
Author: |
Konstantin Olchanski |
Topic: |
Suggestion |
Subject: |
Maximum ODB size |
|
|
> > correction: ODB shared memory is saved to .ODB.SHM each time a client stops, this is db_close_database().
>
> The original design of the midas shared memory (back in the 1990's) was that the ODB shared memory file gets
> only saved into the .ODB.SHM when the *last* client exits. This ensures to keep the ODB persistent when the
> shared memory gets deleted. I vaguely remember I put something in like:
>
> db_close_database()
> ...
> destroy_flag = (pheader->num_clients == 0);
>
> if (destroy_flag)
> ss_shm_flush(pheader->name, pdb->shm_adr, pdb->shm_size, pdb->shm_handle);
I remember the same, but I tracked it down in git to the very first commit, and there is no if() there,
odb is saved to .ODB.SHM on every client shutdown, not just the last client. I guess we both misremebered.
What's more, ss_shm_flush() is done while holding the ODB semaphore, so all other midas programs that try to access
odb at the same time (including the mserver) will stall until write() and close() return. at least we do not fsync(),
and there is no waiting until data is committed to physical media.
$ git annotate 3bb04af4d^ src/odb.c
...
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 875) destroy_flag = (pheader->num_clients == 0);
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 876)
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 877) /* flush shared memory to disk */
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 878) ss_flush_shm(pheader->name, pheader, sizeof(DATABASE_HEADER)+2*pheader->data_size);
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 879)
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 880) /* unmap shared memory, delete it if we are the last */
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 881) ss_close_shm(pheader->name, pheader,
ef8320177 (Stefan Ritt 1998-10-08 13:46:02 +0000 882) _database[hDB-1].shm_handle, destroy_flag);
...
K.O. |