/[Apache-SVN]
ViewVC logotype

Revision 643761


Jump to revision: Previous Next
Author: jimk
Date: Wed Apr 2 06:58:26 2008 UTC (16 years, 7 months ago)
Changed paths: 23
Log Message:
HBASE-469   Streamline HStore startup and compactions

HMerge, HRegionServer

- changes that reflect changes to HRegion, CompactSplitThread and Flusher methods

ServerManager

- Return zero length array to region server if it is exiting or quiesced and Master is not yet ready to shut down.

QueueEntry

- removed. no longer used.

CompactSplitThread

- make compactionQueue a queue of HRegion.
- Add Set<HRegion> so we can quickly determine if a region is in the queue. BlockingQueue.contains() does a linear scan of the queue.
- Add a lock and interruptPolitely methods so that compactions/splits in progress are not interrupted.
- Don't add a region to the queue if it is already present.

Flusher

- change queue from DelayQueue to BlockingQueue, with HRegion entries instead of QueueEntry.
- Add Set<HRegion> to quickly determine if a region is already in the queue to avoid linear scan of BlockingQueue.contains().
- Only put regions in the queue for optional cache flush if the last time they were flushed is older than now - optionalFlushInterval.
- Only add regions to the queue if it is not already present.

HRegion

- don't request a cache flush if one has already been requested.
- Add setLastFlushTime so flusher can set it once it has queued an optional flush.
- Replace largestHStore with getLargestHStoreSize: returns long instead of HStoreSize object.
- Add midKey as parameter to splitRegion.
- Reorder start of splitRegion so it doesn't do any work before validating parameters.
- Remove needsSplit and compactIfNeeded - no longer needed.
- compactStores now returns midKey if split is needed.
- snapshotMemcaches now sets flushRequested to false and sets lastFlushTime to now.
- update does not request a cache flush if one has already been requested.
- Override equals and hashCode so HRegions can be stored in a HashSet.

HStore

- loadHStoreFiles now computes max sequence id and the initial size of the store.
- Add getter for family.
- internalCacheFlush updates store size, and logs both size of cache flush and resulting map file size (with debug logging enabled).
- Remove needsCompaction and hasReferences - no longer needed.
- compact() returns midKey if store needs to be split.
- compact() does all checking before actually starting a compaction.
- If store size is greater than desiredMaxFileSize, compact returns the midKey for the store regardless of whether a compaction was actually done.
- Added more synchronization in completeCompaction while iterating over storeFiles.
- completeCompaction computes new store size.
- New method checkSplit replaces method size. Returns midKey if store needs to be split and can be split.

HStoreSize

- removed. No longer needed.

HBaseTestCase

- only set fs if it has not already been set by a subclass.

TestTableIndex, TestTableMapReduce

- call FSUtil.deleteFully to clean up cruft left in local fs, by MapReduce


Changed paths

Path Details
Directoryhadoop/hbase/trunk/CHANGES.txt modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HMerge.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStoreSize.java deleted
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Memcache.java modified , text changed
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/QueueEntry.java deleted
Directoryhadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/MetaUtils.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseTestCase.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/TestHBaseCluster.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/mapred/TestTableIndex.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/mapred/TestTableMapReduce.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/regionserver/TestCompaction.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/regionserver/TestHMemcache.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/regionserver/TestSplit.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/regionserver/TestTimestamp.java modified , text changed
Directoryhadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMergeTool.java modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26