accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ke...@deenlo.com
Subject Re: Review Request 19804: ACCUMULO-2519 Aborts upgrade if there are Fate transactions from an old version.
Date Thu, 03 Apr 2014 21:33:52 GMT


> On April 3, 2014, 8:08 p.m., kturner wrote:
> > server/src/main/java/org/apache/accumulo/server/master/Master.java, line 276
> > <https://reviews.apache.org/r/19804/diff/4/?file=545884#file545884line276>
> >
> >     this should be volatile because upgradeZookeeper() and upgradeMetadata() will
be run by separate threads.
> 
> Sean Busbey wrote:
>     in reading the code, I thought upgradeZooKeeper had to happen prior to the thread
that calls upgradeMetadata being created.  Am I reading the code wrong?
>     
>     Master.run() calls getMasterLock (which is synchronous) and then several lines later
creates the status thread and starts it.

OK.  I did not look at the calling methods.  Actually, setMasterState() is whats synchronized,
and that method calls both upgradeZooKeeper() and upgradeMetadata().  So different threads
will see any changes other threads make to the boolean.  So it does not need to be volatile.

I also think upgradeZooKeeper will be called before upgradeMetadata.


- kturner


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19804/#review39468
-----------------------------------------------------------


On April 2, 2014, 3:10 p.m., Sean Busbey wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19804/
> -----------------------------------------------------------
> 
> (Updated April 2, 2014, 3:10 p.m.)
> 
> 
> Review request for accumulo and kturner.
> 
> 
> Bugs: ACCUMULO-2519
>     https://issues.apache.org/jira/browse/ACCUMULO-2519
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> Adds "make sure Fate has no outstanding items" to the upgrade instructions. Makes sure
the master and tabletservers don't take upgrade steps if they see fate ops waiting.
> 
> 
> Diffs
> -----
> 
>   README 115a9b7 
>   server/src/main/java/org/apache/accumulo/server/Accumulo.java 99ec7e4 
>   server/src/main/java/org/apache/accumulo/server/master/Master.java 8c4c864 
>   server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java d76946d

>   server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java 7328a55 
> 
> Diff: https://reviews.apache.org/r/19804/diff/
> 
> 
> Testing
> -------
> 
> Took a 1.4.5-SNAP cluster
> 
> * loaded test data in a variety of table configs
> * alternate table creation and deletion
> * load additional table to cause !METADATA churn
> * shutdown cluster uncleanly
> * verified waiting Fate transactions (table deletion at success status)
> * verified waiting local WALs
> * verified waiting local WALs include !METADATA table (via LogReader)
> * verified /accumulo/version showed 4
> * Start upgrade to 1.5.2-SNAP
> * verified errors showing no upgrade and to go back to docs in: monitor, master logs,
tabletserver logs
> * verified same waiting Fate transactions
> * verified same waiting local WALs
> * verified /accumulo/version showed 4
> * Cleared Fate operations
> * Start upgrade to 1.5.2-SNAP
> * wait a terrifying long amount of time, check on progress via local logs
> * verify no errors shown for upgrade
> * verified WALs copied to HDFS
> * verified /accumulo/version showed 5
> * verified monitor showed normal start up
> * wait for all tablets to be hosted
> * verify test data
> 
> 
> Thanks,
> 
> Sean Busbey
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message