diff options
author | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-06-13 01:34:39 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-06-13 01:36:20 +0200 |
commit | f9ffc53a6461ebabdc26599ae0457aa600135d9c (patch) | |
tree | bdce977186df8c180073ba7ae02f37ba800b98c1 | |
parent | 2b6943f1dd90a4f9457065a06b16d5ad22824625 (diff) | |
download | sonarqube-f9ffc53a6461ebabdc26599ae0457aa600135d9c.tar.gz sonarqube-f9ffc53a6461ebabdc26599ae0457aa600135d9c.zip |
SONAR-5007 - Updated BaseIndex for Bulk Actions
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java b/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java index 4965e8c92e4..40e420b5237 100644 --- a/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java +++ b/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java @@ -437,6 +437,9 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial public void upsert(KEY key, Object object, Object... objects) throws Exception { long t0 = System.currentTimeMillis(); List<UpdateRequest> requests = this.normalizer.normalizeNested(object, key); + for (Object additionalObject : objects) { + requests.addAll(this.normalizer.normalizeNested(additionalObject, key)); + } long t1 = System.currentTimeMillis(); this.updateDocument(requests, key); long t2 = System.currentTimeMillis(); @@ -448,9 +451,12 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial public void upsertByDto(DTO item, DTO... items) { try { long t0 = System.currentTimeMillis(); - List<UpdateRequest> request = normalizer.normalize(item); + List<UpdateRequest> requests = normalizer.normalize(item); + for (DTO additionalItem : items) { + requests.addAll(normalizer.normalize(additionalItem)); + } long t1 = System.currentTimeMillis(); - this.updateDocument(request, item.getKey()); + this.updateDocument(requests, item.getKey()); long t2 = System.currentTimeMillis(); LOG.debug("UPSERT [dto] time:{}ms ({}ms normalize, {}ms elastic)", t2 - t0, t1 - t0, t2 - t1); @@ -463,7 +469,11 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial @Override public void upsertByKey(KEY key, KEY... keys) { try { - this.updateDocument(normalizer.normalize(key), key); + List<UpdateRequest> requests = normalizer.normalize(key); + for (KEY additionalKey : keys) { + requests.addAll(normalizer.normalize(additionalKey)); + } + this.updateDocument(requests, key); } catch (Exception e) { LOG.error("Could not update document for index {}: {}", this.getIndexName(), e.getMessage(), e); @@ -483,13 +493,20 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial @Override public void delete(KEY key, Object object, Object... objects) throws Exception { LOG.debug("DELETE NESTED _id:{} in index {}", key, this.getIndexName()); - this.updateDocument(this.normalizer.deleteNested(object, key), key); + List<UpdateRequest> requests = this.normalizer.deleteNested(object, key); + for (Object additionalObject : objects) { + requests.addAll(this.normalizer.deleteNested(additionalObject, key)); + } + this.updateDocument(requests, key); } @Override public void deleteByKey(KEY key, KEY... keys) { try { this.deleteDocument(key); + for (KEY additionalKey : keys) { + this.deleteDocument(additionalKey); + } } catch (Exception e) { LOG.error("Could not DELETE _id = '{}' for index '{}': {}", this.getKeyValue(key), this.getIndexName(), e.getMessage()); @@ -500,6 +517,9 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial public void deleteByDto(DTO item, DTO... items) { try { this.deleteDocument(item.getKey()); + for (DTO additionalItem : items) { + this.deleteDocument(additionalItem.getKey()); + } } catch (Exception e) { LOG.error("Could not DELETE _id:{} for index {}: {}", this.getKeyValue(item.getKey()), this.getIndexName(), e.getMessage()); |