You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2009/01/01 01:13:06 UTC
svn commit: r730492 [3/3] - in /hadoop/hbase/branches/0.19_on_hadoop_0.18:
./ src/java/org/apache/hadoop/hbase/ src/java/org/apache/hadoop/hbase/client/
src/java/org/apache/hadoop/hbase/io/ src/java/org/apache/hadoop/hbase/ipc/
src/java/org/apache/hado...
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HBaseRPCProtocolVersion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HBaseRPCProtocolVersion.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HBaseRPCProtocolVersion.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HBaseRPCProtocolVersion.java Wed Dec 31 16:13:06 2008
@@ -64,7 +64,8 @@
* <li>Version 12: HServerLoad extensions (HBASE-1018).</li>
* <li>Version 13: HBASE-847</li>
* <li>Version 14: HBASE-900</li>
+ * <li>Version 15: HRegionInterface.exists</li>
* </ul>
*/
- public static final long versionID = 14L;
+ public static final long versionID = 15L;
}
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java Wed Dec 31 16:13:06 2008
@@ -191,7 +191,21 @@
long timestamp, long lockId)
throws IOException;
-
+ /**
+ * Returns true if any cells exist for the given coordinate.
+ *
+ * @param regionName The name of the region
+ * @param row The row
+ * @param column The column, or null for any
+ * @param timestamp The timestamp, or LATEST_TIMESTAMP for any
+ * @param lockId lock id
+ * @return true if the row exists, false otherwise
+ * @throws IOException
+ */
+ public boolean exists(byte [] regionName, byte [] row, byte [] column,
+ long timestamp, long lockID)
+ throws IOException;
+
//
// remote scanner interface
//
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/ChangeTableState.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/ChangeTableState.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/ChangeTableState.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/ChangeTableState.java Wed Dec 31 16:13:06 2008
@@ -116,7 +116,6 @@
}
// Cause regions being served to be taken off-line and disabled
-
for (HRegionInfo i: e.getValue()) {
if (LOG.isDebugEnabled()) {
LOG.debug("adding region " + i.getRegionNameAsString() + " to kill list");
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/HMaster.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/HMaster.java Wed Dec 31 16:13:06 2008
@@ -420,7 +420,7 @@
try {
if (LOG.isDebugEnabled()) {
- LOG.debug("Main processing loop: " + op.toString());
+ LOG.debug("Processing todo: " + op.toString());
}
// perform the operation.
@@ -792,6 +792,7 @@
LOG.info("modifyTable(SET_HTD): " + htd);
new ModifyTableMeta(this, tableName, htd).process();
break;
+
case MODIFY_TABLE_SPLIT:
case MODIFY_TABLE_COMPACT:
if (args != null && args.length > 0) {
@@ -833,7 +834,7 @@
LOG.info("Marking " + hri.getRegionNameAsString() +
" as closed on " + servername + "; cleaning SERVER + STARTCODE; " +
"master will tell regionserver to close region on next heartbeat");
- this.regionManager.setClosing(servername, hri, false);
+ this.regionManager.setClosing(servername, hri, hri.isOffline(), false);
MetaRegion meta = this.regionManager.getMetaRegionForRow(regionname);
HRegionInterface srvr = getMETAServer(meta);
HRegion.cleanRegionInMETA(srvr, meta.getRegionName(), hri);
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/RegionManager.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/RegionManager.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/RegionManager.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/master/RegionManager.java Wed Dec 31 16:13:06 2008
@@ -405,12 +405,10 @@
private void unassignSomeRegions(final String serverName,
final HServerLoad load, final double avgLoad,
final HRegionInfo[] mostLoadedRegions, ArrayList<HMsg> returnMsgs) {
-
int numRegionsToClose = load.getNumberOfRegions() - (int)Math.ceil(avgLoad);
LOG.debug("Choosing to reassign " + numRegionsToClose
+ " regions. mostLoadedRegions has " + mostLoadedRegions.length
+ " regions in it.");
-
int regionIdx = 0;
int regionsClosed = 0;
int skipped = 0;
@@ -422,14 +420,12 @@
if (currentRegion.isRootRegion() || currentRegion.isMetaTable()) {
continue;
}
-
byte[] regionName = currentRegion.getRegionName();
if (isClosing(regionName) || isUnassigned(currentRegion) ||
isAssigned(regionName) || isPending(regionName)) {
skipped++;
continue;
}
-
LOG.debug("Going to close region " +
currentRegion.getRegionNameAsString());
// make a message to close the region
@@ -788,21 +784,33 @@
* @param regionInfo
* @param setOffline
*/
- public void setClosing(String serverName, HRegionInfo regionInfo,
- boolean setOffline) {
- synchronized (regionsInTransition) {
- RegionState s = regionsInTransition.get(regionInfo.getRegionName());
- if (s != null) {
+ public void setClosing(final String serverName, final HRegionInfo regionInfo,
+ final boolean setOffline) {
+ setClosing(serverName, regionInfo, setOffline, true);
+ }
+
+ /**
+ * Mark a region as closing
+ * @param serverName
+ * @param regionInfo
+ * @param setOffline
+ * @param check False if we are to skip state transition check.
+ */
+ void setClosing(final String serverName, final HRegionInfo regionInfo,
+ final boolean setOffline, final boolean check) {
+ synchronized (this.regionsInTransition) {
+ RegionState s = this.regionsInTransition.get(regionInfo.getRegionName());
+ if (check && s != null) {
if (!s.isClosing()) {
throw new IllegalStateException(
- "Cannot transition to closing from any other state. Region: " +
- Bytes.toString(regionInfo.getRegionName()));
+ "Cannot transition to closing from any other state. Region: " +
+ Bytes.toString(regionInfo.getRegionName()));
}
return;
}
s = new RegionState(regionInfo);
- regionsInTransition.put(regionInfo.getRegionName(), s);
s.setClosing(serverName, setOffline);
+ this.regionsInTransition.put(regionInfo.getRegionName(), s);
}
}
@@ -1004,18 +1012,23 @@
}
}
+ /*
+ * State of a Region.
+ * Used while regions are making transitions from unassigned to assigned to
+ * opened, etc.
+ */
private static class RegionState implements Comparable<RegionState> {
- private final byte[] regionName;
+ private final byte [] regionName;
private HRegionInfo regionInfo = null;
- private boolean unassigned = false;
- private boolean assigned = false;
- private boolean pending = false;
- private boolean closing = false;
- private boolean closed = false;
- private boolean offlined = false;
+ private volatile boolean unassigned = false;
+ private volatile boolean assigned = false;
+ private volatile boolean pending = false;
+ private volatile boolean closing = false;
+ private volatile boolean closed = false;
+ private volatile boolean offlined = false;
private String serverName = null;
- RegionState(byte[] regionName) {
+ RegionState(byte [] regionName) {
this.regionName = regionName;
}
@@ -1060,8 +1073,8 @@
synchronized void setAssigned(String serverName) {
if (!this.unassigned) {
throw new IllegalStateException(
- "Cannot assign a region that is not currently unassigned. Region: " +
- Bytes.toString(regionName));
+ "Cannot assign a region that is not currently unassigned. " +
+ "State: " + toString());
}
this.unassigned = false;
this.assigned = true;
@@ -1077,8 +1090,8 @@
synchronized void setPending() {
if (!assigned) {
throw new IllegalStateException(
- "Cannot set a region as pending if it has not been assigned. Region: " +
- Bytes.toString(regionName));
+ "Cannot set a region as pending if it has not been assigned. " +
+ "State: " + toString());
}
this.unassigned = false;
this.assigned = false;
@@ -1107,8 +1120,9 @@
if (!closing) {
throw new IllegalStateException(
"Cannot set a region to be closed if it was not already marked as" +
- " closing. Region: " + Bytes.toString(regionName));
+ " closing. State: " + toString());
}
+ this.closing = false;
this.closed = true;
}
@@ -1118,10 +1132,10 @@
@Override
public synchronized String toString() {
- return "region name: " + Bytes.toString(this.regionName) +
- ", isUnassigned: " + this.unassigned + ", isAssigned: " +
- this.assigned + ", isPending: " + this.pending + ", isClosing: " +
- this.closing + ", isClosed: " + this.closed + ", isOfflined: " +
+ return "name=" + Bytes.toString(this.regionName) +
+ ", isUnassigned=" + this.unassigned + ", isAssigned=" +
+ this.assigned + ", isPending=" + this.pending + ", isClosing=" +
+ this.closing + ", isClosed=" + this.closed + ", isOfflined=" +
this.offlined;
}
@@ -1143,4 +1157,4 @@
return Bytes.compareTo(this.regionName, o.getRegionName());
}
}
-}
+}
\ No newline at end of file
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Dec 31 16:13:06 2008
@@ -1501,7 +1501,36 @@
update(edits);
}
}
-
+
+ /**
+ * Tests for the existence of any cells for a given coordinate.
+ *
+ * @param row the row
+ * @param column the column, or null
+ * @param timestamp the timestamp, or HConstants.LATEST_VERSION for any
+ * @param lockid the existing lock, or null
+ * @return true if cells exist for the row, false otherwise
+ * @throws IOException
+ */
+ public boolean exists(final byte[] row, final byte[] column,
+ final long timestamp, final Integer lockid)
+ throws IOException {
+ checkRow(row);
+ Integer lid = getLock(lockid, row);
+ try {
+ HStoreKey origin;
+ if (column != null) {
+ origin = new HStoreKey(row, column, timestamp);
+ } else {
+ origin = new HStoreKey(row, timestamp);
+ }
+ return !getKeys(origin, 1).isEmpty();
+ } finally {
+ if (lockid == null)
+ releaseRowLock(lid);
+ }
+ }
+
/**
* @throws IOException Throws exception if region is in read-only mode.
*/
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Wed Dec 31 16:13:06 2008
@@ -1774,6 +1774,13 @@
getLockFromId(lockId));
}
+ public boolean exists(byte[] regionName, byte[] row, byte[] column,
+ long timestamp, long lockId)
+ throws IOException {
+ return getRegion(regionName).exists(row, column, timestamp,
+ getLockFromId(lockId));
+ }
+
public long lockRow(byte [] regionName, byte [] row)
throws IOException {
checkOpen();
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStore.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStore.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStore.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStore.java Wed Dec 31 16:13:06 2008
@@ -33,6 +33,7 @@
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
+import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -56,8 +57,8 @@
import org.apache.hadoop.hbase.io.Reference;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.FSUtils;
-import org.apache.hadoop.io.MapFile;
-import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.hbase.io.MapFile;
+import org.apache.hadoop.hbase.io.SequenceFile;
import org.apache.hadoop.util.Progressable;
import org.apache.hadoop.util.StringUtils;
@@ -124,8 +125,8 @@
private final int compactionThreshold;
// All access must be synchronized.
- private final Set<ChangedReadersObserver> changedReaderObservers =
- new HashSet<ChangedReadersObserver>();
+ private final CopyOnWriteArraySet<ChangedReadersObserver> changedReaderObservers =
+ new CopyOnWriteArraySet<ChangedReadersObserver>();
/**
* An HStore is a set of zero or more MapFiles, which stretch backwards over
@@ -456,14 +457,15 @@
"Cleaned up info file. Continuing...Probable DATA LOSS!!!");
continue;
}
- if (isEmptyDataFile(mapfile)) {
+ // References don't have data or index components under mapfile.
+ if (!isReference && isEmptyDataFile(mapfile)) {
curfile.delete();
// We can have empty data file if data loss in hdfs.
LOG.warn("Mapfile " + mapfile.toString() + " has empty data. " +
"Deleting. Continuing...Probable DATA LOSS!!! See HBASE-646.");
continue;
}
- if (isEmptyIndexFile(mapfile)) {
+ if (!isReference && isEmptyIndexFile(mapfile)) {
try {
// Try fixing this file.. if we can. Use the hbase version of fix.
// Need to remove the old index file first else fix won't go ahead.
@@ -551,15 +553,14 @@
}
/*
- * @param mapfile
- * @return True if the passed mapfile has a zero-length index component (its
+ * @param f
+ * @return True if the passed file does not exist or is zero-length (its
* broken).
* @throws IOException
*/
private boolean isEmptyFile(final Path f)
throws IOException {
- return this.fs.exists(f) &&
- this.fs.getFileStatus(f).getLen() == 0;
+ return !this.fs.exists(f) || this.fs.getFileStatus(f).getLen() == 0;
}
/**
@@ -726,36 +727,30 @@
this.lock.writeLock().unlock();
}
}
-
+
/*
* Notify all observers that set of Readers has changed.
* @throws IOException
*/
private void notifyChangedReadersObservers() throws IOException {
- synchronized (this.changedReaderObservers) {
- for (ChangedReadersObserver o: this.changedReaderObservers) {
- o.updateReaders();
- }
+ for (ChangedReadersObserver o: this.changedReaderObservers) {
+ o.updateReaders();
}
}
-
+
/*
* @param o Observer who wants to know about changes in set of Readers
*/
void addChangedReaderObserver(ChangedReadersObserver o) {
- synchronized(this.changedReaderObservers) {
- this.changedReaderObservers.add(o);
- }
+ this.changedReaderObservers.add(o);
}
/*
* @param o Observer no longer interested in changes in set of Readers.
*/
void deleteChangedReaderObserver(ChangedReadersObserver o) {
- synchronized (this.changedReaderObservers) {
- if (!this.changedReaderObservers.remove(o)) {
- LOG.warn("Not in set" + o);
- }
+ if (!this.changedReaderObservers.remove(o)) {
+ LOG.warn("Not in set" + o);
}
}
@@ -866,6 +861,10 @@
for (int i = 0; i < countOfFiles; i++) {
HStoreFile file = filesToCompact.get(i);
Path path = file.getMapFilePath();
+ if (path == null) {
+ LOG.warn("Path is null for " + file);
+ return null;
+ }
int len = 0;
for (FileStatus fstatus:fs.listStatus(path)) {
len += fstatus.getLen();
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreFile.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreFile.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreFile.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreFile.java Wed Dec 31 16:13:06 2008
@@ -37,8 +37,8 @@
import org.apache.hadoop.hbase.io.HalfMapFileReader;
import org.apache.hadoop.hbase.io.Reference;
import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.io.MapFile;
-import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.hbase.io.MapFile;
+import org.apache.hadoop.hbase.io.SequenceFile;
/**
* A HStore data file. HStores usually have one or more of these files. They
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreScanner.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreScanner.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreScanner.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/HStoreScanner.java Wed Dec 31 16:13:06 2008
@@ -35,7 +35,7 @@
import org.apache.hadoop.hbase.filter.RowFilterInterface;
import org.apache.hadoop.hbase.io.Cell;
import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.io.MapFile;
+import org.apache.hadoop.hbase.io.MapFile;
/**
* Scanner scans both the memcache and the HStore
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java Wed Dec 31 16:13:06 2008
@@ -29,7 +29,7 @@
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.io.Cell;
import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.io.MapFile;
+import org.apache.hadoop.hbase.io.MapFile;
/**
* A scanner that iterates through HStore files
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/hbase-site.xml
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/hbase-site.xml?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/hbase-site.xml (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/hbase-site.xml Wed Dec 31 16:13:06 2008
@@ -109,6 +109,13 @@
</property>
<property>
<name>hadoop.log.dir</name>
- <value>${user.dir}/logs</value>
+ <value>${user.dir}/../logs</value>
+ </property>
+ <property>
+ <name>hbase.regionserver.safemode.period</name>
+ <value>0</value>
+ <description>Time to wait on regionserver startup before beginning
+ compactions and memcache flushes.
+ </description>
</property>
</configuration>
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/MapFilePerformanceEvaluation.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/MapFilePerformanceEvaluation.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/MapFilePerformanceEvaluation.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/MapFilePerformanceEvaluation.java Wed Dec 31 16:13:06 2008
@@ -29,7 +29,7 @@
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.io.MapFile;
+import org.apache.hadoop.hbase.io.MapFile;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestForceSplit.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestForceSplit.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestForceSplit.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestForceSplit.java Wed Dec 31 16:13:06 2008
@@ -38,7 +38,6 @@
private static final byte[] tableName = Bytes.toBytes("test");
private static final byte[] columnName = Bytes.toBytes("a:");
private static final byte[] key_mmi = Bytes.toBytes("mmi");
- private static final byte[] key_ssm = Bytes.toBytes("ssm");
protected void setUp() throws Exception {
super.setUp();
@@ -96,29 +95,5 @@
if (Bytes.equals(end, key_mmi))
assertTrue(Bytes.equals(start, HConstants.EMPTY_BYTE_ARRAY));
}
-
- // tell the master to split the table again, the second half
- admin.modifyTable(tableName, HConstants.MODIFY_TABLE_SPLIT, key_mmi);
-
- // give some time for the split to happen
- Thread.sleep(15 * 1000);
-
- // check again
- table = new HTable(conf, tableName);
- m = table.getRegionsInfo();
- System.out.println("Regions after split (" + m.size() + "): " + m);
- // should have three regions now
- assertTrue(m.size() == 3);
- // and "mmi" and "ssm" should be the midpoints
- for (HRegionInfo hri: m.keySet()) {
- byte[] start = hri.getStartKey();
- byte[] end = hri.getEndKey();
- if (Bytes.equals(start, HConstants.EMPTY_BYTE_ARRAY))
- assertTrue(Bytes.equals(end, key_mmi));
- if (Bytes.equals(start, key_mmi))
- assertTrue(Bytes.equals(end, key_ssm));
- if (Bytes.equals(start, key_ssm))
- assertTrue(Bytes.equals(end, HConstants.EMPTY_BYTE_ARRAY));
- }
}
}
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestHTable.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestHTable.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestHTable.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/client/TestHTable.java Wed Dec 31 16:13:06 2008
@@ -228,7 +228,11 @@
batchUpdate.put(COLUMN_FAMILY_STR+i, Bytes.toBytes(i));
table.commit(batchUpdate);
-
+
+ assertTrue(table.exists(row));
+ for(int i = 0; i < 5; i++)
+ assertTrue(table.exists(row, Bytes.toBytes(COLUMN_FAMILY_STR+i)));
+
RowResult result = null;
result = table.getRow(row, new byte[][] {COLUMN_FAMILY});
for(int i = 0; i < 5; i++)
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestCompaction.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestCompaction.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestCompaction.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestCompaction.java Wed Dec 31 16:13:06 2008
@@ -26,9 +26,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HBaseTestCase;
-import org.apache.hadoop.io.MapFile;
+import org.apache.hadoop.hbase.io.MapFile;
-import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HStoreKey;
import org.apache.hadoop.hbase.HTableDescriptor;
Modified: hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java?rev=730492&r1=730491&r2=730492&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java (original)
+++ hadoop/hbase/branches/0.19_on_hadoop_0.18/src/test/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java Wed Dec 31 16:13:06 2008
@@ -30,11 +30,11 @@
import org.apache.hadoop.hbase.HStoreKey;
import org.apache.hadoop.hbase.io.HalfMapFileReader;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.hbase.io.MapFile;
import org.apache.hadoop.hbase.io.Reference;
+import org.apache.hadoop.hbase.io.SequenceFile;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.dfs.MiniDFSCluster;
-import org.apache.hadoop.io.MapFile;
-import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.WritableComparable;
/**
* Test HStoreFile