[
https://issues.apache.org/jira/browse/SOLR-486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yonik Seeley updated SOLR-486:
------------------------------
Attachment: SOLR-486.patch
OK, latest version attached.
The bad:
- more code, a more complex codec, harder to debug with a hex editor
The good:
- 2/3 the size of the previous binary codec (50% improvement and 1/3 the size
of XML)
- certain common types like named list, array, and string pack a size right
in the tag byte
- variable length int and long values.. saves lots of space for facet
counts, etc (first 5
bits of vint are packed in the tag byte)
- performance results: (9 times faster than xml, encoding + decoding)
writer xml, size=6885, encodeRate=627, decodeRate=883
writer json, size=3556, encodeRate=3084, decodeRate=N/A
writer javabin-v1, size=3170
writer javabin-current, size=2153, encodeRate=6095, decodeRate=8695
- performance changes:
- FastInputStream, FastOutputStream: unsynchronized buffered streams
- toObject() changes to sortable numerics - bypass string and go straight to
numeric type
- tons of other little things, including everything that was used to decrease
the size
- string values can now be > 64K (Java writeUTF is limited to that size)
- memory use changes: only "explode" one doc at a time in a doclist
- testing changes: more thorough random testing... (good thing too - found a
long encoding bug)
Noble: I started from your second-to-last patch (we overlapped in the Document
fixes...) I diffed your patches and I believe I saw everything.
TODO: preserve SimpleOrderedMap vs NamedList?
TODO: make SolrJ default?
> Support binary formats for QueryresponseWriter
> ----------------------------------------------
>
> Key: SOLR-486
> URL: https://issues.apache.org/jira/browse/SOLR-486
> Project: Solr
> Issue Type: Improvement
> Components: clients - java, search
> Reporter: Noble Paul
> Assignee: Yonik Seeley
> Priority: Minor
> Fix For: 1.3
>
> Attachments: SOLR-486.patch, SOLR-486.patch, SOLR-486.patch,
> SOLR-486.patch, SOLR-486.patch, SOLR-486.patch, SOLR-486.patch
>
>
> QueryResponse writer only allows text data to be written.
> So it is not possible to implement a binary protocol . Create another
> interface which has a method
> write(OutputStream os, SolrQueryRequest request, SolrQueryResponse response)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.