[ https://issues.apache.org/jira/browse/HBASE-4536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13121314#comment-13121314 ]
jirapos...@reviews.apache.org commented on HBASE-4536: ------------------------------------------------------ ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/2178/ ----------------------------------------------------------- (Updated 2011-10-05 18:16:19.303065) Review request for hbase. Changes ------- All tests pass now (except TestAdmin, which fails with or without my changes). Summary ------- In order to use a replicated cluster as backup and to make true use of HBase's timestamps it has to be possible to get/scan rows that are hidden by a delete marker. If a marker was placed at time T, it should be possible to retrieve rows with get/scan timerange of [0-T). This changes the following: 1. MinVersions now also means: Keep this number of version even when the row was deleted. 2. Allow gets/scans to retrieve rows hidden by a delete marker. 3. Do not unconditionally collect all deleted rows during a compaction. The change is pretty small, but the logic is intricate, so please review carefully. This addresses bug HBASE-4536. https://issues.apache.org/jira/browse/HBASE-4536 Diffs (updated) ----- http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ColumnTracker.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestExplicitColumnTracker.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestMinVersions.java 1178891 http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanWildcardColumnTracker.java 1178891 Diff: https://reviews.apache.org/r/2178/diff Testing ------- TestMinVersions (with a new test for this) passed. Have not run full suite, yet. This is for initial feedback. Thanks, Lars > Allow CF to retain deleted rows > ------------------------------- > > Key: HBASE-4536 > URL: https://issues.apache.org/jira/browse/HBASE-4536 > Project: HBase > Issue Type: Sub-task > Components: regionserver > Affects Versions: 0.92.0 > Reporter: Lars Hofhansl > Assignee: Lars Hofhansl > Fix For: 0.92.0, 0.94.0 > > > Parent allows for a cluster to retain rows for a TTL or keep a minimum number > of versions. > However, if a client deletes a row all version older than the delete tomb > stone will be remove at the next major compaction (and even at memstore flush > - see HBASE-4241). > There should be a way to retain those version to guard against software error. > I see two options here: > 1. Add a new flag HColumnDescriptor. Something like "RETAIN_DELETED". > 2. Folds this into the parent change. I.e. keep minimum-number-of-versions of > versions even past the delete marker. > #1 would allow for more flexibility. #2 comes somewhat naturally with parent > (from a user viewpoint) > Comments? Any other options? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira