Sakset fra et nyhetsbrev fra UiO:
Nytt arkiv- og saksbehandlingssystem på UiO fra 2026
Valget har falt på systemet WebSak+ fra leverandøren ACOS, som
skal erstatte Elements.
Innføringen er planlagt til våren 2026. Mer informasjon kommer
over sommeren. Her kan du lese
mer: Nytt saksbehandlings- og arkivsystem - For ansatte -
Universitetet i
Oslo
https://www.uio.no/for-ansatte/enhetssider/beskjed/2025/nytt-saksbehandling…
----
Jeg testet nettopp scripts/python/acuator-harvestor.py fra Nikita mot
vår testinstans, og fikk følgende resultat som jeg vet Thomas er
interessert i å se:
Average time per request [7.0 ms], uri [/api/arkivstruktur/foedselsnummer/{systemID}], # requests [110.0], total time [0.77 s]
Average time per request [9.7 ms], uri [/api/arkivstruktur/oppbevaringssted/{systemID}], # requests [100.0], total time [0.97 s]
Average time per request [9.56 ms], uri [/api/arkivstruktur/arkivdel/{systemID}/ny-…
[View More]mappe], # requests [33702.0], total time [322.14 s]
Average time per request [26.42 ms], uri [/api/sakarkiv/saksmappe], # requests [67.0], total time [1.77 s]
Average time per request [7.61 ms], uri [/api/arkivstruktur/mappe/{systemID}], # requests [8077.0], total time [61.43 s]
Average time per request [8.25 ms], uri [/api/arkivstruktur/noekkelord/{systemID}], # requests [847.0], total time [6.99 s]
Average time per request [11.21 ms], uri [/api/arkivstruktur/arkiv/{systemID}], # requests [58.0], total time [0.65 s]
Average time per request [5.07 ms], uri [/api/arkivstruktur/klasse/{systemID}/ny-mappe], # requests [138.0], total time [0.7 s]
Average time per request [3.07 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-merknad], # requests [7975.0], total time [24.45 s]
Average time per request [6.57 ms], uri [/api/arkivstruktur/matrikkel/{systemID}], # requests [108.0], total time [0.71 s]
Average time per request [22.61 ms], uri [/api/sakarkiv/journalpost], # requests [92.0], total time [2.08 s]
Average time per request [2.31 ms], uri [/api/admin/ny-administrativenhet], # requests [13.0], total time [0.03 s]
Average time per request [8.92 ms], uri [/api/arkivstruktur/partenhet/{systemID}], # requests [400.0], total time [3.57 s]
Average time per request [7.83 ms], uri [/api/arkivstruktur/arkivskaper/{systemID}/ny-arkiv], # requests [46.0], total time [0.36 s]
Average time per request [4.29 ms], uri [/api/arkivstruktur/klasse/{systemID}/ny-noekkelord], # requests [84.0], total time [0.36 s]
Average time per request [3.79 ms], uri [/api/arkivstruktur/klasse/{systemID}/ny-klasse], # requests [66.0], total time [0.25 s]
Average time per request [7.27 ms], uri [/api/metadata/virksomhetsspesifikkeMetadata], # requests [22.0], total time [0.16 s]
Average time per request [38.82 ms], uri [/api/arkivstruktur/arkiv], # requests [17.0], total time [0.66 s]
Average time per request [6.18 ms], uri [/], # requests [272.0], total time [1.68 s]
Average time per request [6.57 ms], uri [/api/arkivstruktur/dnummer/{systemID}], # requests [108.0], total time [0.71 s]
Average time per request [5.78 ms], uri [/api/arkivstruktur/dokumentobjekt], # requests [1831.0], total time [10.58 s]
Average time per request [9.91 ms], uri [/api/arkivstruktur/arkivdel/{systemID}], # requests [112.0], total time [1.11 s]
Average time per request [3.03 ms], uri [/api/metadata/ny-**], # requests [512.0], total time [1.55 s]
Average time per request [4.95 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-posisjon], # requests [7975.0], total time [39.47 s]
Average time per request [3.85 ms], uri [/api/admin/administrativenhet/], # requests [13.0], total time [0.05 s]
Average time per request [716.49 ms], uri [/api/arkivstruktur/registrering], # requests [1340.0], total time [960.1 s]
Average time per request [6.15 ms], uri [/api/arkivstruktur/arkivskaper], # requests [13.0], total time [0.08 s]
Average time per request [3.03 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-foedselsnummer], # requests [7975.0], total time [24.15 s]
Average time per request [3.06 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-oppbevaringssted], # requests [7993.0], total time [24.42 s]
Average time per request [6.58 ms], uri [/api/arkivstruktur/enhetsidentifikator/{systemID}], # requests [117.0], total time [0.77 s]
Average time per request [7.2 ms], uri [/api/arkivstruktur/merknad/{systemID}], # requests [50.0], total time [0.36 s]
Average time per request [6.85 ms], uri [/api/arkivstruktur/posisjon/{systemID}], # requests [108.0], total time [0.74 s]
Average time per request [11.54 ms], uri [/api/arkivstruktur/arkivdel], # requests [13.0], total time [0.15 s]
Average time per request [8.33 ms], uri [/api/arkivstruktur/arkiv/{systemID}/ny-arkivdel], # requests [72.0], total time [0.6 s]
Average time per request [3.0 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-dnummer], # requests [7975.0], total time [23.92 s]
Average time per request [6.15 ms], uri [/api/admin/system], # requests [13.0], total time [0.08 s]
Average time per request [2.91 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-matrikkel], # requests [110891.0], total time [322.3 s]
Average time per request [5.42 ms], uri [/api/loggingogsporing/hendelseslogg], # requests [245929.0], total time [1333.39 s]
Average time per request [4.62 ms], uri [/api/admin/administrativenhet/{systemID}], # requests [13.0], total time [0.06 s]
Average time per request [4.66 ms], uri [/api/metadata/ny-virksomhetsspesifikkeMetadata], # requests [58.0], total time [0.27 s]
Average time per request [2.91 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-enhetsidentifikator], # requests [110909.0], total time [322.66 s]
Average time per request [6.67 ms], uri [/api/arkivstruktur/plan/{systemID}], # requests [108.0], total time [0.72 s]
Average time per request [8.6 ms], uri [/api/sakarkiv/presedens/{systemID}], # requests [50.0], total time [0.43 s]
Average time per request [3.12 ms], uri [/api/sakarkiv/saksmappe/{systemID}/ny-presedens], # requests [589.0], total time [1.84 s]
Average time per request [3.7 ms], uri [/api/arkivstruktur/klassifikasjonssystem/{systemID}/ny-klasse], # requests [54.0], total time [0.2 s]
Average time per request [4.1 ms], uri [/api/admin/bruker/{systemID}], # requests [39.0], total time [0.16 s]
Average time per request [7.9 ms], uri [/api/arkivstruktur/klassifikasjonssystem/{systemID}], # requests [62.0], total time [0.49 s]
Average time per request [2.41 ms], uri [/api/metadata], # requests [29.0], total time [0.07 s]
Average time per request [3.94 ms], uri [/api/metadata/*/{kode}], # requests [5390.0], total time [21.21 s]
Average time per request [5.18 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-posisjon], # requests [110891.0], total time [574.41 s]
Average time per request [7.56 ms], uri [/api/arkivstruktur/registrering/{systemID}], # requests [110858.0], total time [838.26 s]
Average time per request [9.03 ms], uri [/api/arkivstruktur/partperson/{systemID}], # requests [400.0], total time [3.61 s]
Average time per request [4.6 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-korrespondansepartenhet], # requests [110999.0], total time [511.09 s]
Average time per request [3.06 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-noekkelord], # requests [7993.0], total time [24.47 s]
Average time per request [5.02 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-partenhet], # requests [8101.0], total time [40.69 s]
Average time per request [9.81 ms], uri [/api/sakarkiv/arkivnotat/{systemID}], # requests [54.0], total time [0.53 s]
Average time per request [7.04 ms], uri [/api/arkivstruktur/bygning/{systemID}], # requests [108.0], total time [0.76 s]
Average time per request [6.15 ms], uri [/api/sakarkiv/presedens], # requests [13.0], total time [0.08 s]
Average time per request [9.85 ms], uri [/api/sakarkiv/saksmappe/{systemID}/ny-journalpost], # requests [1701.0], total time [16.76 s]
Average time per request [5.01 ms], uri [/api/metadata/**], # requests [891.0], total time [4.46 s]
Average time per request [27.26 ms], uri [/api/arkivstruktur/dokumentbeskrivelse], # requests [124.0], total time [3.38 s]
Average time per request [7.69 ms], uri [/api/sakarkiv/dokumentflyt], # requests [13.0], total time [0.1 s]
Average time per request [3.01 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-bygning], # requests [7975.0], total time [24.04 s]
Average time per request [4.86 ms], uri [/api/arkivstruktur/arkivdel/{systemID}/ny-klassifikasjonssystem], # requests [70.0], total time [0.34 s]
Average time per request [2.92 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-foedselsnummer], # requests [110895.0], total time [323.55 s]
Average time per request [2.31 ms], uri [/api/admin/ny-bruker], # requests [13.0], total time [0.03 s]
Average time per request [5.41 ms], uri [/api/arkivstruktur/klasse], # requests [61.0], total time [0.33 s]
Average time per request [6.34 ms], uri [/**], # requests [9120.0], total time [57.78 s]
Average time per request [6.67 ms], uri [/api/loggingogsporing/endringslogg], # requests [21.0], total time [0.14 s]
Average time per request [3.12 ms], uri [/api/sakarkiv/saksmappe/{systemID}/ny-arkivnotat], # requests [589.0], total time [1.84 s]
Average time per request [7.78 ms], uri [/api/arkivstruktur/klasse/{systemID}], # requests [108.0], total time [0.84 s]
Average time per request [6.15 ms], uri [/api/arkivstruktur/klassifikasjonssystem], # requests [13.0], total time [0.08 s]
Average time per request [7.17 ms], uri [/api/arkivstruktur/ny-arkiv], # requests [53.0], total time [0.38 s]
Average time per request [152.85 ms], uri [/api/arkivstruktur/mappe], # requests [904.0], total time [138.18 s]
Average time per request [3.13 ms], uri [/api/sakarkiv/journalpost/{systemID}/ny-avskrivning], # requests [613.0], total time [1.92 s]
Average time per request [3.07 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-noekkelord], # requests [112003.0], total time [343.65 s]
Average time per request [3.0 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-plan], # requests [7975.0], total time [23.93 s]
Average time per request [2.99 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-enhetsidentifikator], # requests [7975.0], total time [23.83 s]
Average time per request [2.91 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-plan], # requests [110891.0], total time [322.33 s]
Average time per request [14.62 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-registrering], # requests [573737.0], total time [8385.26 s]
Average time per request [6.43 ms], uri [/api/sakarkiv/arkivnotat/{systemID}/ny-dokumentflyt], # requests [42.0], total time [0.27 s]
Average time per request [7.82 ms], uri [/api/sakarkiv/saksmappe/{systemID}], # requests [601.0], total time [4.7 s]
Average time per request [3.08 ms], uri [/api/admin], # requests [13.0], total time [0.04 s]
Average time per request [2.93 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-dnummer], # requests [110891.0], total time [325.24 s]
Average time per request [6.15 ms], uri [/api/admin/administrativenhet], # requests [13.0], total time [0.08 s]
Average time per request [5.38 ms], uri [/api/admin/bruker], # requests [13.0], total time [0.07 s]
Average time per request [4.97 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-partperson], # requests [8101.0], total time [40.24 s]
Average time per request [9.53 ms], uri [/api/sakarkiv/journalpost/{systemID}], # requests [655.0], total time [6.24 s]
Average time per request [9.5 ms], uri [/api/arkivstruktur/ny-arkivskaper], # requests [20.0], total time [0.19 s]
Average time per request [2.31 ms], uri [/api/loggingogsporing], # requests [13.0], total time [0.03 s]
Average time per request [2.93 ms], uri [/api/arkivstruktur/registrering/{systemID}/ny-bygning], # requests [110891.0], total time [324.91 s]
Average time per request [9.25 ms], uri [/api/arkivstruktur/korrespondansepartenhet/{systemID}], # requests [346.0], total time [3.2 s]
Average time per request [2.35 ms], uri [/api/sakarkiv], # requests [17.0], total time [0.04 s]
Average time per request [9.31 ms], uri [/api/arkivstruktur/arkivskaper/{systemID}], # requests [58.0], total time [0.54 s]
Average time per request [7.58 ms], uri [/api/sakarkiv/dokumentflyt/{systemID}], # requests [62.0], total time [0.47 s]
Average time per request [7.4 ms], uri [/api/sakarkiv/avskrivning/{systemID}], # requests [50.0], total time [0.37 s]
Average time per request [2.22 ms], uri [/api/arkivstruktur], # requests [99.0], total time [0.22 s]
Average time per request [8.94 ms], uri [/api/arkivstruktur/klasse/{systemID}/ny-saksmappe], # requests [66.0], total time [0.59 s]
Average time per request [4.07 ms], uri [UNKNOWN], # requests [127402.0], total time [518.16 s]
Average time per request [3.01 ms], uri [/api/arkivstruktur/mappe/{systemID}/ny-matrikkel], # requests [7975.0], total time [24.01 s]
HTTP Metrics Results:
COUNT: 2225024.0
TOTAL_TIME: 16439.039875623006
MAX: 1.939668538
exception: ['none']
method: ['DELETE', 'OPTIONS', 'POST', 'PUT', 'GET']
error: ['none']
uri: ['/api/arkivstruktur/foedselsnummer/{systemID}', '/api/arkivstruktur/oppbevaringssted/{systemID}', '/api/arkivstruktur/arkivdel/{systemID}/ny-mappe', '/api/sakarkiv/saksmappe', '/api/arkivstruktur/mappe/{systemID}', '/api/arkivstruktur/noekkelord/{systemID}', '/api/arkivstruktur/arkiv/{systemID}', '/api/arkivstruktur/klasse/{systemID}/ny-mappe', '/api/arkivstruktur/mappe/{systemID}/ny-merknad', '/api/arkivstruktur/matrikkel/{systemID}', '/api/sakarkiv/journalpost', '/api/admin/ny-administrativenhet', '/api/arkivstruktur/partenhet/{systemID}', '/api/arkivstruktur/arkivskaper/{systemID}/ny-arkiv', '/api/arkivstruktur/klasse/{systemID}/ny-noekkelord', '/api/arkivstruktur/klasse/{systemID}/ny-klasse', '/api/metadata/virksomhetsspesifikkeMetadata', '/api/arkivstruktur/arkiv', '/', '/api/arkivstruktur/dnummer/{systemID}', '/api/arkivstruktur/dokumentobjekt', '/api/arkivstruktur/arkivdel/{systemID}', '/api/metadata/ny-**', '/api/arkivstruktur/mappe/{systemID}/ny-posisjon', '/api/admin/administrativenhet/', '/api/arkivstruktur/registrering', '/api/arkivstruktur/arkivskaper', '/api/arkivstruktur/mappe/{systemID}/ny-foedselsnummer', '/api/arkivstruktur/mappe/{systemID}/ny-oppbevaringssted', '/api/arkivstruktur/enhetsidentifikator/{systemID}', '/api/arkivstruktur/merknad/{systemID}', '/api/arkivstruktur/posisjon/{systemID}', '/api/arkivstruktur/arkivdel', '/api/arkivstruktur/arkiv/{systemID}/ny-arkivdel', '/api/arkivstruktur/mappe/{systemID}/ny-dnummer', '/api/admin/system', '/api/arkivstruktur/registrering/{systemID}/ny-matrikkel', '/api/loggingogsporing/hendelseslogg', '/api/admin/administrativenhet/{systemID}', '/api/metadata/ny-virksomhetsspesifikkeMetadata', '/api/arkivstruktur/registrering/{systemID}/ny-enhetsidentifikator', '/api/arkivstruktur/plan/{systemID}', '/api/sakarkiv/presedens/{systemID}', '/api/sakarkiv/saksmappe/{systemID}/ny-presedens', '/api/arkivstruktur/klassifikasjonssystem/{systemID}/ny-klasse', '/api/admin/bruker/{systemID}', '/api/arkivstruktur/klassifikasjonssystem/{systemID}', '/api/metadata', '/api/metadata/*/{kode}', '/api/arkivstruktur/registrering/{systemID}/ny-posisjon', '/api/arkivstruktur/registrering/{systemID}', '/api/arkivstruktur/partperson/{systemID}', '/api/arkivstruktur/registrering/{systemID}/ny-korrespondansepartenhet', '/api/arkivstruktur/mappe/{systemID}/ny-noekkelord', '/api/arkivstruktur/mappe/{systemID}/ny-partenhet', '/api/sakarkiv/arkivnotat/{systemID}', '/api/arkivstruktur/bygning/{systemID}', '/api/sakarkiv/presedens', '/api/sakarkiv/saksmappe/{systemID}/ny-journalpost', '/api/metadata/**', '/api/arkivstruktur/dokumentbeskrivelse', '/api/sakarkiv/dokumentflyt', '/api/arkivstruktur/mappe/{systemID}/ny-bygning', '/api/arkivstruktur/arkivdel/{systemID}/ny-klassifikasjonssystem', '/api/arkivstruktur/registrering/{systemID}/ny-foedselsnummer', '/api/admin/ny-bruker', '/api/arkivstruktur/klasse', '/**', '/api/loggingogsporing/endringslogg', '/api/sakarkiv/saksmappe/{systemID}/ny-arkivnotat', '/api/arkivstruktur/klasse/{systemID}', '/api/arkivstruktur/klassifikasjonssystem', '/api/arkivstruktur/ny-arkiv', '/api/arkivstruktur/mappe', '/api/sakarkiv/journalpost/{systemID}/ny-avskrivning', '/api/arkivstruktur/registrering/{systemID}/ny-noekkelord', '/api/arkivstruktur/mappe/{systemID}/ny-plan', '/api/arkivstruktur/mappe/{systemID}/ny-enhetsidentifikator', '/api/arkivstruktur/registrering/{systemID}/ny-plan', '/api/arkivstruktur/mappe/{systemID}/ny-registrering', '/api/sakarkiv/arkivnotat/{systemID}/ny-dokumentflyt', '/api/sakarkiv/saksmappe/{systemID}', '/api/admin', '/api/arkivstruktur/registrering/{systemID}/ny-dnummer', '/api/admin/administrativenhet', '/api/admin/bruker', '/api/arkivstruktur/mappe/{systemID}/ny-partperson', '/api/sakarkiv/journalpost/{systemID}', '/api/arkivstruktur/ny-arkivskaper', '/api/loggingogsporing', '/api/arkivstruktur/registrering/{systemID}/ny-bygning', '/api/arkivstruktur/korrespondansepartenhet/{systemID}', '/api/sakarkiv', '/api/arkivstruktur/arkivskaper/{systemID}', '/api/sakarkiv/dokumentflyt/{systemID}', '/api/sakarkiv/avskrivning/{systemID}', '/api/arkivstruktur', '/api/arkivstruktur/klasse/{systemID}/ny-saksmappe', 'UNKNOWN', '/api/arkivstruktur/mappe/{systemID}/ny-matrikkel']
outcome: ['CLIENT_ERROR', 'SUCCESS', 'SERVER_ERROR']
status: ['200', '201', '400', '401', '500', '204', '404']
--
Vennlig hilsen
Petter Reinholdtsen
[View Less]
I just tested the following SQL statement on our test installation:
SELECT calls,mean_exec_time,query FROM pg_stat_statements WHERE
userid = 'nikita_noark5_test_user'::regrole AND mean_exec_time > 300
ORDER BY calls DESC;
I got the following two queries:
708 | 563.1086918968934 | select re1_0.system_id,re1_1.dtype,re1_1.created_by,re1_1.created_date,re1_1.last_modified_by,re1_1.last_modified_date,re1_1.organisation,re1_1.version,re1_0.archived_by,re1_0.archived_date,re1_0.…
[View More]description,re1_0.document_medium_code,re1_0.document_medium_code_name,re1_0.public_title,re1_0.record_id,re1_0.record_class_id,re1_0.record_classified_id,re1_0.record_disposal_id,re1_0.record_file_id,re1_0.record_screening_id,re1_0.record_series_id,re1_0.title,re1_2.document_date,re1_2.due_date,re1_2.freedom_assessment_date,re1_2.loaned_to,re1_2.loaned_date,re1_2.number_of_attachments,re1_2.received_date,re1_2.sent_date,re1_3.document_date,re1_3.due_date,re1_3.freedom_assessment_date,re1_3.loaned_to,re1_3.loaned_date,re1_3.number_of_attachments,re1_3.received_date,re1_3.record_date,re1_3.record_sequence_number,re1_3.record_year,re1_3.records_management_unit,re1_3.system_id,re1_3.registry_entry_number,re1_3.registry_entry_status_code,re1_3.registry_entry_status_code_name,re1_3.registry_entry_type_code,re1_3.registry_entry_type_code_name,re1_3.sent_date,re1_4.administrative_unit,re1_4.case_handler,re1_4.meeting_case_type,re1_4.meeting_record_status,re1_4.meeting_record_type,re1_4.reference_from_meeting_registration_system_id,re1_4.reference_to_meeting_registration_system_id from as_record_entity re1_0 join system_id_entity re1_1 on re1_0.system_id=re1_1.system_id left join sa_record_note re1_2 on re1_0.system_id=re1_2.system_id left join sa_registry_entry re1_3 on re1_0.system_id=re1_3.system_id left join mu_meeting_record re1_4 on re1_0.system_id=re1_4.system_id where re1_1.organisation=$1 offset $2 rows fetch first $3 rows only
20 | 603.93798345 | select re1_0.system_id,re1_1.dtype,re1_1.created_by,re1_1.created_date,re1_1.last_modified_by,re1_1.last_modified_date,re1_1.organisation,re1_1.version,re1_0.archived_by,re1_0.archived_date,re1_0.description,re1_0.document_medium_code,re1_0.document_medium_code_name,re1_0.public_title,re1_0.record_id,re1_0.record_class_id,re1_0.record_classified_id,re1_0.record_disposal_id,re1_0.record_file_id,re1_0.record_screening_id,re1_0.record_series_id,re1_0.title,re1_2.document_date,re1_2.due_date,re1_2.freedom_assessment_date,re1_2.loaned_to,re1_2.loaned_date,re1_2.number_of_attachments,re1_2.received_date,re1_2.sent_date,re1_3.document_date,re1_3.due_date,re1_3.freedom_assessment_date,re1_3.loaned_to,re1_3.loaned_date,re1_3.number_of_attachments,re1_3.received_date,re1_3.record_date,re1_3.record_sequence_number,re1_3.record_year,re1_3.records_management_unit,re1_3.system_id,re1_3.registry_entry_number,re1_3.registry_entry_status_code,re1_3.registry_entry_status_code_name,re1_3.registry_entry_type_code,re1_3.registry_entry_type_code_name,re1_3.sent_date,re1_4.administrative_unit,re1_4.case_handler,re1_4.meeting_case_type,re1_4.meeting_record_status,re1_4.meeting_record_type,re1_4.reference_from_meeting_registration_system_id,re1_4.reference_to_meeting_registration_system_id from as_record_entity re1_0 join system_id_entity re1_1 on re1_0.system_id=re1_1.system_id left join sa_record_note re1_2 on re1_0.system_id=re1_2.system_id left join sa_registry_entry re1_3 on re1_0.system_id=re1_3.system_id left join mu_meeting_record re1_4 on re1_0.system_id=re1_4.system_id where re1_1.organisation=$1 offset $2 rows fetch first $3 rows only
Running explain with $1 as '', $2 ans 0 and $3 as 10, I got this for the
first one:
QUERY PLAN
----------------------------------------------------------------------
Limit (cost=1000.42..64154.41 rows=1 width=6638)
-> Nested Loop Left Join (cost=1000.42..64154.41 rows=1 width=6638)
Join Filter: (re1_0.system_id = re1_4.system_id)
-> Nested Loop Left Join (cost=1000.42..64154.39 rows=1 width=4026)
Join Filter: (re1_0.system_id = re1_3.system_id)
-> Nested Loop Left Join (cost=1000.42..64132.00 rows=1 width=2870)
Join Filter: (re1_0.system_id = re1_2.system_id)
-> Nested Loop (cost=1000.42..64130.95 rows=1 width=2302)
-> Gather (cost=1000.00..64126.51 rows=1 width=64)
Workers Planned: 2
-> Parallel Seq Scan on system_id_entity re1_1 (cost=0.00..63126.41 rows=1 width=64)
Filter: ((organisation)::text = ''::text)
-> Index Scan using as_record_entity_pkey on as_record_entity re1_0 (cost=0.42..4.44 rows=1 width=2254)
Index Cond: (system_id = re1_1.system_id)
-> Seq Scan on sa_record_note re1_2 (cost=0.00..1.02 rows=2 width=584)
-> Seq Scan on sa_registry_entry re1_3 (cost=0.00..15.51 rows=551 width=1156)
-> Seq Scan on mu_meeting_record re1_4 (cost=0.00..0.00 rows=1 width=2628)
(17 rows)
This is the second one.
QUERY PLAN
-----------------------------------------------------------------------
Limit (cost=1000.42..64154.41 rows=1 width=6638)
-> Nested Loop Left Join (cost=1000.42..64154.41 rows=1 width=6638)
Join Filter: (re1_0.system_id = re1_4.system_id)
-> Nested Loop Left Join (cost=1000.42..64154.39 rows=1 width=4026)
Join Filter: (re1_0.system_id = re1_3.system_id)
-> Nested Loop Left Join (cost=1000.42..64132.00 rows=1 width=2870)
Join Filter: (re1_0.system_id = re1_2.system_id)
-> Nested Loop (cost=1000.42..64130.95 rows=1 width=2302)
-> Gather (cost=1000.00..64126.51 rows=1 width=64)
Workers Planned: 2
-> Parallel Seq Scan on system_id_entity re1_1 (cost=0.00..63126.41 rows=1 width=64)
Filter: ((organisation)::text = ''::text)
-> Index Scan using as_record_entity_pkey on as_record_entity re1_0 (cost=0.42..4.44 rows=1 width=2254)
Index Cond: (system_id = re1_1.system_id)
-> Seq Scan on sa_record_note re1_2 (cost=0.00..1.02 rows=2 width=584)
-> Seq Scan on sa_registry_entry re1_3 (cost=0.00..15.51 rows=551 width=1156)
-> Seq Scan on mu_meeting_record re1_4 (cost=0.00..0.00 rows=1 width=2628)
(17 rows)
I doubt these are the most important queries to optimize, just wanted to
share the finding.
--
Happy hacking
Petter Reinholdtsen
[View Less]
We experienced what might be state being saved in nikita between requests recently. After an exception was thrown due to a bad payload, the returned description was being used in a later request. It is difficult to recreate this issue, but if there is a problem, it is the type of problem that only begins to manifest itself when testing under load. The chances of this being a JVM issue or hardware issue is not something I am willing to entertain, so I assume this is a nikita thing.
We examined …
[View More]the code to see if there was an obvious culprit. The description is stored in NoarkDeserializer in:
protected StringBuilder errors = new StringBuilder();
A StringBuilder is not thread safe, but nikita doesn't access data across threads, so I was never concerned with that. I always assumed Jackson created a new instance of the deserializer object for each deserialisation operation of a request. Therefore, I assumed a class variable was safe to use.
I found it difficult to find documentation that confirms that a new instance is created per request, so I asked a chatbot. The chatbot gave me a run around on the topic, so I don't have a clear answer.
I am left thinking that there may or may not be a potential issue that state can exist between requests, if a thread is reused or perhaps if spring is using a pool of deserialisers.
We can try to mitigate a potential problem by making the errors variable a method variable and pass it around where it is needed. Then I am making a change that I am unsure if it is necessary. We haven't experienced this problem before and I cannot recreate it.
So, we can do the following. a) ignore the problem and hope it doesn't come back, b) make a fix to the code to fix a potential issue that may or may not be there.
I think we should be pro-active and go for b).
Thomas
[View Less]
@ole.aamot <https://gitlab.com/ole.aamot> just now <https://gitlab.com/OsloMet-ABI/nikita-noark5-core/-/issues/215#note_2517261…>
Author
Statement Regarding the Nikita Project
I would like to clarify that I am no longer affiliated with the Nikita research project. While I supported its initial goals and lent my name to the effort, I believe it has not delivered on its intended potential. I have therefore decided to step away and focus my time and energy on projects that …
[View More]align more closely with my values, research interests, and standards of quality.
— Ole Aamot
<https://www.aamot.io/software/arkiv/arkiv.html> is a modern, domain-specific, browser-based archiving tool built with HTML5, jQuery, and CSS3. It utilizes the power of WebStorage (localStorage) and IndexedDB that give you unlimited storage within your browser – no server or login required.
💾 Store text entries securely in your browser
⚡ Fast and responsive interface powered by jQuery
📱 Fully responsive and mobile-friendly
🌐 Runs offline – works even without an Internet connection
Ideal for personal notes, research logs, or archiving website-specific data locally and non-centralized archiving following practical Norwegian Archiving Standards.
[View Less]
Spennende jobb-tilbud til en utvikler på 6 måneder +.
---------- Forwarded message ---------
From: Johan Lossius <<johan(a)norway-consulting.no>>
Date: Tue, May 20, 2025 at 1:43 PM
Subject: AI-spesialist med ElasticSearch, Indeksbasert søkemotor og dokumentDB! Oppdrag, 6 mnd. +! Utvikling, løsningsarkitektur
To: Ole Amot <<ole(a)aamotsoftware.com>>
Hei,
For spennende kundeprosjekt søker vi en AI-spesialist som er utvikler og kan utføre løsningsarkitekt-funksjoner.
…
[View More]Kunne dette vært aktuelt for deg eller noen du kjenner til?
Tips i så fall gjerne vedkommende :)
Du skal bygge AI-funksjonalitet på toppen av en søkemotor, basert på ElasticSearch. Dersom du er spesialist på dette fra tilsvarende indeksbasert søkemotor og dokumentdatabase og kompetansen er overførbar, kan det også fungere.
De har egne folk som kan ElasticSearch og det de nå trenger er noen som kan designe løsningen fra et AI-perspektiv for å tilføre verdi og bedre funksjonalitet for deres brukere. For å hjelpe dem raskt og enkelt finne fram til riktig kunnskap som de søker.
Spesifikasjoner konsulentprofil:
Rolle:Utvikler med kompetanse innen løsningsarkitektur
Antall konsulenter:1
Stillingsprosent:Helst 100%. 3 hele dager i løpet av uka minimum kan fungere. Riktig kompetanse er viktigste.
Oppstartsdato:De trenger noen som er tilgjengelig for oppstart ila. de neste par mnd., helst asap
Varighet:6 mnd. +, muligens langsiktig basert på interne prosjekter
Arbeidslokasjon:Oslo og/eller remote.
Onsite/remote:Ideelt sett onsite i Oslo, men riktig kompetanse er det viktigste. Remote kan også fungere.
Senioritet:5+ års erfaring
Språkkrav:Engelsk flytende muntlig og skriftlig er et must. Norsk/skandinavisk er en bonus.
Prosjektbeskrivelse:
De har en stor dokumentdatabase med ElasticSearch teknologi. De har standard søk i dag med referansesøk. De bruker Kubernetes.
De jobber i dag for å vektorisere clusteret.
De har i dag et CMS med forretningsdataen som oppdaterer ElasticSearch med et API som oppdaterer indeksen.
De er interessert i å lage bedre brukeropplevelser og tilføre verdi med AI funksjonaliteten. De er interessert i å se på kundecaser og referanser for tilsvarende prosjekter.
De er interessert i å se på koblingen mellom ML og AI.
De vil bruke AI for å manipulere søkedata og dialog med brukeren som prøver å finne tak det de søker.
Brukerne kan ha behov for et bredt spekter av kunnskap som de måtte søke etter.
Kunden har opplevd at deres brukere kan streve med å finne fram til riktig forretningskunnskap i deres søkebase.
De ønsker dermed å forbedre dette.
AI-funksjonaliteten skal legges på toppen av deres ElasticSearch applikasjon.
Det er ønskelig med en person som kan jobbe sammen med forretningsutviklere, løsningsutviklere, og som skjønner hvilke begrensninger og muligheter de har med teknologien, og hjelpe dem med å stake ut riktig retning.
Teambeskrivelse:
De har et innovasjonsteam. Selve teamet konsulenten vil jobbe med er trolig rundt 2-3 personer. Etter at løsningsarkitekturen er klar og de skal implementere, så vil de involvere utviklere fra resten av fagmiljøet for å implementere løsningen.
Du som konsulent vil også bistå som utvikler for å implementere løsningen.
Arbeidsoppgaver:
Du vil sitte som spesialist på toppen av dette systemet og bistå med å bygge følgende funksjonalitet.
Hjelpe med å hente ut data, få brukerne i riktig retning for info de trenger.
Stikkord: Vektordatabase, semantikk, vanlig tekstsøk for å optimalisere søket, for å jobbe med AI på det.
Trene AI modeller dersom den er på feil spor. Snakke med eksperter på de ulike modellene som den skal bruke for å hente ut info.
Se på temaet fra ulike innfallsvinkler og med ulike modeller for å tilføre best mulig verdi for brukerne.
Ikke alt er spikret i stein hvordan tjenesten skal se ut.
De er åpne for ulike løsninger og muligheter. De ønsker hente ut potensialiset som AI kan tilføre i en slik kontekst.
F.eks. bedre søkefelt, veileder, utvidet chattebot, osv.
Produktivifisere deres løsning ved bruk av AI funksjonalitet.
Kompetansekrav:
- Du må som løsningsarkitekt kunne ta imot input fra brukerhistorier, oversette dette til løsninger på innsiden av en arkitektur for elastic search, dokumentdatabaser og AI. Som konsulent blir du her arkitekten som må sette opp hvordan løsningen skal se ut og fungere.
- Spisskompetanse for hvordan bygge AI tjenester på toppen av en Elasticsearch tech stack med dokumentdatabaser. Kan også fungere med overførbare teknologier.
- Sterk kompetanse innenfor indeksbaserte databaser og søkemotorer.
- Inngående kompetanse om dokumentdatabaser og hvordan jobbe med vektorisert data og transformere dette til forretningsfunksjonaltiet og verdi ved hjelp av AI.
Personlige egenskaper:
Kunne tilegne seg riktig kompetanse og være i stand til å overføre denne kunnskapen til utviklerne og resten av teamet.
Hvorfor er dette et bra prosjekt å ta på seg?
De er et konsern hvor de kommer til å jobbe tett med utviklerne. De er masse forskjellige utviklere. Du vil delta i interessante prosjekter med AI osv.
Motivasjon:Du vil lære mye av kunden. De har en interessant tech stach med moderne teknologi, hvor det meste er automatisert.Du vil få stort rom til å drive nye initiativ framover, med mye kunstneriske frihet, og stor mulighet for å påvirke.
De har en innovasjonsgruppe på konsernnivå, hvor du kan være med å sette retning og fart.
Du blir en utvidet del av denne innovasjonsgruppen, hvor du får tilgang på designere, arkitekter, og alt annet som du trenger for å levere.
Høres dette spennende ut?
Da er det flott om du tar kontakt. Del:
- Din CV (helst i Word)
- Når du tidligst kan begynne inkludert hvor mye kapasitet du har
- Tanker rundt timepris
Ser fram til å høre fra deg!
Johan Lossius
Daglig leder
Tlf.: +47 465 19 838
[View Less]