[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13776583#comment-13776583
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Is the region really empty? From the logs provided by the user we can see this:
{code}
size=491.0; total size for store is 5.7m
{code}

491 bytes is very small, I agree, but might not be totally empty.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13776868#comment-13776868
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Here are the details for the file which was causing the issue.

{code}
jmspaggiari@t430s:~/workspace/hbase-0.94.10$ bin/hbase 
org.apache.hadoop.hbase.io.hfile.HFile -m -s -v -f 
fca0882dc7624342a8f4fce4b89420ff 
13/09/24 14:54:09 INFO util.ChecksumType: Checksum can use java.util.zip.CRC32
Scanning -> fca0882dc7624342a8f4fce4b89420ff
13/09/24 14:54:09 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum 
size 247.9m
13/09/24 14:54:09 ERROR metrics.SchemaMetrics: Inconsistent configuration. 
Previous configuration for using table name in metrics: true, new 
configuration: false
13/09/24 14:54:09 WARN metrics.SchemaConfigured: Could not determine table and 
column family of the HFile path fca0882dc7624342a8f4fce4b89420ff. Expecting at 
least 5 path components.
13/09/24 14:54:09 WARN snappy.LoadSnappy: Snappy native library is available
13/09/24 14:54:09 INFO util.NativeCodeLoader: Loaded the native-hadoop library
13/09/24 14:54:09 INFO snappy.LoadSnappy: Snappy native library loaded
13/09/24 14:54:09 INFO compress.CodecPool: Got brand-new decompressor
Block index size as per heapsize: 336
reader=fca0882dc7624342a8f4fce4b89420ff,
compression=snappy,
cacheConf=CacheConfig:enabled [cacheDataOnRead=true] 
[cacheDataOnWrite=false] [cacheIndexesOnWrite=false] [cacheBloomsOnWrite=false] 
[cacheEvictOnClose=false] [cacheCompressed=false],
firstKey=null,
lastKey=null,
avgKeyLen=0,
avgValueLen=0,
entries=0,
length=491
Trailer:
fileinfoOffset=56,
loadOnOpenDataOffset=0,
dataIndexCount=0,
metaIndexCount=0,
totalUncomressedBytes=489,
entryCount=0,
compressionCodec=SNAPPY,
uncompressedDataIndexSize=0,
numDataIndexLevels=1,
firstDataBlockOffset=-1,
lastDataBlockOffset=0,
comparatorClassName=org.apache.hadoop.hbase.KeyValue$KeyComparator,
majorVersion=2,
minorVersion=0
Fileinfo:
DATA_BLOCK_ENCODING = NONE
DELETE_FAMILY_COUNT = \x00\x00\x00\x00\x00\x00\x00\x00
EARLIEST_PUT_TS = \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF
MAJOR_COMPACTION_KEY = \x00
MAX_SEQ_ID_KEY = 19978535453
TIMERANGE = -1-1
hfile.AVG_KEY_LEN = 0
hfile.AVG_VALUE_LEN = 0
Unable to retrieve the midkey
Bloom filter:
Not present
Delete Family Bloom filter:
Not present
Stats:
no data available for statistics
Scanned kv count -> 0
{code}

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13776905#comment-13776905
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

I think in the reported case there was more than one file in store (and thus 
the candidate list), it's that it was selecting one expired file.
Judging by HBASE-6059 description and comments, we actually don't have to 
generate a new file unless we are talking about the highest-seqid file in the 
region (which also implies not removing the last file).
So it may make sense to allow lazy-writer code to run if there're files 
remaining in store (which would presumably mean for ever minor compactions). In 
that case not running expired check on single last file would be enough.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13776913#comment-13776913
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Indeed. You're right. There was way more files than just one. I don't know why 
I ignored that.

I'm not sure to get how it's related to HBASE-6059. Are you suggesting to 
"simply" remove the test and do something like that? So if any other file need 
to be compacted, it will be. I'm not sure we need to add any check for the last 
store.

{code}
  private ArrayList selectExpiredStoreFiles(
  ArrayList candidates, long maxExpiredTimeStamp) {
if (candidates == null || candidates.size() == 0) return null;

ArrayList expiredStoreFiles = null;

for (StoreFile storeFile : candidates) {
  // If the storeFile is empty, then there is no need to compact it.
  // Empty files don't have time range information.
  if ((storeFile.getReader().getEntries() > 0)
  && (storeFile.getReader().getMaxTimestamp() < maxExpiredTimeStamp)) {
LOG.info("Deleting the expired store file by compaction: " + 
storeFile.getPath()
+ " whose maxTimeStamp is " + 
storeFile.getReader().getMaxTimestamp()
+ " while the max expired timestamp is " + maxExpiredTimeStamp);
if (expiredStoreFiles == null) {
  expiredStoreFiles = new ArrayList();
}
expiredStoreFiles.add(storeFile);
  }
}

return expiredStoreFiles;
  }
{code}


Also here is the list of files for reference.
{code}
-rw---   1 hadoop supergroup   2194 2013-09-21 14:32 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/014ead47a9484d67b55205be16802ff1
-rw---   1 hadoop supergroup  31321 2013-09-24 05:49 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/1305d625bd4a4be39a98ae4d91a66140
-rw---   1 hadoop supergroup   1350 2013-09-24 10:31 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/1352e0828f974f08b1f3d7a9dff04abd
-rw---   1 hadoop supergroup   4194 2013-09-21 10:38 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/17a546064bd840619816809ae0fc4c49
-rw---   1 hadoop supergroup   1061 2013-09-20 22:55 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/1cb3df115da244288bd076968ab4ccf6
-rw---   1 hadoop supergroup   1375 2013-08-24 10:17 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/1e41a96c49fc4e5ab59392d26935978d
-rw---   1 hadoop supergroup  96296 2013-08-26 15:48 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/22d72fd897e34424b5420a96483a571e
-rw---   1 hadoop supergroup   1356 2013-08-26 15:23 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/25fee1ffadbe42549bd0b7b13d782b72
-rw---   1 hadoop supergroup   6229 2013-09-21 11:14 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/26289c777ec14dc5b7021b4d6b1050c5
-rw---   1 hadoop supergroup   1223 2013-09-21 02:42 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/2757d7ba9c8448d6a3d5d46bd4d59758
-rw---   1 hadoop supergroup5302248 2013-08-24 02:22 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/2ec40943787246ea983608dd6591db24
-rw---   1 hadoop supergroup   1596 2013-08-24 03:37 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/3157fd1cabe4483aaa4d9a21f75e4d88
-rw---   1 hadoop supergroup   1338 2013-09-22 04:25 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/36b0f80a4a7b492f97358b64d879a2df
-rw---   1 hadoop supergroup   3264 2013-09-21 12:05 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/39e249fcb532400daed73aed6689ceeb
-rw---   1 hadoop supergroup   4549 2013-09-21 08:56 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/3bc9e2a566ad460a9b0ed336b2fb5ed9
-rw---   1 hadoop supergroup   1630 2013-09-22 03:22 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/48026d08aae748f08aad59e4eea903be
-rw---   1 hadoop supergroup 105395 2013-09-20 21:12 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/53198825f085401cbbd4322faa0e3aae
-rw---   1 hadoop supergroup   3859 2013-09-21 09:09 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/71c2f9b2a8ff4c049fcc5a9a22af5cfe
-rw---   1 hadoop supergroup 311688 2013-09-20 21:12 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/97ff16d6da974c30835c6e0acc7c737a
-rw---   1 hadoop supergroup   1897 2013-08-24 08:43 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/a172d7577641434d82abcce88a433213
-rw---   1 hadoop supergroup   3380 2013-09-21 13:04 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/be678e5c60534c65a012a798fbc7e284
-rw---   1 hadoop supergroup  43710 2013-09-22 02:15 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/e2508a23acf1491f9d38b9a8594e41e8
-rw---   1 hadoop supergroup   5409 2013-09-21 10:10 
/hbase/compound3/5ab5fdfcf2aff2633e1d6d5089c96aa2/d/f432846182714b93a1c3d

[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777081#comment-13777081
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

If you look at the code now (at least in 94 the archeological record survives) 
it has provisions for creating the writer for compaction output lazily (even a 
comment about it iirc), so that if there's no data, there's no file; but then 
below it goes and says, we need to create writer anyway because blah-blah see 
that jira.
So when the original problem on the thread picks one file to remove, this code 
says oh no I need to create the empty file anyway, and creates it; after which 
the expired-file-selection code picks the new file, as a single file, to 
remove, and it creates another empty file, forever. Expired file compaction is 
supposed to be fast so it pre-empts any real compaction.
What I'm saying is that this empty-file-creation might not always be necessary, 
judging by that jira. All we want to avoid is losing the latest-used seqNum in 
the store, which means we can have no-output compaction as long as we are not 
dropping the file with the last seqNum. So the original problem from the thread 
will go away if that was done, deletion of some random expired file would just 
nuke it. It will also be generally useful to not create these blank files as 
often.
The only edge case remaining is when this file is the file with the last seqNum 
(I incorrectly said above that it is when it's the only file), in which case 
expired file thing should not pick it.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777092#comment-13777092
 ] 

Hadoop QA commented on HBASE-9648:
--

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12604906/HBASE-9648-v0-trunk.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7364//console

This message is automatically generated.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-24 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777147#comment-13777147
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Ok. I see your point.

In trunk, the code moved to DefaultCompactor
{code}
// Create the writer even if no kv(Empty store file is also ok),
// because we need record the max seq id for the store file, see 
HBASE-6059
writer = store.createWriterInTmp(fd.maxKeyCount, 
this.compactionCompression, true,
fd.maxMVCCReadpoint >= smallestReadPoint, fd.maxTagsLength > 0);
{code}

So basically, we need to avoid creating this empty file if it doesn't have the 
max seq id. The thing is, we don't have this information there.

However, the modification to RatioBasedcompactionPolicy.selectExpiredStoreFiles 
should not be difficult.

... Ok. I think I found something. I will draft that and post it tomorrow 
morning for your review.


> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-25 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1325#comment-1325
 ] 

Hadoop QA commented on HBASE-9648:
--

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12605019/HBASE-9648-v1-trunk.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/7372//console

This message is automatically generated.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-25 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778235#comment-13778235
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

For the expired selection check, candidate list is not the same as list of 
files in store.
For the other check logic for last file is ok, presence of data in input 
doesn't mean that there'd be anything in the output... I wonder if simpler 
check is possible when selecting. I will be in some meetings, let me thing 
about it.
>From code perspective looks ok. Can you create a test?


> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-25 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778369#comment-13778369
 ] 

Lars Hofhansl commented on HBASE-9648:
--

Can we just not do the immediate deletion of the HFile when getMaxTimestamp() 
returns -1?


> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-25 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778470#comment-13778470
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


[~sershe]:
{quote}
For the expired selection check, candidate list is not the same as list of 
files in store.
{quote}
I will change to comment to say "If the last candidate" instead...

{quote}
presence of data in input doesn't mean that there'd be anything in the output
{quote}
I agree. Maybe everything will be deleted by the compaction, TTL, etc. But 
worst case, that will write an empty file wich will be avoided at the next 
iteration.

I will take a look how we can implement a test for that.

{code}
Can we just not do the immediate deletion of the HFile when getMaxTimestamp() 
returns -1?
{code}
We can, but are they not going to stay there for ever if we do that? Or is 
another process going to clean them later?



> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-25 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778480#comment-13778480
 ] 

Lars Hofhansl commented on HBASE-9648:
--

I'd have to study the code a bit more, but I thought it just means that they'll 
be removed after the compaction, rather than before (as part of the compaction 
selection). On the mailing list it was reported that disabling this feature 
fixed the problem. (See hbase.store.delete.expired.storefile in Store.java in 
0.94)


> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-26 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13779054#comment-13779054
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Yeah, that is what we recommended :) 
Deleting the file definitely makes sense, we can shortcut and archive it 
immediately without any compaction.
At that point there's also no need to do convoluted checks because we also have 
full view of all files.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-26 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13779314#comment-13779314
 ] 

Lars Hofhansl commented on HBASE-9648:
--

[~sershe], are you agreeing? Can't quite parse that out :)
Basically what I was saying was that we skip the early delete optimization for 
empty storefiles. It just means they'll get deleted after the compaction, but 
apparently without the issue we're seeing here.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-30 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13782332#comment-13782332
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Oh. I meant we can just nuke them immediately without going thru the entire 
compaction pipeline.
This would solve the problem much simpler (either your approach or mine), we 
don't even have to scan them.
The last file cannot be deleted though, even if expired, to preserve seqNum

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-30 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13782333#comment-13782333
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Or do you mean the code to delete after compaction already exists? 

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-30 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13782406#comment-13782406
 ] 

Lars Hofhansl commented on HBASE-9648:
--

I might be misunderstanding the issue...
When hbase.store.delete.expired.storefile is true an old storefile is nuked 
immediately as part of the selection process (rather than being compacted and 
then deleted). The issue is when we only have a single store file left and it 
is expired, in that case we nuke, but write a new (empty) one to keep the 
sequenceId; this file is then nuked (because we return -1 from 
getMaxTimestamp() for empty files), and from here we repeat the same cycle. 
Another apparent issue is the ratio based selection with empty files.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-09-30 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13782415#comment-13782415
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Yeah, that is the issue. However, it's not just deleted, it goes thru 
compaction with a request for one file, then it's at least nominally scanned 
(probably it skips the entire file in scanner), committed, etc. etc.
We could just archive it straight away, no compaction or anything.

The fixes previously discussed here were fixing the special case handling for 
the creation of new file, as we don't really need to do it as often as we do. 


> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-01 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13783155#comment-13783155
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

let me try to make example patch

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-01 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13783157#comment-13783157
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Will be nice also to be able to reproduce this issue, to test a potential fix.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-01 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13783563#comment-13783563
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Actually we kind of already do, in testDeleteExpiredStoreFiles in TestStore.
It expires 4 files and verifies there are still 4 file :)

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-01 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13783564#comment-13783564
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

*on first loop iteration

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-02 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13784040#comment-13784040
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Ok. For the test, I see. We are testing it, but it's working as expected. We 
creates 4 files which are not empty and we try to compact them. We don't have 
the corner case where those files are empty, and when there is only one single 
file in the store, etc.

So if I take the test from your patch but not the rest, it should be failing, 
right? Overall the patch looks good. There is some small things but we will 
keep that for the final version ;)

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-02 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13784187#comment-13784187
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Well, the test would fail but not just due to logical reasons, also because the 
flow changes, there's no longer real compaction when this happens, it just 
archives the files. [~eclark] wdyt?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-02 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13784197#comment-13784197
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


But a good test should not really worry about the flow, right? That's the goal 
of it. I will try to reproduce that without the patch, and try it with and 
see...

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-02 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13784202#comment-13784202
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Well, I mean the logic changed. The test was checking that compactions happen, 
and they no longer do

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-07 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13788393#comment-13788393
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

ping? any other opinion on this?
We can also file a bug to limit empty file creation as per [~jmspaggi] patch, 
or do it the other way around.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-21 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13800658#comment-13800658
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Ping again ;)

Should we move forward with what I proposed initially and open another JIRA if 
we want to go further?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-21 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13800859#comment-13800859
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

[~jmspaggi] you were one of the people I was pinging :) Any opinion, incl. on 
the above patch?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-28 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13807297#comment-13807297
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

la la la

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-10-28 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13807398#comment-13807398
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Sorry busy because of Strata :( I will have may more time next week (starting 
Thursday/Friday this week)...

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648.patch, HBASE-9648-v0-0.94.patch, 
> HBASE-9648-v0-trunk.patch, HBASE-9648-v1-trunk.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-04 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13839201#comment-13839201
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

stumbled upon this jira (not bug :)) again... do you want to go with either 
patch

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-07 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13842202#comment-13842202
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


So. Back on this JIRA ;)

I think patch HBASE-9648-v1-trunk.patch can fix this issue the user faced on 
the mailing list.  It basically do what need to be done to avoid this from the 
first level.

It passed Hadoop QA, but I can also port it to 0.94 and give it a bigger try on 
my own cluster...

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-11 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13845948#comment-13845948
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Makes sense... I can move the other patch for different jira. Technically, in 
compaction policy, last candidate is not necessarily the latest file in store 
as some files might not be candidates (for example, already compacting if there 
are multiple compaction threads). But it should be ok. 
Can you resubmit the patch for QA to kick in again? Thanks.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-12 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13846494#comment-13846494
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Sure. I will rebase (if required) and re-submit later today (this evening 
probably).

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-12 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13846566#comment-13846566
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Rebased the other patch in HBASE-10141

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-13 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847560#comment-13847560
 ] 

Hadoop QA commented on HBASE-9648:
--

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12618595/HBASE-9648-v2-trunk.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop1.1{color}.  The patch compiles against the hadoop 
1.1 profile.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8157//console

This message is automatically generated.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-13 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847797#comment-13847797
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

{code}
+if ((requestMaxSequenceId == storeMaxSequenceId) || (requestEntries > 
0)) writer =
+store.createWriterInTmp(fd.maxKeyCount, 
this.compactionCompression, true,
+  fd.maxMVCCReadpoint >= smallestReadPoint, fd.maxTagsLength > 0);
{code}
Nit: please add braces.

Other than that, seeing if inputs have entries is not technically speaking 
valid because coproc can replace scanners. 
Should it rather create writer either if last seqId is being compacted there, 
or on first record from the scanner, if needed?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-13 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847827#comment-13847827
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Or can we look at the entries before we trigger the coprocessors? That way we 
are sure they will not modify the scanner? and we keep the writer creation the 
way it is in the patch?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-13 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847934#comment-13847934
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

coproc takes a scanner (StoreScanner of all files) and produces a scanner. What 
do you mean?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-13 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847947#comment-13847947
 ] 

Jean-Marc Spaggiari commented on HBASE-9648:


Hum. Looking at it again, I might be missing something.

Even if coprocessors can replace the scanner, that doesn't change the list of 
store files, right? Or can the scanner make the compactor looking at another 
set of store files?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-13 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847970#comment-13847970
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

The scanner created by coproc can hypothetically do anything. Actually I am 
kind of ambivalent on that one. Maybe we should just document it, I suspect 
coprocs usually don't generate new KVs out of no input KVs.
But, is it difficult to create writer on first entry? If it's easy, any reason 
to not do it?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-19 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13853550#comment-13853550
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

[~jmspaggi] ping?

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-19 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13853690#comment-13853690
 ] 

Hadoop QA commented on HBASE-9648:
--

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12619721/HBASE-9648-v3-trunk.patch
  against trunk revision .
  ATTACHMENT ID: 12619721

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop1.1{color}.  The patch compiles against the hadoop 
1.1 profile.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/8238//console

This message is automatically generated.

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, 
> HBASE-9648-v3-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HBASE-9648) collection one expired storefile causes it to be replaced by another expired storefile

2013-12-20 Thread Sergey Shelukhin (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13854374#comment-13854374
 ] 

Sergey Shelukhin commented on HBASE-9648:
-

Just clarifying, why is it hard to create writer is needed? For the case when 
there are seemingly no KVs when you were creating the writer. I think coprocs 
cannot screw up the seqIds, because set of files is already chosen, so that 
should be ok

> collection one expired storefile causes it to be replaced by another expired 
> storefile
> --
>
> Key: HBASE-9648
> URL: https://issues.apache.org/jira/browse/HBASE-9648
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction
>Reporter: Sergey Shelukhin
>Assignee: Jean-Marc Spaggiari
> Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch, 
> HBASE-9648-v1-trunk.patch, HBASE-9648-v2-trunk.patch, 
> HBASE-9648-v3-trunk.patch, HBASE-9648.patch
>
>
> There's a shortcut in compaction selection that causes the selection of 
> expired store files to quickly delete.
> However, there's also the code that ensures we write at least one file to 
> preserve seqnum. This new empty file is "expired", because it has no data, 
> presumably.
> So it's collected again, etc.
> This affects 94, probably also 96.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)