Skip to content

Commit

Permalink
Merge #26986
Browse files Browse the repository at this point in the history
26986: release-2.0: importccl: set descriptor DropTime during failed IMPORT r=mjibson a=mjibson

Backport 1/1 commits from #26959.

/cc @cockroachdb/release

---

This allows ClearRange to be used instead of the 1.1-era batch deletions.

Release note (bug fix): failed IMPORTs will now begin to clean up
partially imported data immediatily and in a faster manner.


Co-authored-by: Matt Jibson <matt.jibson@gmail.com>
  • Loading branch information
craig[bot] and maddyblue committed Jun 26, 2018
2 parents cc637c3 + 0fb24bb commit a149acc
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions pkg/ccl/importccl/csv.go
Original file line number Diff line number Diff line change
Expand Up @@ -1719,6 +1719,13 @@ func (r *importResumer) OnFailOrCancel(ctx context.Context, txn *client.Txn, job
}
b := txn.NewBatch()
tableDesc := details.Desc
// If the DropTime if set, a table uses RangeClear for fast data removal. This
// operation starts at DropTime + the GC TTL. If we used now() here, it would
// not clean up data until the TTL from the time of the error. Instead, use 1
// (that is, 1ns past the epoch) to allow this to be cleaned up as soon as
// possible. This is safe since the table data was never visible to users,
// and so we don't need to preserve MVCC semantics.
tableDesc.DropTime = 1
tableDesc.State = sqlbase.TableDescriptor_DROP
b.CPut(sqlbase.MakeDescMetadataKey(tableDesc.ID), sqlbase.WrapDescriptor(tableDesc), nil)
return txn.Run(ctx, b)
Expand Down

0 comments on commit a149acc

Please sign in to comment.