db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-590) How to integrate Derby with Lucene API?
Date Mon, 28 Apr 2014 01:21:15 GMT

     [ https://issues.apache.org/jira/browse/DERBY-590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Rick Hillegas updated DERBY-590:

    Attachment: derby-590-26-ac-backupRestore.diff

Attaching derby-590-26-ac-backupRestore.diff. This patch adds backup/restore support for Lucene
indexes. I will run regression tests. I will also hold off committing this patch for a couple
days to give people an opportunity to suggest alternative approaches.

Code is added to BasicDatabase to perform the backup. The backup() methods in BasicDatabase
check to see if the database's top level directory contains a LUCENE subdirectory. If so,
the LUCENE directory is recursively copied to the backup directory.

Similarly, code is added to BaseDataFileFactory to perform the restoration. The loop which
checks for seg* subdirectories now checks to see if the backup contains a LUCENE subdirectory.
If so, it is recursively copied to the restored location.

I am happy to move this code elsewhere if people think there is an architecturally better

Touches the following files:


M       java/engine/org/apache/derby/iapi/util/StringUtil.java

Encapsulated a scrap of code which takes the canonical name of the database and extracts the
database directory name from it. This method is now used both by the RawStore backup code
to figure out where to copy the seg* files and this method is used by BasicDatabase to figure
out where to copy the LUCENE directory.

I'm open to suggestions for a better place to put this code. Nothing better jumped out at


M       java/engine/org/apache/derby/impl/db/BasicDatabase.java

The new code to backup the LUCENE directory.


M       java/engine/org/apache/derby/impl/io/vfmem/DataStore.java

This fixes a bug in the in-memory storage factory. When asked to list its child directories,
an in-memory directory used to list its grandchildren and all other descendants. This has
been fixed so that only the child directories are returned.


M       java/engine/org/apache/derby/impl/store/raw/RawStore.java

Amended to use the shared method which extracts the database directory name from the canonical


M       java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java

Adds logic to restore the LUCENE directory.


M       java/engine/org/apache/derby/database/Database.java

The constant identifying the name of the LUCENE directory is moved to this interface so that
it can be used by BasicDatabase.


M       java/optional/org/apache/derby/optional/lucene/DerbyLuceneDir.java
M       java/optional/org/apache/derby/optional/lucene/LuceneSupport.java
M       java/optional/org/apache/derby/optional/lucene/LuceneListIndexesVTI.java

I reworked how the Lucene index path is recursively created.


A       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneBackupTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSuite.java

Added a test for backup/restore of Lucene indexes.

> How to integrate Derby with Lucene API?
> ---------------------------------------
>                 Key: DERBY-590
>                 URL: https://issues.apache.org/jira/browse/DERBY-590
>             Project: Derby
>          Issue Type: Improvement
>          Components: Documentation, SQL
>            Reporter: Abhijeet Mahesh
>              Labels: derby_triage10_11
>         Attachments: LucenePlugin.html, derby-590-01-ag-publicAccessToLuceneRoutines.diff,
derby-590-01-ah-publicAccessToLuceneRoutines.diff, derby-590-01-am-publicAccessToLuceneRoutines.diff,
derby-590-02-aa-cleanupFindbugsErrors.diff, derby-590-03-aa-removeTestingDiagnostic.diff,
derby-590-04-aa-removeIDFromListIndexes.diff, derby-590-05-aa-accessDeclaredMembers.diff,
derby-590-06-aa-suppressAccessChecks.diff, derby-590-07-aa-accessClassInPackage.sun.misc.diff,
derby-590-08-aa-omitLuceneFlag.diff, derby-590-09-aa-localeSensitiveAnalysis.diff, derby-590-10-aa-fixLocaleTest.diff,
derby-590-11-aa-moveCode.diff, derby-590-12-aa-newJar.diff, derby-590-13-aa-indexViews.diff,
derby-590-14-aa-coarseGrainedAuthorization.diff, derby-590-15-aa-requireHardUpgrade.diff,
derby-590-16-aa-adjustUpgradeTest.diff, derby-590-17-aa-closeInputStreamOnPropertiesFile.diff,
derby-590-18-aa-cleanupAPI.diff, derby-590-19-aa-cleanupAPI2.diff, derby-590-20-aa-customQueryParser.diff,
derby-590-21-aa-noTimeTravel.diff, derby-590-22-aa-cleanupPrivacy.diff, derby-590-23-aa-correctTestLocale.diff,
derby-590-24-ad-luceneDirectory.diff, derby-590-26-ac-backupRestore.diff, lucene_demo.diff,
> In order to use derby with lucene API what should be the steps to be taken? 

This message was sent by Atlassian JIRA

View raw message