Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread Bill Havanki
I haven't had an opportunity to try it again since my +1, but prior to that
it has been consistently failing.

- I tried extending the timeout on the test, but it would still time out.
- I see the behavior on Mac OS X and under CentOS. (I wonder if it's a JVM
thing?)

On Wed, Sep 24, 2014 at 9:06 PM, Corey Nolet cjno...@gmail.com wrote:

 Vote passes with 4 +1's and no -1's.

 Bill, were you able to get the IT to run yet? I'm still having timeouts on
 my end as well.


 On Wed, Sep 24, 2014 at 1:41 PM, Josh Elser josh.el...@gmail.com wrote:

  The crux of it is that both of the errors in the CRC where single bit
  variants.
 
  y instead of 9 and p instead of 0
 
  Both of these cases are a '1' in the most significant bit of the byte
  instead of a '0'. We recognized these because y and p are outside of the
  hex range. Fixing both of these fixes the CRC error (manually verified).
 
  That's all we know right now. I'm currently running memtest86. I do not
  have ECC ram, so it *is* theoretically possible that was the cause. After
  running memtest for a day or so (or until I need my desktop functional
  again), I'll go back and see if I can reproduce this again.
 
 
  Mike Drob wrote:
 
  Any chance the IRC chats can make it only the ML for posterity?
 
  Mike
 
  On Wed, Sep 24, 2014 at 12:04 PM, Keith Turnerke...@deenlo.com
 wrote:
 
   On Wed, Sep 24, 2014 at 12:44 PM, Russ Weeksrwe...@newbrightidea.com
  wrote:
 
   Interesting that y (0x79) and 9 (0x39) are one bit away from
 each
  other. I blame cosmic rays!
 
   It is interesting, and thats only half of the story.  Its been
  interesting
  chatting w/ Josh about this on irc and hearing about his findings.
 
 
   On Wed, Sep 24, 2014 at 9:05 AM, Josh Elserjosh.el...@gmail.com
 
  wrote:
 
  The offending keys are:
 
  389a85668b6ebf8e 2ff6:4a78 [] 1411499115242
 
  3a10885b-d481-4d00-be00-0477e231ey65:8576b169:
  0cd98965c9ccc1d0:ba15529e
 
   The careful eye will notice that the UUID in the first component
 of
  the
  value has a different suffix than the next corrupt key/value (ends
 with
  ey65 instead of e965). Fixing this in the Value and re-running
 the
 
  CRC
 
  makes it pass.
 
 
and
 
  7e56b58a0c7df128 5fa0:6249 [] 1411499311578
 
  3a10885b-d481-4d00-be00-0477e231e965:p000872d60eb:
  499fa72752d82a7c:5c5f19e8
 
 
 
 




-- 
// Bill Havanki
// Solutions Architect, Cloudera Govt Solutions
// 443.686.9283


Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread Corey Nolet
I'm seeing the behavior under Max OS X and Fedora 19 and they have been
consistently failing for me. I'm thinking ACCUMULO-3073. Since others are
able to get it to pass, I did not think it should fail the vote solely on
that but I do think it needs attention, quickly.

On Thu, Sep 25, 2014 at 10:43 AM, Bill Havanki bhava...@clouderagovt.com
wrote:

 I haven't had an opportunity to try it again since my +1, but prior to that
 it has been consistently failing.

 - I tried extending the timeout on the test, but it would still time out.
 - I see the behavior on Mac OS X and under CentOS. (I wonder if it's a JVM
 thing?)

 On Wed, Sep 24, 2014 at 9:06 PM, Corey Nolet cjno...@gmail.com wrote:

  Vote passes with 4 +1's and no -1's.
 
  Bill, were you able to get the IT to run yet? I'm still having timeouts
 on
  my end as well.
 
 
  On Wed, Sep 24, 2014 at 1:41 PM, Josh Elser josh.el...@gmail.com
 wrote:
 
   The crux of it is that both of the errors in the CRC where single bit
   variants.
  
   y instead of 9 and p instead of 0
  
   Both of these cases are a '1' in the most significant bit of the byte
   instead of a '0'. We recognized these because y and p are outside of
 the
   hex range. Fixing both of these fixes the CRC error (manually
 verified).
  
   That's all we know right now. I'm currently running memtest86. I do not
   have ECC ram, so it *is* theoretically possible that was the cause.
 After
   running memtest for a day or so (or until I need my desktop functional
   again), I'll go back and see if I can reproduce this again.
  
  
   Mike Drob wrote:
  
   Any chance the IRC chats can make it only the ML for posterity?
  
   Mike
  
   On Wed, Sep 24, 2014 at 12:04 PM, Keith Turnerke...@deenlo.com
  wrote:
  
On Wed, Sep 24, 2014 at 12:44 PM, Russ Weeks
 rwe...@newbrightidea.com
   wrote:
  
Interesting that y (0x79) and 9 (0x39) are one bit away from
  each
   other. I blame cosmic rays!
  
It is interesting, and thats only half of the story.  Its been
   interesting
   chatting w/ Josh about this on irc and hearing about his findings.
  
  
On Wed, Sep 24, 2014 at 9:05 AM, Josh Elserjosh.el...@gmail.com
  
   wrote:
  
   The offending keys are:
  
   389a85668b6ebf8e 2ff6:4a78 [] 1411499115242
  
   3a10885b-d481-4d00-be00-0477e231ey65:8576b169:
   0cd98965c9ccc1d0:ba15529e
  
The careful eye will notice that the UUID in the first component
  of
   the
   value has a different suffix than the next corrupt key/value (ends
  with
   ey65 instead of e965). Fixing this in the Value and re-running
  the
  
   CRC
  
   makes it pass.
  
  
 and
  
   7e56b58a0c7df128 5fa0:6249 [] 1411499311578
  
   3a10885b-d481-4d00-be00-0477e231e965:p000872d60eb:
   499fa72752d82a7c:5c5f19e8
  
  
  
  
 



 --
 // Bill Havanki
 // Solutions Architect, Cloudera Govt Solutions
 // 443.686.9283



Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread Josh Elser
Please make a ticket for it and supply the MAC directories for the test 
and the failsafe output.


It doesn't fail for me. It's possible that there is some edge case that 
you and Bill are hitting that I'm not.


Corey Nolet wrote:

I'm seeing the behavior under Max OS X and Fedora 19 and they have been
consistently failing for me. I'm thinking ACCUMULO-3073. Since others are
able to get it to pass, I did not think it should fail the vote solely on
that but I do think it needs attention, quickly.

On Thu, Sep 25, 2014 at 10:43 AM, Bill Havankibhava...@clouderagovt.com
wrote:


I haven't had an opportunity to try it again since my +1, but prior to that
it has been consistently failing.

- I tried extending the timeout on the test, but it would still time out.
- I see the behavior on Mac OS X and under CentOS. (I wonder if it's a JVM
thing?)

On Wed, Sep 24, 2014 at 9:06 PM, Corey Noletcjno...@gmail.com  wrote:


Vote passes with 4 +1's and no -1's.

Bill, were you able to get the IT to run yet? I'm still having timeouts

on

my end as well.


On Wed, Sep 24, 2014 at 1:41 PM, Josh Elserjosh.el...@gmail.com

wrote:

The crux of it is that both of the errors in the CRC where single bit
variants.

y instead of 9 and p instead of 0

Both of these cases are a '1' in the most significant bit of the byte
instead of a '0'. We recognized these because y and p are outside of

the

hex range. Fixing both of these fixes the CRC error (manually

verified).

That's all we know right now. I'm currently running memtest86. I do not
have ECC ram, so it *is* theoretically possible that was the cause.

After

running memtest for a day or so (or until I need my desktop functional
again), I'll go back and see if I can reproduce this again.


Mike Drob wrote:


Any chance the IRC chats can make it only the ML for posterity?

Mike

On Wed, Sep 24, 2014 at 12:04 PM, Keith Turnerke...@deenlo.com

wrote:

  On Wed, Sep 24, 2014 at 12:44 PM, Russ Weeks

rwe...@newbrightidea.com

wrote:

  Interesting that y (0x79) and 9 (0x39) are one bit away from

each

other. I blame cosmic rays!

  It is interesting, and thats only half of the story.  Its been

interesting
chatting w/ Josh about this on irc and hearing about his findings.


  On Wed, Sep 24, 2014 at 9:05 AM, Josh Elserjosh.el...@gmail.com
wrote:


The offending keys are:

389a85668b6ebf8e 2ff6:4a78 [] 1411499115242

3a10885b-d481-4d00-be00-0477e231ey65:8576b169:
0cd98965c9ccc1d0:ba15529e

  The careful eye will notice that the UUID in the first component

of

the
value has a different suffix than the next corrupt key/value (ends

with

ey65 instead of e965). Fixing this in the Value and re-running

the

CRC


makes it pass.


   and


7e56b58a0c7df128 5fa0:6249 [] 1411499311578

3a10885b-d481-4d00-be00-0477e231e965:p000872d60eb:
499fa72752d82a7c:5c5f19e8






--
// Bill Havanki
// Solutions Architect, Cloudera Govt Solutions
// 443.686.9283





Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread William Slacum
I'm a little concerned we had two +1's that mention failures. The one time
when we're supposed to have a clean run through, we have 50% of the
participators noticing failure. It doesn't instill much confidence in me.

On Thu, Sep 25, 2014 at 2:18 PM, Josh Elser josh.el...@gmail.com wrote:

 Please make a ticket for it and supply the MAC directories for the test
 and the failsafe output.

 It doesn't fail for me. It's possible that there is some edge case that
 you and Bill are hitting that I'm not.


 Corey Nolet wrote:

 I'm seeing the behavior under Max OS X and Fedora 19 and they have been
 consistently failing for me. I'm thinking ACCUMULO-3073. Since others are
 able to get it to pass, I did not think it should fail the vote solely on
 that but I do think it needs attention, quickly.

 On Thu, Sep 25, 2014 at 10:43 AM, Bill Havankibhava...@clouderagovt.com
 wrote:

  I haven't had an opportunity to try it again since my +1, but prior to
 that
 it has been consistently failing.

 - I tried extending the timeout on the test, but it would still time out.
 - I see the behavior on Mac OS X and under CentOS. (I wonder if it's a
 JVM
 thing?)

 On Wed, Sep 24, 2014 at 9:06 PM, Corey Noletcjno...@gmail.com  wrote:

  Vote passes with 4 +1's and no -1's.

 Bill, were you able to get the IT to run yet? I'm still having timeouts

 on

 my end as well.


 On Wed, Sep 24, 2014 at 1:41 PM, Josh Elserjosh.el...@gmail.com

 wrote:

 The crux of it is that both of the errors in the CRC where single bit
 variants.

 y instead of 9 and p instead of 0

 Both of these cases are a '1' in the most significant bit of the byte
 instead of a '0'. We recognized these because y and p are outside of

 the

 hex range. Fixing both of these fixes the CRC error (manually

 verified).

 That's all we know right now. I'm currently running memtest86. I do not
 have ECC ram, so it *is* theoretically possible that was the cause.

 After

 running memtest for a day or so (or until I need my desktop functional
 again), I'll go back and see if I can reproduce this again.


 Mike Drob wrote:

  Any chance the IRC chats can make it only the ML for posterity?

 Mike

 On Wed, Sep 24, 2014 at 12:04 PM, Keith Turnerke...@deenlo.com

 wrote:

   On Wed, Sep 24, 2014 at 12:44 PM, Russ Weeks

 rwe...@newbrightidea.com

 wrote:

   Interesting that y (0x79) and 9 (0x39) are one bit away from

 each

 other. I blame cosmic rays!

   It is interesting, and thats only half of the story.  Its been

 interesting
 chatting w/ Josh about this on irc and hearing about his findings.


   On Wed, Sep 24, 2014 at 9:05 AM, Josh Elserjosh.el...@gmail.com
 wrote:

  The offending keys are:

 389a85668b6ebf8e 2ff6:4a78 [] 1411499115242

 3a10885b-d481-4d00-be00-0477e231ey65:8576b169:
 0cd98965c9ccc1d0:ba15529e

   The careful eye will notice that the UUID in the first
 component

 of

 the
 value has a different suffix than the next corrupt key/value (ends

 with

 ey65 instead of e965). Fixing this in the Value and re-running

 the

 CRC

  makes it pass.


and

  7e56b58a0c7df128 5fa0:6249 [] 1411499311578

 3a10885b-d481-4d00-be00-0477e231e965:p000872d60eb:
 499fa72752d82a7c:5c5f19e8





 --
 // Bill Havanki
 // Solutions Architect, Cloudera Govt Solutions
 // 443.686.9283





Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread Keith Turner
I ran 24 hr of random walk against 1.6.1. I saw ACCUMULO-3169,
ACCUMULO-3170, and ACCUMULO-3171.  I feel like these are not new in 1.6.1,
but have not investigated in depth yet.

On Fri, Sep 19, 2014 at 10:49 PM, Corey Nolet cjno...@gmail.com wrote:

 Devs,

 Please consider the following candidate for Apache Accumulo 1.6.1

 Branch: 1.6.1-rc1
 SHA1: 88c5473b3b49d797d3dabebd12fe517e9b248ba2
 Staging Repository:
 *
 https://repository.apache.org/content/repositories/orgapacheaccumulo-1017/
 
 https://repository.apache.org/content/repositories/orgapacheaccumulo-1017/
 *

 Source tarball:
 *
 http://repository.apache.org/content/repositories/orgapacheaccumulo-1017/org/apache/accumulo/accumulo/1.6.1/accumulo-1.6.1-src.tar.gz
 
 http://repository.apache.org/content/repositories/orgapacheaccumulo-1017/org/apache/accumulo/accumulo/1.6.1/accumulo-1.6.1-src.tar.gz
 *
 Binary tarball:
 *
 http://repository.apache.org/content/repositories/orgapacheaccumulo-1017/org/apache/accumulo/accumulo/1.6.1/accumulo-1.6.1-bin.tar.gz
 
 http://repository.apache.org/content/repositories/orgapacheaccumulo-1017/org/apache/accumulo/accumulo/1.6.1/accumulo-1.6.1-bin.tar.gz
 *
 (Append .sha1, .md5 or .asc to download the signature/hash for a
 given artifact.)

 Signing keys available at: https://www.apache.org/dist/accumulo/KEYS

 Over 1.6.1, we have 188 issues resolved
 *
 https://git-wip-us.apache.org/repos/asf?p=accumulo.git;a=blob;f=CHANGES;h=91b9d31e3b9dc53f1a576cc49bbc061919eb0070;hb=1.6.1-rc1
 
 https://git-wip-us.apache.org/repos/asf?p=accumulo.git;a=blob;f=CHANGES;h=91b9d31e3b9dc53f1a576cc49bbc061919eb0070;hb=1.6.1-rc1
 *

 Testing: All unit and functional tests are passing.

 Vote will be open until Thursday, September 25th 12:00AM UTC (9/24 8:00PM
 ET, 9/24 5:00PM PT)



Re: [accumulo] your /dist/ artifacts - 1 BAD signature

2014-09-25 Thread Christopher
[note: thread moved to dev@]

Okay, I just confirmed that the current files in dist are the same ones in
Maven Central are the same ones that we voted on. So, that issue is
resolved. I double checked and saw that the gpg-signed tag hasn't been
created for 1.6.1 (git tag -s 1.6.1 origin/1.6.1-rc1). I guess technically
anybody could do this, and merge it (along with the version bump to
1.6.2-SNAPSHOT commit) to 1.6.2-SNAPSHOT branch (and forward, with -sours),
if Corey doesn't have time/gets busy.


--
Christopher L Tubbs II
http://gravatar.com/ctubbsii

On Thu, Sep 25, 2014 at 2:21 PM, Corey Nolet cjno...@gmail.com wrote:

 There's still a few things I need to do before announcing the release to
 the user list. Merging the rc into the next version branch was one of them
 and creating the official release tag was another. I'll do these tonight as
 well as writing up the release notes for the site.


 On Thu, Sep 25, 2014 at 1:59 PM, Christopher ctubb...@apache.org wrote:

  Also, we can move this list to dev@. There's no reason for it to be
  private@
  .
 
 
  --
  Christopher L Tubbs II
  http://gravatar.com/ctubbsii
 
  On Thu, Sep 25, 2014 at 1:59 PM, Christopher ctubb...@apache.org
 wrote:
 
   There's one more problem that Keith and I found... it doesn't look like
   the rc1 branch got merged to 1.6.2-SNAPSHOT. I don't know if some other
   branch got accidentally merged instead.
  
  
   --
   Christopher L Tubbs II
   http://gravatar.com/ctubbsii
  
   On Thu, Sep 25, 2014 at 1:40 PM, Josh Elser josh.el...@gmail.com
  wrote:
  
   Things look good to me now. I checked the artifacts on dist/ against
  what
   I have from evaluating the RC and they appear to match.
  
   Anything else we need to do here?
  
  
   Christopher wrote:
  
   I was able to confirm the signature is bad. When I checked the RC,
 the
   signature was good, so I'm guessing the wrong one just got uploaded.
 I
   don't have a copy of the RC that I had previously downloaded, but I
 was
   able to grab a copy of what was deployed to Maven central and fix the
   dist
   sigs/checksums from that.
  
   Now, it's possible that the wrong artifacts were uploaded to Maven
   central
   (perhaps the wrong staging repo was promoted?) I can't know that for
   sure,
   until I can get to work and check my last download from the RC vote
 and
   compare with what's in Maven central now. If that is the case, then
 we
   need
   to determine precisely what is different from this upload and what
 was
   voted on and see if we need to immediately re-release as 1.6.2 to fix
  the
   problems.
  
  
   --
   Christopher L Tubbs II
   http://gravatar.com/ctubbsii
  
   On Thu, Sep 25, 2014 at 3:12 AM, Henk Penninghe...@apache.org
  wrote:
  
Hi PMC accumulo,
  
  I watch 'www.apache.org/dist/', and I noticed that :
  
  -- you have 1 BAD pgp signature
  
   accumulo/1.6.1/accumulo-1.6.1-src.tar.gz.asc
  
  Please fix this problem soon ; for details, see
  
  
  http://people.apache.org/~henkp/checker/sig.html#project-accumulo
http://people.apache.org/~henkp/checker/md5.html
  
  For information on how to fix problems, see the faq :
  
http://people.apache.org/~henkp/checker/faq.html
  
  Thanks a lot, regards,
  
  Henk Penning -- apache.org infrastructure
  
  PS. The contents of this message is generated,
  but the mail itself is sent by hand.
  PS. Please cc me on all relevant emails.
  
   -   _
   Henk P. Penning, ICT-beta  R Uithof WISK-412  _/ _
   Faculty of Science, Utrecht University T +31 30 253 4106 / _/
   Budapestlaan 6, 3584CD Utrecht, NL F +31 30 253 4553 _/ _/
   http://people.cs.uu.nl/henkp/  M penn...@uu.nl _/
  
  
  
  
 



Re: [accumulo] your /dist/ artifacts - 1 BAD signature

2014-09-25 Thread Corey Nolet
I see what happened. I was expecting the mvn:release plugin to push the
prepare for next development iteration which it did not. I just pushed it
up and created the tag. I'll work on the release notes in a bit.

On Thu, Sep 25, 2014 at 3:33 PM, Christopher ctubb...@apache.org wrote:

 [note: thread moved to dev@]

 Okay, I just confirmed that the current files in dist are the same ones in
 Maven Central are the same ones that we voted on. So, that issue is
 resolved. I double checked and saw that the gpg-signed tag hasn't been
 created for 1.6.1 (git tag -s 1.6.1 origin/1.6.1-rc1). I guess technically
 anybody could do this, and merge it (along with the version bump to
 1.6.2-SNAPSHOT commit) to 1.6.2-SNAPSHOT branch (and forward, with -sours),
 if Corey doesn't have time/gets busy.


 --
 Christopher L Tubbs II
 http://gravatar.com/ctubbsii

 On Thu, Sep 25, 2014 at 2:21 PM, Corey Nolet cjno...@gmail.com wrote:

  There's still a few things I need to do before announcing the release to
  the user list. Merging the rc into the next version branch was one of
 them
  and creating the official release tag was another. I'll do these tonight
 as
  well as writing up the release notes for the site.
 
 
  On Thu, Sep 25, 2014 at 1:59 PM, Christopher ctubb...@apache.org
 wrote:
 
   Also, we can move this list to dev@. There's no reason for it to be
   private@
   .
  
  
   --
   Christopher L Tubbs II
   http://gravatar.com/ctubbsii
  
   On Thu, Sep 25, 2014 at 1:59 PM, Christopher ctubb...@apache.org
  wrote:
  
There's one more problem that Keith and I found... it doesn't look
 like
the rc1 branch got merged to 1.6.2-SNAPSHOT. I don't know if some
 other
branch got accidentally merged instead.
   
   
--
Christopher L Tubbs II
http://gravatar.com/ctubbsii
   
On Thu, Sep 25, 2014 at 1:40 PM, Josh Elser josh.el...@gmail.com
   wrote:
   
Things look good to me now. I checked the artifacts on dist/ against
   what
I have from evaluating the RC and they appear to match.
   
Anything else we need to do here?
   
   
Christopher wrote:
   
I was able to confirm the signature is bad. When I checked the RC,
  the
signature was good, so I'm guessing the wrong one just got
 uploaded.
  I
don't have a copy of the RC that I had previously downloaded, but I
  was
able to grab a copy of what was deployed to Maven central and fix
 the
dist
sigs/checksums from that.
   
Now, it's possible that the wrong artifacts were uploaded to Maven
central
(perhaps the wrong staging repo was promoted?) I can't know that
 for
sure,
until I can get to work and check my last download from the RC vote
  and
compare with what's in Maven central now. If that is the case, then
  we
need
to determine precisely what is different from this upload and what
  was
voted on and see if we need to immediately re-release as 1.6.2 to
 fix
   the
problems.
   
   
--
Christopher L Tubbs II
http://gravatar.com/ctubbsii
   
On Thu, Sep 25, 2014 at 3:12 AM, Henk Penninghe...@apache.org
   wrote:
   
 Hi PMC accumulo,
   
   I watch 'www.apache.org/dist/', and I noticed that :
   
   -- you have 1 BAD pgp signature
   
accumulo/1.6.1/accumulo-1.6.1-src.tar.gz.asc
   
   Please fix this problem soon ; for details, see
   
   
   http://people.apache.org/~henkp/checker/sig.html#project-accumulo
 http://people.apache.org/~henkp/checker/md5.html
   
   For information on how to fix problems, see the faq :
   
 http://people.apache.org/~henkp/checker/faq.html
   
   Thanks a lot, regards,
   
   Henk Penning -- apache.org infrastructure
   
   PS. The contents of this message is generated,
   but the mail itself is sent by hand.
   PS. Please cc me on all relevant emails.
   
-   _
Henk P. Penning, ICT-beta  R Uithof WISK-412  _/ _
Faculty of Science, Utrecht University T +31 30 253 4106 / _/
Budapestlaan 6, 3584CD Utrecht, NL F +31 30 253 4553 _/ _/
http://people.cs.uu.nl/henkp/  M penn...@uu.nl _/
   
   
   
   
  
 



Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread Christopher
That seems like a reason to vote -1 (and perhaps to encourage others to do
so also). I'm not sure this can be helped so long as people have different
criteria for their vote, though. If we can fix those issues, I'm ready to
vote on a 1.6.2 :)


--
Christopher L Tubbs II
http://gravatar.com/ctubbsii

On Thu, Sep 25, 2014 at 2:42 PM, William Slacum 
wilhelm.von.cl...@accumulo.net wrote:

 I'm a little concerned we had two +1's that mention failures. The one time
 when we're supposed to have a clean run through, we have 50% of the
 participators noticing failure. It doesn't instill much confidence in me.

 On Thu, Sep 25, 2014 at 2:18 PM, Josh Elser josh.el...@gmail.com wrote:

  Please make a ticket for it and supply the MAC directories for the test
  and the failsafe output.
 
  It doesn't fail for me. It's possible that there is some edge case that
  you and Bill are hitting that I'm not.
 
 
  Corey Nolet wrote:
 
  I'm seeing the behavior under Max OS X and Fedora 19 and they have been
  consistently failing for me. I'm thinking ACCUMULO-3073. Since others
 are
  able to get it to pass, I did not think it should fail the vote solely
 on
  that but I do think it needs attention, quickly.
 
  On Thu, Sep 25, 2014 at 10:43 AM, Bill Havanki
 bhava...@clouderagovt.com
  wrote:
 
   I haven't had an opportunity to try it again since my +1, but prior to
  that
  it has been consistently failing.
 
  - I tried extending the timeout on the test, but it would still time
 out.
  - I see the behavior on Mac OS X and under CentOS. (I wonder if it's a
  JVM
  thing?)
 
  On Wed, Sep 24, 2014 at 9:06 PM, Corey Noletcjno...@gmail.com
 wrote:
 
   Vote passes with 4 +1's and no -1's.
 
  Bill, were you able to get the IT to run yet? I'm still having
 timeouts
 
  on
 
  my end as well.
 
 
  On Wed, Sep 24, 2014 at 1:41 PM, Josh Elserjosh.el...@gmail.com
 
  wrote:
 
  The crux of it is that both of the errors in the CRC where single bit
  variants.
 
  y instead of 9 and p instead of 0
 
  Both of these cases are a '1' in the most significant bit of the byte
  instead of a '0'. We recognized these because y and p are outside of
 
  the
 
  hex range. Fixing both of these fixes the CRC error (manually
 
  verified).
 
  That's all we know right now. I'm currently running memtest86. I do
 not
  have ECC ram, so it *is* theoretically possible that was the cause.
 
  After
 
  running memtest for a day or so (or until I need my desktop functional
  again), I'll go back and see if I can reproduce this again.
 
 
  Mike Drob wrote:
 
   Any chance the IRC chats can make it only the ML for posterity?
 
  Mike
 
  On Wed, Sep 24, 2014 at 12:04 PM, Keith Turnerke...@deenlo.com
 
  wrote:
 
On Wed, Sep 24, 2014 at 12:44 PM, Russ Weeks
 
  rwe...@newbrightidea.com
 
  wrote:
 
Interesting that y (0x79) and 9 (0x39) are one bit away
 from
 
  each
 
  other. I blame cosmic rays!
 
It is interesting, and thats only half of the story.  Its been
 
  interesting
  chatting w/ Josh about this on irc and hearing about his findings.
 
 
On Wed, Sep 24, 2014 at 9:05 AM, Josh Elserjosh.el...@gmail.com
 
  wrote:
 
   The offending keys are:
 
  389a85668b6ebf8e 2ff6:4a78 [] 1411499115242
 
  3a10885b-d481-4d00-be00-0477e231ey65:8576b169:
  0cd98965c9ccc1d0:ba15529e
 
The careful eye will notice that the UUID in the first
  component
 
  of
 
  the
  value has a different suffix than the next corrupt key/value
 (ends
 
  with
 
  ey65 instead of e965). Fixing this in the Value and re-running
 
  the
 
  CRC
 
   makes it pass.
 
 
 and
 
   7e56b58a0c7df128 5fa0:6249 [] 1411499311578
 
  3a10885b-d481-4d00-be00-0477e231e965:p000872d60eb:
  499fa72752d82a7c:5c5f19e8
 
 
 
 
 
  --
  // Bill Havanki
  // Solutions Architect, Cloudera Govt Solutions
  // 443.686.9283
 
 
 



[GitHub] accumulo pull request: ACCUMULO-2942 Fixes ShardedTableDistributio...

2014-09-25 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/accumulo/pull/10


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-2943 Fixing failures where no RNG ...

2014-09-25 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/accumulo/pull/11


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


Re: [VOTE] Apache Accumulo 1.6.1 RC1

2014-09-25 Thread Corey Nolet
Christopher, are you referring to Keith's last comment or Bill Slacum's?

On Thu, Sep 25, 2014 at 9:13 PM, Christopher ctubb...@apache.org wrote:

 That seems like a reason to vote -1 (and perhaps to encourage others to do
 so also). I'm not sure this can be helped so long as people have different
 criteria for their vote, though. If we can fix those issues, I'm ready to
 vote on a 1.6.2 :)


 --
 Christopher L Tubbs II
 http://gravatar.com/ctubbsii

 On Thu, Sep 25, 2014 at 2:42 PM, William Slacum 
 wilhelm.von.cl...@accumulo.net wrote:

  I'm a little concerned we had two +1's that mention failures. The one
 time
  when we're supposed to have a clean run through, we have 50% of the
  participators noticing failure. It doesn't instill much confidence in me.
 
  On Thu, Sep 25, 2014 at 2:18 PM, Josh Elser josh.el...@gmail.com
 wrote:
 
   Please make a ticket for it and supply the MAC directories for the test
   and the failsafe output.
  
   It doesn't fail for me. It's possible that there is some edge case that
   you and Bill are hitting that I'm not.
  
  
   Corey Nolet wrote:
  
   I'm seeing the behavior under Max OS X and Fedora 19 and they have
 been
   consistently failing for me. I'm thinking ACCUMULO-3073. Since others
  are
   able to get it to pass, I did not think it should fail the vote solely
  on
   that but I do think it needs attention, quickly.
  
   On Thu, Sep 25, 2014 at 10:43 AM, Bill Havanki
  bhava...@clouderagovt.com
   wrote:
  
I haven't had an opportunity to try it again since my +1, but prior
 to
   that
   it has been consistently failing.
  
   - I tried extending the timeout on the test, but it would still time
  out.
   - I see the behavior on Mac OS X and under CentOS. (I wonder if it's
 a
   JVM
   thing?)
  
   On Wed, Sep 24, 2014 at 9:06 PM, Corey Noletcjno...@gmail.com
  wrote:
  
Vote passes with 4 +1's and no -1's.
  
   Bill, were you able to get the IT to run yet? I'm still having
  timeouts
  
   on
  
   my end as well.
  
  
   On Wed, Sep 24, 2014 at 1:41 PM, Josh Elserjosh.el...@gmail.com
  
   wrote:
  
   The crux of it is that both of the errors in the CRC where single
 bit
   variants.
  
   y instead of 9 and p instead of 0
  
   Both of these cases are a '1' in the most significant bit of the
 byte
   instead of a '0'. We recognized these because y and p are outside
 of
  
   the
  
   hex range. Fixing both of these fixes the CRC error (manually
  
   verified).
  
   That's all we know right now. I'm currently running memtest86. I do
  not
   have ECC ram, so it *is* theoretically possible that was the cause.
  
   After
  
   running memtest for a day or so (or until I need my desktop
 functional
   again), I'll go back and see if I can reproduce this again.
  
  
   Mike Drob wrote:
  
Any chance the IRC chats can make it only the ML for posterity?
  
   Mike
  
   On Wed, Sep 24, 2014 at 12:04 PM, Keith Turnerke...@deenlo.com
  
   wrote:
  
 On Wed, Sep 24, 2014 at 12:44 PM, Russ Weeks
  
   rwe...@newbrightidea.com
  
   wrote:
  
 Interesting that y (0x79) and 9 (0x39) are one bit away
  from
  
   each
  
   other. I blame cosmic rays!
  
 It is interesting, and thats only half of the story.  Its been
  
   interesting
   chatting w/ Josh about this on irc and hearing about his
 findings.
  
  
 On Wed, Sep 24, 2014 at 9:05 AM, Josh Elser
 josh.el...@gmail.com
  
   wrote:
  
The offending keys are:
  
   389a85668b6ebf8e 2ff6:4a78 [] 1411499115242
  
   3a10885b-d481-4d00-be00-0477e231ey65:8576b169:
   0cd98965c9ccc1d0:ba15529e
  
 The careful eye will notice that the UUID in the first
   component
  
   of
  
   the
   value has a different suffix than the next corrupt key/value
  (ends
  
   with
  
   ey65 instead of e965). Fixing this in the Value and re-running
  
   the
  
   CRC
  
makes it pass.
  
  
  and
  
7e56b58a0c7df128 5fa0:6249 [] 1411499311578
  
   3a10885b-d481-4d00-be00-0477e231e965:p000872d60eb:
   499fa72752d82a7c:5c5f19e8
  
  
  
  
  
   --
   // Bill Havanki
   // Solutions Architect, Cloudera Govt Solutions
   // 443.686.9283
  
  
  
 



[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073259
  
--- Diff: 
core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java 
---
@@ -103,6 +103,25 @@
   void create(String tableName, boolean versioningIter, TimeType timeType) 
throws AccumuloException, AccumuloSecurityException, TableExistsException;
 
   /**
+   * @param tableName
+   *  the name of the table
+   * @param limitVersion
+   *  Enables/disables the versioning iterator, which will limit 
the number of Key versions kept.
+   * @param timeType
+   *  specifies logical or real-time based time recording for 
entries in the table
+   * @param properties
+   *  initial table properties the user wants
+   * @throws AccumuloException
+   *   if a general error occurs
+   * @throws AccumuloSecurityException
+   *   if the user does not have permission
+   * @throws TableExistsException
+   *   if the table already exists
+   */
+  void create(String tableName, boolean limitVersion, TimeType timeType, 
MapString,String properties) throws AccumuloException, 
AccumuloSecurityException,
--- End diff --

Why are we adding more constructors at all? It seems unrelated to the 
nature of the title.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073371
  
--- Diff: 
core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java 
---
@@ -103,6 +103,25 @@
   void create(String tableName, boolean versioningIter, TimeType timeType) 
throws AccumuloException, AccumuloSecurityException, TableExistsException;
 
   /**
+   * @param tableName
+   *  the name of the table
+   * @param limitVersion
+   *  Enables/disables the versioning iterator, which will limit 
the number of Key versions kept.
+   * @param timeType
+   *  specifies logical or real-time based time recording for 
entries in the table
+   * @param properties
+   *  initial table properties the user wants
+   * @throws AccumuloException
+   *   if a general error occurs
+   * @throws AccumuloSecurityException
+   *   if the user does not have permission
+   * @throws TableExistsException
+   *   if the table already exists
+   */
+  void create(String tableName, boolean limitVersion, TimeType timeType, 
MapString,String properties) throws AccumuloException, 
AccumuloSecurityException,
--- End diff --

That's a use case, but it isn't a necessity. Why can't the existing table 
property configuration methods be used?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073474
  
--- Diff: test/src/test/java/org/apache/accumulo/test/VolumeChooserIT.java 
---
@@ -0,0 +1,670 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.test;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.Map.Entry;
+
+import org.apache.accumulo.core.client.BatchWriter;
+import org.apache.accumulo.core.client.BatchWriterConfig;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.client.admin.TimeType;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Range;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.metadata.MetadataTable;
+import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.DataFileColumnFamily;
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
+import org.apache.accumulo.test.functional.ConfigurableMacIT;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.RawLocalFileSystem;
+import org.apache.hadoop.io.Text;
+import org.junit.Test;
+
+/**
+ * 
+ */
+public class VolumeChooserIT extends ConfigurableMacIT {
+
+  private static final Text EMPTY = new Text();
+  private static final Value EMPTY_VALUE = new Value(new byte[] {});
+  private File volDirBase;
+  private Path v1, v2, v3, v4;
+
+  @Override
+  public void configure(MiniAccumuloConfigImpl cfg, Configuration 
hadoopCoreSite) {
+// Get 2 tablet servers
+cfg.setNumTservers(2);
+
+// Set the general volume chooser to the GeneralVolumeChooser so that 
different choosers can be specified
+MapString,String siteConfig = new HashMapString,String();
+siteConfig.put(Property.GENERAL_VOLUME_CHOOSER.getKey(), 
org.apache.accumulo.server.fs.GeneralVolumeChooser.class.getName());
+cfg.setSiteConfig(siteConfig);
+
+// Set up 4 different volume paths
+File baseDir = cfg.getDir();
+volDirBase = new File(baseDir, volumes);
+File v1f = new File(volDirBase, v1);
+File v2f = new File(volDirBase, v2);
+File v3f = new File(volDirBase, v3);
+File v4f = new File(volDirBase, v4);
+v1f.mkdir();
+v2f.mkdir();
+v4f.mkdir();
+v1 = new Path(file:// + v1f.getAbsolutePath());
+v2 = new Path(file:// + v2f.getAbsolutePath());
+v3 = new Path(file:// + v3f.getAbsolutePath());
+v4 = new Path(file:// + v4f.getAbsolutePath());
+
+// Only add volumes 1, 2, and 4 to the list of instance volumes to 
have one volume that isn't in the options list when they are choosing
+cfg.setProperty(Property.INSTANCE_VOLUMES, v1.toString() + , + 
v2.toString() + , + v4.toString());
+
+// use raw local file system so walogs sync and flush will work
+hadoopCoreSite.set(fs.file.impl, RawLocalFileSystem.class.getName());
+
+super.configure(cfg, hadoopCoreSite);
+
+  }
+
+  // Test that uses two tables with 10 split points each. They each use 
the StaticVolumeChooser to choose volumes.
+  @Test(timeout = 60 * 1000)
+  public void twoTablesStaticVolumeChooser() throws Exception {
+log.info(Starting StaticVolumeChooser);
+
+// Create and populate initial properties map for creating table 1
+MapString,String properties = new HashMapString,String();
+String propertyName = table.custom.chooser;
+String volume = 

[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073475
  
--- Diff: test/src/test/java/org/apache/accumulo/test/VolumeChooserIT.java 
---
@@ -0,0 +1,670 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.test;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.Map.Entry;
+
+import org.apache.accumulo.core.client.BatchWriter;
+import org.apache.accumulo.core.client.BatchWriterConfig;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.client.admin.TimeType;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Range;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.metadata.MetadataTable;
+import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.DataFileColumnFamily;
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
+import org.apache.accumulo.test.functional.ConfigurableMacIT;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.RawLocalFileSystem;
+import org.apache.hadoop.io.Text;
+import org.junit.Test;
+
+/**
+ * 
+ */
+public class VolumeChooserIT extends ConfigurableMacIT {
+
+  private static final Text EMPTY = new Text();
+  private static final Value EMPTY_VALUE = new Value(new byte[] {});
+  private File volDirBase;
+  private Path v1, v2, v3, v4;
+
+  @Override
+  public void configure(MiniAccumuloConfigImpl cfg, Configuration 
hadoopCoreSite) {
+// Get 2 tablet servers
+cfg.setNumTservers(2);
+
+// Set the general volume chooser to the GeneralVolumeChooser so that 
different choosers can be specified
+MapString,String siteConfig = new HashMapString,String();
+siteConfig.put(Property.GENERAL_VOLUME_CHOOSER.getKey(), 
org.apache.accumulo.server.fs.GeneralVolumeChooser.class.getName());
+cfg.setSiteConfig(siteConfig);
+
+// Set up 4 different volume paths
+File baseDir = cfg.getDir();
+volDirBase = new File(baseDir, volumes);
+File v1f = new File(volDirBase, v1);
+File v2f = new File(volDirBase, v2);
+File v3f = new File(volDirBase, v3);
+File v4f = new File(volDirBase, v4);
+v1f.mkdir();
+v2f.mkdir();
+v4f.mkdir();
+v1 = new Path(file:// + v1f.getAbsolutePath());
+v2 = new Path(file:// + v2f.getAbsolutePath());
+v3 = new Path(file:// + v3f.getAbsolutePath());
+v4 = new Path(file:// + v4f.getAbsolutePath());
+
+// Only add volumes 1, 2, and 4 to the list of instance volumes to 
have one volume that isn't in the options list when they are choosing
+cfg.setProperty(Property.INSTANCE_VOLUMES, v1.toString() + , + 
v2.toString() + , + v4.toString());
+
+// use raw local file system so walogs sync and flush will work
+hadoopCoreSite.set(fs.file.impl, RawLocalFileSystem.class.getName());
+
+super.configure(cfg, hadoopCoreSite);
+
+  }
+
+  // Test that uses two tables with 10 split points each. They each use 
the StaticVolumeChooser to choose volumes.
+  @Test(timeout = 60 * 1000)
+  public void twoTablesStaticVolumeChooser() throws Exception {
+log.info(Starting StaticVolumeChooser);
+
+// Create and populate initial properties map for creating table 1
+MapString,String properties = new HashMapString,String();
+String propertyName = table.custom.chooser;
+String volume = 

[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073494
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/StaticVolumeChooser.java
 ---
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.fs;
+
+import java.util.Map;
+
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.log4j.Logger;
+
+public class StaticVolumeChooser implements VolumeChooser {
--- End diff --

If this is being provided for users to leverage, it needs unit tests.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073509
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/RandomVolumeChooser.java
 ---
@@ -16,14 +16,65 @@
  */
 package org.apache.accumulo.server.fs;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 import java.util.Random;
 
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.log4j.Logger;
+
 public class RandomVolumeChooser implements VolumeChooser {
+  private static final Logger log = 
Logger.getLogger(RandomVolumeChooser.class);
   Random random = new Random();
-  
+
+  public RandomVolumeChooser() {}
+
   @Override
-  public String choose(String[] options) {
-return options[random.nextInt(options.length)];
+  public String choose(VolumeChooserEnvironment env, String[] options) {
+// Get the current table's properties, and find the preferred volumes 
property
+PropertyFilter filter = new AllFilter();
+MapString,String props = new java.util.HashMapString,String();
+ArrayListString prefVol = new ArrayListString();
+env.getProperties(props, filter);
+String volumes = props.get(table.custom.preferredVolumes);
--- End diff --

Should be an element in Property, not a hard-coded, inline'd string.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073546
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/RandomVolumeChooser.java
 ---
@@ -16,14 +16,65 @@
  */
 package org.apache.accumulo.server.fs;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 import java.util.Random;
 
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.log4j.Logger;
+
 public class RandomVolumeChooser implements VolumeChooser {
+  private static final Logger log = 
Logger.getLogger(RandomVolumeChooser.class);
   Random random = new Random();
-  
+
+  public RandomVolumeChooser() {}
--- End diff --

Actually, this is really confusing because when the table property is set, 
this isn't a random volume chooser at all -- it's a choose a volume from 
this set chooser. It would make more sense to me for this code to live in its 
own volume chooser implementation rather than push itself into the existing 
RandomVolumeChooser.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073654
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/GeneralVolumeChooser.java
 ---
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.fs;
+
+import java.util.Map;
+
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader;
+import org.apache.log4j.Logger;
+
+public class GeneralVolumeChooser implements VolumeChooser {
+  private static final Logger log = 
Logger.getLogger(GeneralVolumeChooser.class);
+
+  public GeneralVolumeChooser() {}
+
+  @Override
+  public String choose(VolumeChooserEnvironment env, String[] options) {
+String clazzName = new String();
+try {
+  // Get the current table's properties, and find the chooser property
+  PropertyFilter filter = new AllFilter();
+  MapString,String props = new java.util.HashMapString,String();
+  env.getProperties(props, filter);
+
+  clazzName = props.get(table.custom.chooser);
+  log.info(TableID:  + env.getTableId() +  ClassName:  + 
clazzName);
+
+  // Load the correct chooser and create an instance of it
+  Class? extends VolumeChooser clazz = 
AccumuloVFSClassLoader.loadClass(clazzName, VolumeChooser.class);
--- End diff --

This is going to be rather expensive to load the class and instantiate it 
every single time we choose a volume for a file WRT how quick it should be. 
Make sure the implementations are thread-safe and aren't sharing state and you 
can keep a cache of implementations around. (although this has issues when 
considering dynamic classloading)


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073661
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/GeneralVolumeChooser.java
 ---
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.fs;
+
+import java.util.Map;
+
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader;
+import org.apache.log4j.Logger;
+
+public class GeneralVolumeChooser implements VolumeChooser {
+  private static final Logger log = 
Logger.getLogger(GeneralVolumeChooser.class);
+
+  public GeneralVolumeChooser() {}
+
+  @Override
+  public String choose(VolumeChooserEnvironment env, String[] options) {
+String clazzName = new String();
+try {
+  // Get the current table's properties, and find the chooser property
+  PropertyFilter filter = new AllFilter();
+  MapString,String props = new java.util.HashMapString,String();
+  env.getProperties(props, filter);
+
+  clazzName = props.get(table.custom.chooser);
--- End diff --

Again, should be some public constant, likely in Property and something 
that ties it to the `GeneralVolumeChooser` class


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073696
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/StaticVolumeChooser.java
 ---
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.fs;
+
+import java.util.Map;
+
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.log4j.Logger;
+
+public class StaticVolumeChooser implements VolumeChooser {
+  private static final Logger log = 
Logger.getLogger(StaticVolumeChooser.class);
+
+  public StaticVolumeChooser() {}
--- End diff --

Need some unit tests for `StaticVolumeChooser`


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073713
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/fs/StaticVolumeChooser.java
 ---
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.fs;
+
+import java.util.Map;
+
+import org.apache.accumulo.core.conf.AccumuloConfiguration.AllFilter;
+import org.apache.accumulo.core.conf.AccumuloConfiguration.PropertyFilter;
+import org.apache.log4j.Logger;
+
+public class StaticVolumeChooser implements VolumeChooser {
+  private static final Logger log = 
Logger.getLogger(StaticVolumeChooser.class);
+
+  public StaticVolumeChooser() {}
+
+  @Override
+  public String choose(VolumeChooserEnvironment env, String[] options) {
+// Get the current table's properties, and find the preferred volumes 
property
+PropertyFilter filter = new AllFilter();
+MapString,String props = new java.util.HashMapString,String();
+env.getProperties(props, filter);
+String volume = props.get(table.custom.preferredVolumes);
+log.info(In custom chooser);
--- End diff --

Fine for debugging, but these need to be removed or pulled back to trace 
logging.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] accumulo pull request: ACCUMULO-3089: Create volume chooser from t...

2014-09-25 Thread joshelser
Github user joshelser commented on a diff in the pull request:

https://github.com/apache/accumulo/pull/16#discussion_r18073825
  
--- Diff: 
server/base/src/main/java/org/apache/accumulo/server/util/FileUtil.java ---
@@ -79,7 +81,7 @@ public Text getLastRow() {
   private static final Logger log = Logger.getLogger(FileUtil.class);
   
   private static Path createTmpDir(AccumuloConfiguration acuConf, 
VolumeManager fs) throws IOException {
-String accumuloDir = fs.choose(ServerConstants.getTemporaryDirs());
+String accumuloDir = fs.choose(Optional.Stringabsent(), 
ServerConstants.getTemporaryDirs()) + /tables/;
--- End diff --

Why the extra tables in the path?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---