You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2018/05/22 16:45:32 UTC
[50/50] [abbrv] carbondata git commit: [HOTFIX] Implementing
getMemorySize in BlockletDataMapIndexWrapper
[HOTFIX] Implementing getMemorySize in BlockletDataMapIndexWrapper
This closes #2330
Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/16ed99a1
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/16ed99a1
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/16ed99a1
Branch: refs/heads/branch-1.4
Commit: 16ed99a119f95b70a01c95120b20e632405d0a54
Parents: 9aa3a8c
Author: dhatchayani <dh...@gmail.com>
Authored: Tue May 22 12:33:24 2018 +0530
Committer: ravipesala <ra...@gmail.com>
Committed: Tue May 22 22:03:31 2018 +0530
----------------------------------------------------------------------
.../core/indexstore/BlockletDataMapIndexStore.java | 9 ++-------
.../core/indexstore/BlockletDataMapIndexWrapper.java | 10 +++++++++-
2 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/carbondata/blob/16ed99a1/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
index ba4193e..db49976 100644
--- a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
+++ b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
@@ -78,7 +78,6 @@ public class BlockletDataMapIndexStore
try {
SegmentIndexFileStore indexFileStore = new SegmentIndexFileStore();
Set<String> filesRead = new HashSet<>();
- long memorySize = 0L;
String segmentFilePath = identifier.getIndexFilePath();
Map<String, BlockMetaInfo> carbonDataFileBlockMetaInfoMapping = BlockletDataMapUtil
.createCarbonDataFileBlockMetaInfoMapping(segmentFilePath);
@@ -89,7 +88,6 @@ public class BlockletDataMapIndexStore
carbonDataFileBlockMetaInfoMapping);
BlockletDataMap blockletDataMap =
loadAndGetDataMap(identifier, indexFileStore, blockMetaInfoMap);
- memorySize += blockletDataMap.getMemorySize();
dataMaps.add(blockletDataMap);
blockletDataMapIndexWrapper = new BlockletDataMapIndexWrapper(dataMaps);
} else {
@@ -103,13 +101,12 @@ public class BlockletDataMapIndexStore
carbonDataFileBlockMetaInfoMapping);
BlockletDataMap blockletDataMap =
loadAndGetDataMap(blockIndexUniqueIdentifier, indexFileStore, blockMetaInfoMap);
- memorySize += blockletDataMap.getMemorySize();
dataMaps.add(blockletDataMap);
}
blockletDataMapIndexWrapper = new BlockletDataMapIndexWrapper(dataMaps);
}
lruCache.put(identifier.getUniqueTableSegmentIdentifier(), blockletDataMapIndexWrapper,
- memorySize);
+ blockletDataMapIndexWrapper.getMemorySize());
} catch (Throwable e) {
// clear all the memory used by datamaps loaded
for (DataMap dataMap : dataMaps) {
@@ -189,7 +186,6 @@ public class BlockletDataMapIndexStore
if (lock == null) {
lock = addAndGetSegmentLock(uniqueTableSegmentIdentifier);
}
- long memorySize = 0L;
// As dataMap will use unsafe memory, it is not recommended to overwrite an existing entry
// as in that case clearing unsafe memory need to be taken card. If at all datamap entry
// in the cache need to be overwritten then use the invalidate interface
@@ -201,10 +197,9 @@ public class BlockletDataMapIndexStore
try {
for (BlockletDataMap blockletDataMap: dataMaps) {
blockletDataMap.convertToUnsafeDMStore();
- memorySize += blockletDataMap.getMemorySize();
}
lruCache.put(tableBlockIndexUniqueIdentifier.getUniqueTableSegmentIdentifier(), wrapper,
- memorySize);
+ wrapper.getMemorySize());
} catch (Throwable e) {
// clear all the memory acquired by data map in case of any failure
for (DataMap blockletDataMap : dataMaps) {
http://git-wip-us.apache.org/repos/asf/carbondata/blob/16ed99a1/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexWrapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexWrapper.java b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexWrapper.java
index d674cb4..ea85930 100644
--- a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexWrapper.java
+++ b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexWrapper.java
@@ -30,8 +30,16 @@ public class BlockletDataMapIndexWrapper implements Cacheable, Serializable {
private List<BlockletDataMap> dataMaps;
+ // size of the wrapper. basically the total size of the datamaps this wrapper is holding
+ private long wrapperSize;
+
public BlockletDataMapIndexWrapper(List<BlockletDataMap> dataMaps) {
this.dataMaps = dataMaps;
+ this.wrapperSize = 0L;
+ // add the size of each and every datamap in this wrapper
+ for (BlockletDataMap dataMap : dataMaps) {
+ this.wrapperSize += dataMap.getMemorySize();
+ }
}
@Override public long getFileTimeStamp() {
@@ -43,7 +51,7 @@ public class BlockletDataMapIndexWrapper implements Cacheable, Serializable {
}
@Override public long getMemorySize() {
- return 0;
+ return wrapperSize;
}
public List<BlockletDataMap> getDataMaps() {