You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Mark S (JIRA)" <ji...@apache.org> on 2016/04/21 20:08:25 UTC
[jira] [Created] (PHOENIX-2850) Out of disk space due to *.tmp
files
Mark S created PHOENIX-2850:
-------------------------------
Summary: Out of disk space due to *.tmp files
Key: PHOENIX-2850
URL: https://issues.apache.org/jira/browse/PHOENIX-2850
Project: Phoenix
Issue Type: Bug
Affects Versions: 4.4.0
Environment: Windows host that is connecting (Via a Wildfly JEE server) to a Hortanworks Apache Phoenix Cluster (HDP 2.4).
Reporter: Mark S
Priority: Blocker
So I did some debugging and found the code responsible for these *.tmp files being created ({{File.createTempFile(UUID.randomUUID().toString(), null)}}). Unfortunately, have no idea as to why these files are not removed.
h4. Source
https://github.com/hortonworks/phoenix-release/blob/HDP-2.4.0.0-tag/phoenix-core/src/main/java/org/apache/phoenix/iterate/MappedByteBufferQueue.java#L304
{code:java|title=org.apache.phoenix.iterate.MappedByteBufferQueue$MappedByteBufferSegmentQueue}
private void flush(T entry) throws IOException {
Queue<T> inMemQueue = getInMemoryQueue();
int resultSize = sizeOf(entry);
maxResultSize = Math.max(maxResultSize, resultSize);
totalResultSize = hasMaxQueueSize ? maxResultSize * inMemQueue.size() : (totalResultSize + resultSize);
if (totalResultSize >= thresholdBytes) {
this.file = File.createTempFile(UUID.randomUUID().toString(), null);
RandomAccessFile af = new RandomAccessFile(file, "rw");
FileChannel fc = af.getChannel();
int writeIndex = 0;
mappingSize = Math.min(Math.max(maxResultSize, DEFAULT_MAPPING_SIZE), totalResultSize);
MappedByteBuffer writeBuffer = fc.map(MapMode.READ_WRITE, writeIndex, mappingSize);
{code}
h4. Example file names (C:\Users\username\AppData\Local\Temp):
7a0967de-9dff-432b-bcfe-de30bc630add5176202498513378657.tmp
813e40e1-afa9-4847-919c-7c55f95f8a475501154042645376476.tmp
1329da43-561d-4e68-9120-56bd650a6ac98781585316402092121.tmp
h4. My SQL Query
{code:sql}
String sql =
"SELECT TR.ID"
+ " ,TR.CLIENT_ID"
+ " ,TR.BRAND_ID"
+ " ,TR.SITE_ID"
+ " ,TR.EMAIL"
+ " ,COUNT(TS2.ID) + MAX(TR.repeatBrandShortVisit) AS repeatBrandShortVisit"
+ " ,SUM(CASE WHEN TS2.SESSION_TYPE = 1 THEN 1 ELSE 0 END) + MAX(TR.repeatBrandLongVisit) AS repeatBrandLongVisit"
+ " ,SUM(CASE WHEN TS2.SITE_ID = TR.SITE_ID THEN 1 ELSE 0 END) + MAX(TR.repeatSiteShortVisit) AS repeatSiteShortVisit"
+ " ,SUM(CASE WHEN TS2.SITE_ID = TR.SITE_ID AND TS2.SESSION_TYPE = 1 THEN 1 ELSE 0 END) + MAX(TR.repeatSiteLongVisit) AS repeatSiteLongVisit"
+ " FROM ("
+ " SELECT TSE.ID"
+ " ,TSE.CLIENT_ID"
+ " ,TSE.BRAND_ID"
+ " ,TSE.SITE_ID"
+ " ,TSE.EMAIL"
+ " ,COUNT(TS1.ID) AS repeatBrandShortVisit"
+ " ,SUM(CASE WHEN TS1.SESSION_TYPE = 1 THEN 1 ELSE 0 END) AS repeatBrandLongVisit"
+ " ,SUM(CASE WHEN TS1.SITE_ID = TSE.SITE_ID THEN 1 ELSE 0 END) AS repeatSiteShortVisit"
+ " ,SUM(CASE WHEN TS1.SITE_ID = TSE.SITE_ID AND TS1.SESSION_TYPE = 1 THEN 1 ELSE 0 END) AS repeatSiteLongVisit"
+ " FROM ("
+ " SELECT ID"
+ " ,CLIENT_ID"
+ " ,BRAND_ID"
+ " ,SITE_ID"
+ " ,EMAIL"
+ " FROM user.SESSION_EXPIRATION "
+ " WHERE NEXT_CHECK <= CURRENT_TIME()"
+ " LIMIT " + batchSize
+ " ) AS TSE"
+ " LEFT OUTER JOIN user.SESSION TS1"
+ " ON TS1.CLIENT_ID = TSE.CLIENT_ID"
+ " AND TS1.BRAND_ID = TSE.BRAND_ID"
+ " GROUP BY TSE.ID"
+ " ,TSE.CLIENT_ID"
+ " ,TSE.BRAND_ID"
+ " ,TSE.SITE_ID"
+ " ,TSE.EMAIL"
+ " ) AS TR"
+ " LEFT OUTER JOIN user.SESSION TS2"
+ " ON TS2.EMAIL = TR.EMAIL"
+ " AND TS2.BRAND_ID = TR.BRAND_ID"
+ " GROUP BY TR.ID"
+ " ,TR.CLIENT_ID"
+ " ,TR.BRAND_ID"
+ " ,TR.SITE_ID"
+ " ,TR.EMAIL";
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)