On Wed, Apr 10, 2013 at 6:06 PM, John Vines <[email protected]> wrote: > Deletes will remove all entries which occur before the key. I believe there > is undefined behavior for when a delete key is identical. It should work if > you set the delete keys time +1.
The behavior is defined when keys are identical except for delete. Delete is the last thing a key is sorted on, and delete keys sort before non delete keys. So a delete key with timestamp T will delete all keys with the same row and column with timestamps <= T. > > Sent from my phone, please pardon the typos and brevity. > > On Apr 10, 2013 6:02 PM, "Bell, Philip S CIV SPAWARSYSCEN-PACIFIC, 81320" > <[email protected]> wrote: >> >> Using the following code, rows are never deleted even when identified and >> submitted for deletion to the batchwriter. >> After running the code the rows still show up in search. >> >> This has been seen in 1.4.1 and 1.4.2 >> >> The same rows can be deleted from the accumulo shell interface >> >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> >> >> for( Entry<Key, Value> e : mainScanner ) >> { >> Text currentUUID = e.getKey().getRow(); >> >> Text colFam = e.getKey().getColumnFamily(); >> Text colQual = e.getKey().getColumnQualifier(); >> >> String colVis = e.getKey().getColumnVisibility().toString(); >> >> System.out.println( currentUUID + ":" + colFam + ":" + colQual + >> ":" + colVis + ":" + e.getKey().getTimestamp() ); >> >> if( colFam.toString().equalsIgnoreCase( "root" ) || >> colVis.length() > 0 ) >> { >> Mutation delMutation = new Mutation( currentUUID ); >> delMutation.putDelete( colFam, colQual, new >> ColumnVisibility( colVis ), e.getKey().getTimestamp() ); >> >> System.out.println( "removing" ); >> >> try >> { >> bw.addMutation( delMutation ); >> } >> catch( MutationsRejectedException e1 ) >> { >> e1.printStackTrace(); >> } >> >> count++; >> if( count % 1000000 == 0 ) >> { >> System.out.println( this.getName() + ": " + count >> + " completed in " + getTimePassed() ); >> } >> } >> }// for each entry found >> >> try >> { >> bw.flush(); >> bw.close(); >> } >> catch( Exception e1 ) >> { >> e1.printStackTrace(); >> }
