From 6ac1ad23e1e0c8fcfdbb25844ace9de3ab7a993b Mon Sep 17 00:00:00 2001 From: Nick Hastings Date: Tue, 19 Sep 2023 08:57:11 +0900 Subject: [PATCH 1/2] Increase MAX_OPEN_RECORDS to increase the max number of hot_links In 2011 the number of hotlinks for the gsc was increased from the default 256 to 2560. See https://elog.nd280.org/elog/GSC/425. Since we are getting more equipment, increase to 4096. General instructions can be found on the midas wiki at. https://daq00.triumf.ca/MidasWiki/index.php/FAQ#Increasing_Number_of_Hot-links When increasing this number the size of two structs will also increase. Midas checks the size of these structs are correct, so updated the check sizes. DATABASE_CLIENT = 64 + 8*MAX_OPEN_ERCORDS default: = 64 + 8*256 = 2112 -> Confirmed in odb.cxx updated: = 64 + 8*4096 = 32832 DATABASE_HEADER = 64 + 64*DATABASE_CLIENT default: = 64 + 64*2112 = 135232 -> Confirmed in odb.cxx updated: = 64 + 64*32832 = 2101312 --- include/midas.h | 2 +- src/odb.cxx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/midas.h b/include/midas.h index ec6b54a1..46d653f4 100644 --- a/include/midas.h +++ b/include/midas.h @@ -273,7 +273,7 @@ class MJsonNode; // forward declaration from mjson.h #define HOST_NAME_LENGTH 256 /**< length of TCP/IP names */ #define MAX_CLIENTS 64 /**< client processes per buf/db */ #define MAX_EVENT_REQUESTS 10 /**< event requests per client */ -#define MAX_OPEN_RECORDS 256 /**< number of open DB records */ +#define MAX_OPEN_RECORDS 4096 /**< number of open DB records */ #define MAX_ODB_PATH 256 /**< length of path in ODB */ #define BANKLIST_MAX 4096 /**< max # of banks in event */ #define STRING_BANKLIST_MAX BANKLIST_MAX * 4 /**< for bk_list() */ diff --git a/src/odb.cxx b/src/odb.cxx index e4e2bd35..bc084612 100644 --- a/src/odb.cxx +++ b/src/odb.cxx @@ -1477,8 +1477,8 @@ static void db_validate_sizes() assert(sizeof(KEY) == 68); assert(sizeof(KEYLIST) == 12); assert(sizeof(OPEN_RECORD) == 8); - assert(sizeof(DATABASE_CLIENT) == 2112); - assert(sizeof(DATABASE_HEADER) == 135232); + assert(sizeof(DATABASE_CLIENT) == 32832); + assert(sizeof(DATABASE_HEADER) == 2101312); assert(sizeof(EVENT_HEADER) == 16); //assert(sizeof(EQUIPMENT_INFO) == 696); has been moved to dynamic checking inside mhttpd.c assert(sizeof(EQUIPMENT_STATS) == 24); -- 2.47.3