lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cutting (JIRA)" <>
Subject [jira] Commented: (LUCENE-1473) Implement Externalizable in main top level searcher classes
Date Wed, 03 Dec 2008 18:19:44 GMT


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:
>             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:
For additional commands, e-mail:

View raw message