lucene-dev mailing list archives

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


Jason Rutherglen commented on LUCENE-1473:

> the performance improvement should be measured and demonstrated to be significant

The initial concern was the incompatibility of serialized objects between Lucene versions.
 The performance improvements created by using Externalizable are secondary and so providing
tests would be a waste of time if the "community" believes it is too much effort to add *1
line* of code to a handful of classes.  Implementing Externalizable is a way to reduce the
size of the serialized objects, manage the serialized object versions, and provide performance
improvements.  Externalizable provides the most benefits and is very similar to the system
Hadoop uses with Writeable.  Externalizable works seamlessly with native object serialization
and Serializable implemented classes, meaning it works with a number of existing Java classes
in addition to Externalizable classes.  

Using distributed serialized objects for search in Lucene is a natural Java based way to run
a Lucene system.  In many cases it is ideal because Java provides something C++ does not,
dynamic in-process class loading.  In a large grid based search system that requires 100%
uptime this feature can be particularly useful.  

Adding a serialVersionUID to the classes is one option, adding Externalizable is another option.

If the decision is to not support Serialization in Lucene then I recommend removing Serializable
from all classes in Lucene 3.0 so that users do not mistakenly expect the search library to
behave the way other Java libraries such as ICU4J, JDK class libraries, Spring, etc do.

> 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