Hello - I am completely new to the Solr development list, I have been
using Solr for about a year now - So, first - Thank you everyone for
the great set of libraries!

I did previously search the list but didn't find anything discussing
this question in detail.

I'll keep it brief and to the point.


Is there any interest in a Solr binary server-daemon in addition to
it's HTTP interface/daemon?
A generalized specification would have to be written that would listen
on an alternative port from the HTTP interface.
This binary interface would accept binary streams instead of 'strings'.
A language-specific client driver would have to be written to support
this specification. (my interest is in writing a PHP Pecl extension to
implement the server interface/specification)

If there is any interest or development going on in this area - I am
interested in connecting with the other developers and working on a
specification/implementation.

Now that SOLR and Lucene development is combining I'm not sure how
this would change implementation details.

I realize  the HTTP interface is 'at the heart' of SOLR, but I think
the benefits of language-specific drivers would be worthwhile.

Reason1:
The time taken to establish an HTTP connection, the overhead of the
protocol, and the time taken to parse string results is often greater
than the time taken to 'perform' the query itself.

Reason 2:
When returning a 'single node' serialized structure it is not possible
to 'scan' the result without at some point in time storing the entire
string representation of the result, and the entire data-structure in
memory, thus duplicating the minimum required resources.

Reason 3:
If the client generates a set of binary-tokens no string-lexing has to
occur on the server-side.

Reason 4: If client tokens are generated from an OOP/Procedural
interface, Injection (like SQL injection) is all but impossible.

Reason 5: With a binary driver native code interactions with
result-sets like "foreach", "for var in list", etc are possible,
without any need to parse or unmarshal/unserialize the result.


10gen has implemented all binary Object-Oriented client drivers for
Python, Php, Ruby, Perl, and Java for their Document database
'MongoDB' - and these benefits are very clear in the use of their
product and the speed of the driver.


Thanks for your time!

Reply via email to