z / OS C / C ++ fseeko очень медленный для многотомных наборов данных - PullRequest
1 голос
/ 09 мая 2020

Вызов fseeko занимает много секунд в многотомном наборе данных, например:

stream=fopen("//'A.B.C'", "rb,type=record");
fseeko(stream, 40000, 0);

Это занимает более 8 секунд. Как отмечено в комментариях, в журнале зарегистрировано несколько APAR с описанием проблемы:

https://www.ibm.com/support/pages/apar/PK5078 https://www.ibm.com/support/pages/apar/PQ94363

Вопрос в : возможно ли повысить производительность без перехода к однообъемным или многополосным наборам данных?

Исходный вопрос был:

У меня есть набор данных AB C с параметрами PO=PS и RECFM=FS. Следующий код Java работает быстро для одинарного набора данных.

ZFile zfile = new ZFile("//'A.B.C'", "rb,type=record");
file.seek(1000);
file.seek(2000);
file.seek(4000);

Функция поиска занимает несколько миллисекунд.

Если набор данных AB C размещен на нескольких громкости, каждый звонок file.seek() занимает несколько секунд. Дальнейшие эксперименты показали, что доступ на самом деле является последовательным, например, вызов zfile.seek(10000) занимает в 10 раз больше времени, чем вызов zfile.seek(1000).

Как правильно выполнять ZFile.seek для многотомного набора данных? ?

...