Skip to content

Proposal: Standardized FileInfo Structure. RE: z/OS performance investigation #581

@dustin-ward

Description

@dustin-ward

Hello, Im with the Go on z/OS dev team at IBM. We got a request to look into some performance issues with this package and zos. (#578
& #579)

When reading a file located on a linux machine to a zos machine, we see the poor performance reported by our users. The issue seems to be that despite enabling concurrent reads, checking the filemode forces sequential reading.

The fs.Mode returned from the remote machine is consistent with the linux format, but the zos syscall constants are used to mask and compare the value in isRegular(). These constants do not match the linux format and cause incorrect behaviour in isRegular() (And possibly any other functions that rely on the stat constants being consistent between machines)

Bypassing the !isRegular() check (forcing concurrent reads) shows performance consistent with the systems default sftp.

Maybe converting the stat packet response to the standardized fs.FileInfo struct could allow for the use of FileMode.IsRegular()? I'd be happy to take a stab at making the change, but I'm just looking for some guidance or alternative suggestions first.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions