Downloading large outputs using Get-IshPublicationOutputData is slow, is there anything I can do to speed it up

I am currently using Get-IshPublicationOutputData to download output from a bunch of publications. I use this with powershell's foreach-object -parallel, which executes jobs in parallel without waiting for the current item in the for loop to complete. This works quite well for outputs where are relatively small, less than 100MB. I can download 300+ distinct outputs in a couple of minutes.

However, we also have some outputs that are 1GB+, and when trying to download those outputs using Get-IshPublicationOutputData, it is painfully slow to the point of being unusable. Is there anything I can do to speed this up?

emoji
Parents Reply
  • Yes there is a difference, and it was tuned over the various Tridion Docs versions. In essence the Public SOAP API has no easy notion of streaming binaries from the database server over the web/application server over the network to the client (your PowerShell session). So it does chunked retrieval, retrieving blocks of data. The chunks can be controlled client side (over $ISHRemoteSessionStateIshSession.ChunkSize defaults to 10485760 bytes so 10Mb) but again the chunks mostly affect the server, so requesting larger chunks pressures the shared web/app server eventually leading to Out-Of-Memory errors.

    The web browser, and Private web API behind it, do have better streaming capabilities end-to-end. So a web browser will show you a continuous stream of incoming data in the progress bar; while in Publication Manager you see the progress bar move in chunks/jumps. 

    emoji
Children
No Data