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

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: 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