Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleResponse body
collapsetrue
{
  "records": [
    {
      "id": "c56b70ce-4ef6-47ef-8bc3-c470bafa0b8c",
      "externalIdsHolder": {
        "authorityId": "b9a5f035-de63-4e2c-92c2-07240c89b817"
      },
      "recordType": "MARC_AUTHORITY",
      "recordState": "ACTUAL",
      "parsedRecord": {
        "id": "c9db5d7a-e1d4-11e8-9f32-f2801f1b9fd1",
        "content": {
          "fields": [
            {
              "010": {
                "ind1": " ",
                "ind2": " ",
                "subfields": [
                  {
                    "a": "2001000234"
                  }
                ]
              }
            },
            {
              "100": {
                "ind1": "/",
                "ind2": "/",
                "subfields": [
                  {
                    "a": "Mozart, Wolfgang Amadeus"
                  },
                  {
                    "d": "1756-1791"
                  }
                ]
              }
            },
            {
              "110": {
                "ind1": "1",
                "ind2": "0",
                "subfields": [
                  {
                    "a": "Works"
                  }
                ]
              }
            }
          ],
          "leader": "01706ccm a2200361   4500"
        }
      }
    }
  ],
  "totalRecords": 1
}


Performance

Considerations

  1. Using mod-search for searching by naturalId instead of just doing a search in mod-source-record-storage has to decrease response time when the number of records in the system is more than 1M. (Using mod-search will be needed for possible future requirements to have automated linking not only by $0 but by some other data)
  2. Disabling the linked instances counting for the mod-search authority request have to decrease the time of response.
  3. Having only required fields in the mod-source-record-storage response will decrease the size of data that has to be transferred via HTTP. The necessity of this should be tested to define if such processing will decrease performance. 2 options there: get the record as jsonb from the marc_records table and retain only needed fields or construct a record field-by-field from the marc_indexers partitioned table.
  4. Using mod-search and mod-source-record-storage bulk endpoints will decrease response time.

Testing

Performance testing has to be done on the environment with:

  • > 1M authority records
  • > 1M MARC-based instance records
  • Prepared MARC bib records that have >50 fields that are applicable for linking and all these fields should have $0 values matched to existing in the system authorities..

Tests are needed for:

  • 1 request/sec
  • 10 requests/sec
  • 100 requests/sec
  • 1000 requests/sec

Based on testing results some performance improvements could be suggested if it will be required.