<div dir="auto">One of our clients uses session stats to count things like retries. Might be a good idea to incorporate into the Seaside GemStone version.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 21, 2024, 23:07 Otto Behrens via Glass <<a href="mailto:glass@lists.gemtalksystems.com">glass@lists.gemtalksystems.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">I usually see this in logs when we hit retries, not 100% sure, will look out for it, thanks.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 21 May 2024, 02:51 Paul DeBruicker via Glass, <<a href="mailto:glass@lists.gemtalksystems.com" target="_blank" rel="noreferrer">glass@lists.gemtalksystems.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Oh also - I wonder if you're hitting the request timeout so retry logic <br>
the Seaside/GemStone handlers have.  It would take no time in a profiler <br>
but cause the response generation to happen up to 10 times.<br>
<br>
<br>
<br>
<br>
On 5/20/24 23:46, Paul DeBruicker wrote:<br>
> Have you tried the WAGsZincStreamingServerAdaptor or WAStreamedResponse <br>
> classes?<br>
> <br>
> In the WAGsZincStreamingServerAdaptor you'd need to override the <br>
> #responseTo: method to use the WAStreamedResponse explicitly to get rid <br>
> of all adaptor buffering.  *I think*<br>
> <br>
> <br>
> Not sure that it would help but they're there and when I was messing <br>
> with this <a href="https://github.com/SeasideSt/Seaside/pull/1319" rel="noreferrer noreferrer noreferrer" target="_blank">https://github.com/SeasideSt/Seaside/pull/1319</a> I think they <br>
> were working OK.<br>
> <br>
> <br>
> <br>
> On 5/20/24 17:08, Otto Behrens via Glass wrote:<br>
>>     Okay, I’ll give that a try and see what I can get when using the<br>
>>     Zinc adaptor in GemStone…<br>
>><br>
>><br>
>> Thanks<br>
>><br>
>>     Btw, if you have the file on disk, consider using X-Sendfile<br>
>>     protocol to nginx.<br>
>>     Something like this, where ‘document url’ is the url where it is<br>
>>     reachable through nginx:<br>
>><br>
>><br>
>> Yes, we use this extensively. We serve pdf documents and things like <br>
>> that. The rest API data can possibly also be written to a file. But <br>
>> not for all the api endpoints, maybe for this specific one that's <br>
>> giving us trouble. But that surely just bypasses the issue?<br>
>><br>
>>     self requestContext<br>
>>     respond: [ :response |<br>
>>     response headerAt: 'X-Accel-Redirect' put: document url ]<br>
>><br>
>>>         I’m using FastCGI in production, and serving large json files<br>
>>>         as well. Did not see this performance issue pop up though.<br>
>>><br>
>>><br>
>>>     O dear, we did use FastCGI many moons ago and ended up reverting<br>
>>>     to an HTTP proxy. It was a bit easier to work with as HTTP is more<br>
>>>     readable, but I just remember it was a bit of a battle.<br>
>><br>
>>     I would not recommend it anymore in the sense that the protocol<br>
>>     itself is outdated and prohibits things like websockets.<br>
>>     But I mentioned it to say that the performance issue might very well<br>
>>     be in the Zinc Adaptor for GemStone.<br>
>>     _______________________________________________<br>
>>     Glass mailing list<br>
>>     <a href="mailto:Glass@lists.gemtalksystems.com" rel="noreferrer noreferrer" target="_blank">Glass@lists.gemtalksystems.com</a> <br>
>> <mailto:<a href="mailto:Glass@lists.gemtalksystems.com" rel="noreferrer noreferrer" target="_blank">Glass@lists.gemtalksystems.com</a>><br>
>>     <a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
>>     <<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Glass mailing list<br>
>> <a href="mailto:Glass@lists.gemtalksystems.com" rel="noreferrer noreferrer" target="_blank">Glass@lists.gemtalksystems.com</a><br>
>> <a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
_______________________________________________<br>
Glass mailing list<br>
<a href="mailto:Glass@lists.gemtalksystems.com" rel="noreferrer noreferrer" target="_blank">Glass@lists.gemtalksystems.com</a><br>
<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
</blockquote></div>
_______________________________________________<br>
Glass mailing list<br>
<a href="mailto:Glass@lists.gemtalksystems.com" target="_blank" rel="noreferrer">Glass@lists.gemtalksystems.com</a><br>
<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
</blockquote></div>