[ 
https://issues.apache.org/jira/browse/LUCENE-1473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12652882#action_12652882
 ] 

Doug Cutting commented on LUCENE-1473:
--------------------------------------

> But, what's now being asked for (expected) with this issue is "long-term 
> persistence", which is really a very different beast and a much taller order.

That's the crux, alright.  Does Lucene want to start adding cross-version 
guarantees about the durability of its objects when serialized by Java 
serialization.  This is a hard problem.  Systems like Thrift and 
ProtocolBuffers offer support for this, but Java Serialiation itself doesn't 
really provide much assistance.  One can roll one's own serialization 
compatibility story manually, as proposed by this patch, but that adds a burden 
to the project.  We'd need, for example, test cases that keep serialized 
instances from past versions, so that we can be sure that patches do not break 
this.

The use case provided may not use RMI, but it is similar: it involves 
transmitting Lucene objects over the wire between different versions of Lucene. 
 Since Java APIs, like Lucene, do not generally provide cross-version 
compatibility, it would be safer to architect such a system so that it controls 
the serialization of transmitted instances itself and can thus guarantee their 
compatibility as the system is updated.  Thus it would develop its own 
representations for queries independent of Lucene's Query, and map this to 
Lucene's Query.  Is that not workable in this case?


> Implement Externalizable in main top level searcher classes
> -----------------------------------------------------------
>
>                 Key: LUCENE-1473
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1473
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Search
>    Affects Versions: 2.4
>            Reporter: Jason Rutherglen
>            Priority: Minor
>         Attachments: LUCENE-1473.patch
>
>
> To maintain serialization compatibility between Lucene versions, major 
> classes can implement Externalizable.  This will make Serialization faster 
> due to no reflection required and maintain backwards compatibility.  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to