You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "nabarun (JIRA)" <ji...@apache.org> on 2018/05/09 18:18:00 UTC
[jira] [Created] (GEODE-5197) synchronize the adding and removal of
cache service profiles while reindexing
nabarun created GEODE-5197:
------------------------------
Summary: synchronize the adding and removal of cache service profiles while reindexing
Key: GEODE-5197
URL: https://issues.apache.org/jira/browse/GEODE-5197
Project: Geode
Issue Type: Bug
Components: lucene
Reporter: nabarun
As a gemfire developer, while creating a lucene index on the data region the addition/verification/[or removal] should not be affected by concurrent index creation.
The below code needs to be synchronized
{code:java}
private void createIndexOnExistingRegion(PartitionedRegion region, String indexName,
String regionPath, String[] fields, Analyzer analyzer, Map<String, Analyzer> fieldAnalyzers,
LuceneSerializer serializer) {
validateRegionAttributes(region.getAttributes());
LuceneIndexCreationProfile luceneIndexCreationProfile = new LuceneIndexCreationProfile(
indexName, regionPath, fields, analyzer, fieldAnalyzers, serializer);
region.addCacheServiceProfile(luceneIndexCreationProfile);
try {
validateLuceneIndexProfile(region);
} catch (Exception e) {
region.removeCacheServiceProfile(luceneIndexCreationProfile.getId());
throw new UnsupportedOperationException(
LocalizedStrings.LuceneIndexCreation_INDEX_CANNOT_BE_CREATED_DUE_TO_PROFILE_VIOLATION
.toString(indexName),
e);
}
String aeqId = LuceneServiceImpl.getUniqueIndexName(indexName, regionPath);
region.updatePRConfigWithNewGatewaySender(aeqId);
LuceneIndexImpl luceneIndex = beforeDataRegionCreated(indexName, regionPath,
region.getAttributes(), analyzer, fieldAnalyzers, aeqId, serializer, fields);
afterDataRegionCreated(luceneIndex);
createLuceneIndexOnDataRegion(region, luceneIndex);
}
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)