Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Accumulo, mail # user - FW: Deletes not commiting from custom java API but work in shell interface


Copy link to this message
-
Re: FW: Deletes not commiting from custom java API but work in shell interface
John Vines 2013-04-10, 22:06
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.

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();
> }
>