Skip to content

Push-Pull pattern implementation for conversion and data loading (performance improvement)

Borys Oliynyk requested to merge slb-master-push-pull-multibulk-reading into slb-master

Type of change

  • Bug Fix
  • Feature

Does this introduce a change in the core logic?

  • [No]

Does this introduce a change in the cloud provider implementation, if so which cloud?

  • AWS
  • Azure
  • GCP
  • IBM

Updates description

The following changes have been done:

  • updated unit tests to match the Push Pull pattern implementation

  • implemented Push Pull pattern when next data are being loaded while the previous are being converted

  • added read chunk support to buffered readers class family

  • 'segysdk::bulkaccess::SegyReaderFactory' sets the chunk size for bulk readers

  • renamed to 'segysdk::segyindex::SegyIndex::getConstantTraceWeightingFactor'

  • modified interface 'segysdk::segyindex::SegyIndex::std::unique_ptrbulkaccess::SegyBulkReader createMultiBulkReader(std::shared_ptrsegyindex::SegyIndex segyIndex, size_t numberOfTraces, size_t bulksCount)'

  • added several members to interface 'segysdk::bulkaccess::SegyBulkReader'

    added:

    • size_t getBufferSize() const
    • void setBufferLoadChunk(size_t newChunk)
    • void LoadDataToCache(size_t fileOffset, size_t dataSize)

    modified (return value):

    • std::optional<size_t> setReadOffsetHint(size_t inlineIndex, size_t xlineIndex, size_t sampleIndex) added 'SD_CHUNK_SIZE' env variable
  • added 'segysdk::CacheSizeOption::chunkSize()' member

  • added interface 'segysdk::bulkaccess::BulkIndex::TraceIndexer::findTraceByIndex(.)'

Edited by Borys Oliynyk

Merge request reports