Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-15487

Deletions done via BulkDeleteEndpoint make past data re-appear

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 1.0.3
    • None
    • None
    • None

    Description

      The Warp10 (www.warp10.io) time series database uses HBase as its underlying data store. The deletion of ranges of cells is performed using the BulkDeleteEndpoint.

      In the following scenario the deletion does not appear to be working properly:

      The table 't' is created with a single version using:

      create 't',

      {NAME => 'v', DATA_BLOCK_ENCODING => 'FAST_DIFF', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS=> '1', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY =>'false', BLOCKCACHE => 'true'}

      We write a cell at row '0x00', colfam 'v', colq '', value 0x0
      We write the same cell again with value 0x1

      A scan will return a single value 0x1

      We then perform a delete using the BulkDeleteEndpoint and a Scan with a DeleteType of 'VERSION'

      The reported number of deleted versions is 1 (which is coherent given the table was created with MAX_VERSIONS=1)

      The same scan as the one performed before the delete returns a single value 0x0.

      This seems to happen when all operations are performed against the memstore.

      A regular delete will remove the cell and a later scan won't show it.

      I'll attach a test which demonstrates the problem.

      Attachments

        1. HBaseTest.java
          6 kB
          Mathias Herberts
        2. HBaseTest.java
          5 kB
          Mathias Herberts

        Activity

          People

            Unassigned Unassigned
            herberts Mathias Herberts
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: