If the client closes the connection to the export handler then this
exception will occur automatically on the server.

Joel Bernstein
http://joelsolr.blogspot.com/

On Sat, May 13, 2017 at 1:46 AM, Susmit Shukla <shukla.sus...@gmail.com>
wrote:

> Hi Joel,
>
> Thanks for the insight. How can this exception be thrown/forced from client
> side. Client can't do a System.exit() as it is running as a webapp.
>
> Thanks,
> Susmit
>
> On Fri, May 12, 2017 at 4:44 PM, Joel Bernstein <joels...@gmail.com>
> wrote:
>
> > In this scenario the /export handler continues to export results until it
> > encounters a "Broken Pipe" exception. This exception is trapped and
> ignored
> > rather then logged as it's not considered an exception if the client
> > disconnects early.
> >
> > Joel Bernstein
> > http://joelsolr.blogspot.com/
> >
> > On Fri, May 12, 2017 at 2:10 PM, Susmit Shukla <shukla.sus...@gmail.com>
> > wrote:
> >
> > > Hi,
> > >
> > > I have a question regarding solr /export handler. Here is the scenario
> -
> > > I want to use the /export handler - I only need sorted data and this is
> > the
> > > fastest way to get it. I am doing multiple level joins using streams
> > using
> > > /export handler. I know the number of top level records to be retrieved
> > but
> > > not for each individual stream rolling up to the final result.
> > > I observed that calling close() on a /export stream is too expensive.
> It
> > > reads the stream to the very end of hits. Assuming there are 100
> million
> > > hits for each stream ,first 1k records were found after joins and we
> call
> > > close() after that, it would take many minutes/hours to finish it.
> > > Currently I have put close() call in a different thread - basically
> fire
> > > and forget. But the cluster is very strained because of the
> unneccessary
> > > reads.
> > >
> > > Internally streaming uses ChunkedInputStream of HttpClient and it has
> to
> > be
> > > drained in the close() call. But from server point of view, it should
> > stop
> > > sending more data once close() has been issued.
> > > There is a read() call in close() method of ChunkedInputStream that is
> > > indistinguishable from real read(). If /export handler stops sending
> more
> > > data after close it would be very useful.
> > >
> > > Another option would be to use /select handler and get into business of
> > > managing a custom cursor mark that is based on the stream sort and is
> > reset
> > > until it fetches the required records at topmost level.
> > >
> > > Any thoughts.
> > >
> > > Thanks,
> > > Susmit
> > >
> >
>

Reply via email to