Hi Dario,

I'm not a Java developer so I don't have experience with Java clients or
JavaBinCodec. But the principle remains the same: flushing 200 documents at
a time instead of 10 is a 95% reduction in the number of requests fired.

If your documents are all similarly sized, I wouldn't bother with
calculating the actual buffer size in bytes.

Thomas

Op di 13 mei 2025 om 19:51 schreef <dario.v...@coop.ch.invalid>:

> Hi Thomas,
>
> As I understood it there is the ConcurrentUpdateSolrClient for this. Am I
> better off doing this myself or should I just use the concurrent client?
> Is it correct that I could reach your described scenario by setting
> withQueueSize to 200 (default is 10) and setting
> "solr.cloud.client.stallTime" to 60000 (default is 15 seconds).
> I am not sure if this is really leading to the scenario you describe.
> And if I want to measure the buffer size not in respect to the number of
> documents in the buffer but in respect to the actual size that the buffer
> would have when using JavaBinCodec I would need my own batcher anyway,
> right?
>
> Dario
>
> From: Thomas Corthals <tho...@klascement.net>
> Date: Tuesday, May 13, 2025 at 2:20?PM
> To: users@solr.apache.org <users@solr.apache.org>
> Subject: Re: GOAWAY signal
> CAUTION: This is an external email. Do not click any links or open any
> attachments unless you trust the sender and know the content is safe.
>
>
> Hi Dario,
>
> Regardless of this GOAWAY signal, I would advise to buffer the documents on
> the client side instead of indexing them individually for every event.
> You'll have to try out which numbers work for your specific document size
> and timeliness expectations. I usually start with a buffer size of 200
> documents, could be higher for very small documents or lower for very large
> ones. When that amount is reached, flush them to Solr in a single request.
> If you can't have documents show up "late", you can additionally flush your
> buffer after e.g. 1 minute even if it has fewer documents.
>
> Thomas
>
> Op di 13 mei 2025 om 11:02 schreef <dario.v...@coop.ch.invalid>:
>
> > Dear Solr People
> >
> > On our system we have an indexer-service that indexes documents based on
> > incoming events. Sometimes a lot of these events happen at the same time
> > (or at least very close in time to each other). If that happens our
> indexer
> > receives GOAWAY signals from solr.
> > We're using the HttpJdkSolrClient with HTTP/2. Solr Version is 9.5.0
> >
> > When exactly do these GOAWAY signals show up. In other words, how many
> > requests need to be made to solr in a certain amount of timespan that
> solr
> > starts emitting this signal. And how exactly should it be handled or
> fixed.
> >
> > Should we switch to HTTP/1.1? This version of HTTP does not specify this
> > signal, but this is probably not a solution?
> > Using another client?
> >
> > Can there be done anything else about it? Will the documents that were in
> > the request that caused the GOAWAY signal still get added to the index or
> > do we need to resend this request? And If yes, how long should we wait to
> > resend it?
> >
> > With kind regards,
> >
> > Dario
> >
>

Reply via email to