http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/org/apache/hadoop/hbase/util/package-use.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-use.html b/devapidocs/org/apache/hadoop/hbase/util/package-use.html index def6372..92fb9bd 100644 --- a/devapidocs/org/apache/hadoop/hbase/util/package-use.html +++ b/devapidocs/org/apache/hadoop/hbase/util/package-use.html @@ -197,88 +197,92 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div> <td class="colLast"> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.normalizer">org.apache.hadoop.hbase.master.normalizer</a></td> <td class="colLast"> </td> </tr> <tr class="altColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.snapshot">org.apache.hadoop.hbase.master.snapshot</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td> <td class="colLast"> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.mob">org.apache.hadoop.hbase.mob</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.snapshot">org.apache.hadoop.hbase.master.snapshot</a></td> <td class="colLast"> </td> </tr> <tr class="altColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.mob.compactions">org.apache.hadoop.hbase.mob.compactions</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.mob">org.apache.hadoop.hbase.mob</a></td> <td class="colLast"> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.nio">org.apache.hadoop.hbase.nio</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.mob.compactions">org.apache.hadoop.hbase.mob.compactions</a></td> <td class="colLast"> </td> </tr> <tr class="altColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.nio">org.apache.hadoop.hbase.nio</a></td> <td class="colLast"> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2</a></td> <td class="colLast"> </td> </tr> <tr class="altColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.compactions">org.apache.hadoop.hbase.regionserver.compactions</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td> <td class="colLast"> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.handler">org.apache.hadoop.hbase.regionserver.handler</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.compactions">org.apache.hadoop.hbase.regionserver.compactions</a></td> <td class="colLast"> </td> </tr> <tr class="altColor"> -<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.wal">org.apache.hadoop.hbase.regionserver.wal</a></td> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.handler">org.apache.hadoop.hbase.regionserver.handler</a></td> <td class="colLast"> </td> </tr> <tr class="rowColor"> +<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.wal">org.apache.hadoop.hbase.regionserver.wal</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication</a></td> <td class="colLast"> <div class="block">Multi Cluster Replication</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.replication.regionserver">org.apache.hadoop.hbase.replication.regionserver</a></td> <td class="colLast"> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest">org.apache.hadoop.hbase.rest</a></td> <td class="colLast"> <div class="block">HBase REST</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.access">org.apache.hadoop.hbase.security.access</a></td> <td class="colLast"> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.visibility">org.apache.hadoop.hbase.security.visibility</a></td> <td class="colLast"> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></td> <td class="colLast"> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.thrift">org.apache.hadoop.hbase.thrift</a></td> <td class="colLast"> <div class="block">Provides an HBase <a href="http://incubator.apache.org/thrift/">Thrift</a> service.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.thrift2">org.apache.hadoop.hbase.thrift2</a></td> <td class="colLast"> <div class="block">Provides an HBase <a href="http://thrift.apache.org/">Thrift</a> service.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.types">org.apache.hadoop.hbase.types</a></td> <td class="colLast"> <div class="block"> @@ -286,27 +290,27 @@ service.</div> extensible data type API.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td> <td class="colLast"> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.util.byterange">org.apache.hadoop.hbase.util.byterange</a></td> <td class="colLast"> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.util.byterange.impl">org.apache.hadoop.hbase.util.byterange.impl</a></td> <td class="colLast"> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.util.hbck">org.apache.hadoop.hbase.util.hbck</a></td> <td class="colLast"> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td> <td class="colLast"> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper">org.apache.hadoop.hbase.zookeeper</a></td> <td class="colLast"> </td> </tr> @@ -859,6 +863,23 @@ service.</div> </tbody> </table> </li> +<li class="blockList"><a name="org.apache.hadoop.hbase.master.normalizer"> +<!-- --> +</a> +<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation"> +<caption><span>Classes in <a href="../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a> used by <a href="../../../../../org/apache/hadoop/hbase/master/normalizer/package-summary.html">org.apache.hadoop.hbase.master.normalizer</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Class and Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/Triple.html#org.apache.hadoop.hbase.master.normalizer">Triple</a> +<div class="block">Utility class to manage a triple.</div> +</td> +</tr> +</tbody> +</table> +</li> <li class="blockList"><a name="org.apache.hadoop.hbase.master.procedure"> <!-- --> </a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html index 7fceb38..65c8e39 100644 --- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html +++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html @@ -148,9 +148,9 @@ <ul> <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a><E> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) <ul> -<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">WALFactory.Providers</span></a></li> -<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">RegionGroupingProvider.Strategies</span></a></li> <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALKey.Version.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">WALKey.Version</span></a></li> +<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">RegionGroupingProvider.Strategies</span></a></li> +<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">WALFactory.Providers</span></a></li> </ul> </li> </ul> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html index 3ae9c04..bd2ad61 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html @@ -607,126 +607,137 @@ <span class="sourceLineNo">599</span> if (repPeers == null || repPeers.size() <= 0) {<a name="line.599"></a> <span class="sourceLineNo">600</span> throw new IllegalArgumentException("Found no peer cluster for replication.");<a name="line.600"></a> <span class="sourceLineNo">601</span> }<a name="line.601"></a> -<span class="sourceLineNo">602</span> for (ReplicationPeer repPeer : repPeers) {<a name="line.602"></a> -<span class="sourceLineNo">603</span> Configuration peerConf = repPeer.getConfiguration();<a name="line.603"></a> -<span class="sourceLineNo">604</span> HTableDescriptor htd = null;<a name="line.604"></a> -<span class="sourceLineNo">605</span> try (Connection conn = ConnectionFactory.createConnection(peerConf);<a name="line.605"></a> -<span class="sourceLineNo">606</span> Admin admin = this.connection.getAdmin();<a name="line.606"></a> -<span class="sourceLineNo">607</span> Admin repHBaseAdmin = conn.getAdmin()) {<a name="line.607"></a> -<span class="sourceLineNo">608</span> htd = admin.getTableDescriptor(tableName);<a name="line.608"></a> -<span class="sourceLineNo">609</span> HTableDescriptor peerHtd = null;<a name="line.609"></a> -<span class="sourceLineNo">610</span> if (!repHBaseAdmin.tableExists(tableName)) {<a name="line.610"></a> -<span class="sourceLineNo">611</span> repHBaseAdmin.createTable(htd, splits);<a name="line.611"></a> -<span class="sourceLineNo">612</span> } else {<a name="line.612"></a> -<span class="sourceLineNo">613</span> peerHtd = repHBaseAdmin.getTableDescriptor(tableName);<a name="line.613"></a> -<span class="sourceLineNo">614</span> if (peerHtd == null) {<a name="line.614"></a> -<span class="sourceLineNo">615</span> throw new IllegalArgumentException("Failed to get table descriptor for table "<a name="line.615"></a> -<span class="sourceLineNo">616</span> + tableName.getNameAsString() + " from peer cluster " + repPeer.getId());<a name="line.616"></a> -<span class="sourceLineNo">617</span> } else if (!peerHtd.equals(htd)) {<a name="line.617"></a> -<span class="sourceLineNo">618</span> throw new IllegalArgumentException("Table " + tableName.getNameAsString()<a name="line.618"></a> -<span class="sourceLineNo">619</span> + " exists in peer cluster " + repPeer.getId()<a name="line.619"></a> -<span class="sourceLineNo">620</span> + ", but the table descriptors are not same when comapred with source cluster."<a name="line.620"></a> -<span class="sourceLineNo">621</span> + " Thus can not enable the table's replication switch.");<a name="line.621"></a> -<span class="sourceLineNo">622</span> }<a name="line.622"></a> -<span class="sourceLineNo">623</span> }<a name="line.623"></a> -<span class="sourceLineNo">624</span> }<a name="line.624"></a> -<span class="sourceLineNo">625</span> }<a name="line.625"></a> -<span class="sourceLineNo">626</span> }<a name="line.626"></a> -<span class="sourceLineNo">627</span><a name="line.627"></a> -<span class="sourceLineNo">628</span> @VisibleForTesting<a name="line.628"></a> -<span class="sourceLineNo">629</span> List<ReplicationPeer> listValidReplicationPeers() {<a name="line.629"></a> -<span class="sourceLineNo">630</span> Map<String, ReplicationPeerConfig> peers = listPeerConfigs();<a name="line.630"></a> -<span class="sourceLineNo">631</span> if (peers == null || peers.size() <= 0) {<a name="line.631"></a> -<span class="sourceLineNo">632</span> return null;<a name="line.632"></a> -<span class="sourceLineNo">633</span> }<a name="line.633"></a> -<span class="sourceLineNo">634</span> List<ReplicationPeer> validPeers = new ArrayList<ReplicationPeer>(peers.size());<a name="line.634"></a> -<span class="sourceLineNo">635</span> for (Entry<String, ReplicationPeerConfig> peerEntry : peers.entrySet()) {<a name="line.635"></a> -<span class="sourceLineNo">636</span> String peerId = peerEntry.getKey();<a name="line.636"></a> -<span class="sourceLineNo">637</span> Stat s = null;<a name="line.637"></a> -<span class="sourceLineNo">638</span> try {<a name="line.638"></a> -<span class="sourceLineNo">639</span> Pair<ReplicationPeerConfig, Configuration> pair = this.replicationPeers.getPeerConf(peerId);<a name="line.639"></a> -<span class="sourceLineNo">640</span> Configuration peerConf = pair.getSecond();<a name="line.640"></a> -<span class="sourceLineNo">641</span> ReplicationPeer peer = new ReplicationPeerZKImpl(peerConf, peerId, pair.getFirst());<a name="line.641"></a> -<span class="sourceLineNo">642</span> s =<a name="line.642"></a> -<span class="sourceLineNo">643</span> zkw.getRecoverableZooKeeper().exists(peerConf.get(HConstants.ZOOKEEPER_ZNODE_PARENT),<a name="line.643"></a> -<span class="sourceLineNo">644</span> null);<a name="line.644"></a> -<span class="sourceLineNo">645</span> if (null == s) {<a name="line.645"></a> -<span class="sourceLineNo">646</span> LOG.info(peerId + ' ' + pair.getFirst().getClusterKey() + " is invalid now.");<a name="line.646"></a> -<span class="sourceLineNo">647</span> continue;<a name="line.647"></a> -<span class="sourceLineNo">648</span> }<a name="line.648"></a> -<span class="sourceLineNo">649</span> validPeers.add(peer);<a name="line.649"></a> -<span class="sourceLineNo">650</span> } catch (ReplicationException e) {<a name="line.650"></a> -<span class="sourceLineNo">651</span> LOG.warn("Failed to get valid replication peers. "<a name="line.651"></a> -<span class="sourceLineNo">652</span> + "Error connecting to peer cluster with peerId=" + peerId);<a name="line.652"></a> -<span class="sourceLineNo">653</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.653"></a> -<span class="sourceLineNo">654</span> continue;<a name="line.654"></a> -<span class="sourceLineNo">655</span> } catch (KeeperException e) {<a name="line.655"></a> -<span class="sourceLineNo">656</span> LOG.warn("Failed to get valid replication peers. KeeperException code="<a name="line.656"></a> -<span class="sourceLineNo">657</span> + e.code().intValue());<a name="line.657"></a> -<span class="sourceLineNo">658</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.658"></a> -<span class="sourceLineNo">659</span> continue;<a name="line.659"></a> -<span class="sourceLineNo">660</span> } catch (InterruptedException e) {<a name="line.660"></a> -<span class="sourceLineNo">661</span> LOG.warn("Failed to get valid replication peers due to InterruptedException.");<a name="line.661"></a> -<span class="sourceLineNo">662</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.662"></a> -<span class="sourceLineNo">663</span> Thread.currentThread().interrupt();<a name="line.663"></a> -<span class="sourceLineNo">664</span> continue;<a name="line.664"></a> -<span class="sourceLineNo">665</span> }<a name="line.665"></a> -<span class="sourceLineNo">666</span> }<a name="line.666"></a> -<span class="sourceLineNo">667</span> return validPeers;<a name="line.667"></a> -<span class="sourceLineNo">668</span> }<a name="line.668"></a> -<span class="sourceLineNo">669</span><a name="line.669"></a> -<span class="sourceLineNo">670</span> /**<a name="line.670"></a> -<span class="sourceLineNo">671</span> * Set the table's replication switch if the table's replication switch is already not set.<a name="line.671"></a> -<span class="sourceLineNo">672</span> * @param tableName name of the table<a name="line.672"></a> -<span class="sourceLineNo">673</span> * @param isRepEnabled is replication switch enable or disable<a name="line.673"></a> -<span class="sourceLineNo">674</span> * @throws IOException if a remote or network exception occurs<a name="line.674"></a> -<span class="sourceLineNo">675</span> */<a name="line.675"></a> -<span class="sourceLineNo">676</span> private void setTableRep(final TableName tableName, boolean isRepEnabled) throws IOException {<a name="line.676"></a> -<span class="sourceLineNo">677</span> Admin admin = null;<a name="line.677"></a> -<span class="sourceLineNo">678</span> try {<a name="line.678"></a> -<span class="sourceLineNo">679</span> admin = this.connection.getAdmin();<a name="line.679"></a> -<span class="sourceLineNo">680</span> HTableDescriptor htd = admin.getTableDescriptor(tableName);<a name="line.680"></a> -<span class="sourceLineNo">681</span> if (isTableRepEnabled(htd) ^ isRepEnabled) {<a name="line.681"></a> -<span class="sourceLineNo">682</span> boolean isOnlineSchemaUpdateEnabled =<a name="line.682"></a> -<span class="sourceLineNo">683</span> this.connection.getConfiguration()<a name="line.683"></a> -<span class="sourceLineNo">684</span> .getBoolean("hbase.online.schema.update.enable", true);<a name="line.684"></a> -<span class="sourceLineNo">685</span> if (!isOnlineSchemaUpdateEnabled) {<a name="line.685"></a> -<span class="sourceLineNo">686</span> admin.disableTable(tableName);<a name="line.686"></a> -<span class="sourceLineNo">687</span> }<a name="line.687"></a> -<span class="sourceLineNo">688</span> for (HColumnDescriptor hcd : htd.getFamilies()) {<a name="line.688"></a> -<span class="sourceLineNo">689</span> hcd.setScope(isRepEnabled ? HConstants.REPLICATION_SCOPE_GLOBAL<a name="line.689"></a> -<span class="sourceLineNo">690</span> : HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.690"></a> -<span class="sourceLineNo">691</span> }<a name="line.691"></a> -<span class="sourceLineNo">692</span> admin.modifyTable(tableName, htd);<a name="line.692"></a> -<span class="sourceLineNo">693</span> if (!isOnlineSchemaUpdateEnabled) {<a name="line.693"></a> -<span class="sourceLineNo">694</span> admin.enableTable(tableName);<a name="line.694"></a> -<span class="sourceLineNo">695</span> }<a name="line.695"></a> -<span class="sourceLineNo">696</span> }<a name="line.696"></a> -<span class="sourceLineNo">697</span> } finally {<a name="line.697"></a> -<span class="sourceLineNo">698</span> if (admin != null) {<a name="line.698"></a> -<span class="sourceLineNo">699</span> try {<a name="line.699"></a> -<span class="sourceLineNo">700</span> admin.close();<a name="line.700"></a> -<span class="sourceLineNo">701</span> } catch (IOException e) {<a name="line.701"></a> -<span class="sourceLineNo">702</span> LOG.warn("Failed to close admin connection.");<a name="line.702"></a> -<span class="sourceLineNo">703</span> LOG.debug("Details on failure to close admin connection.", e);<a name="line.703"></a> -<span class="sourceLineNo">704</span> }<a name="line.704"></a> -<span class="sourceLineNo">705</span> }<a name="line.705"></a> -<span class="sourceLineNo">706</span> }<a name="line.706"></a> -<span class="sourceLineNo">707</span> }<a name="line.707"></a> -<span class="sourceLineNo">708</span><a name="line.708"></a> -<span class="sourceLineNo">709</span> /**<a name="line.709"></a> -<span class="sourceLineNo">710</span> * @param htd table descriptor details for the table to check<a name="line.710"></a> -<span class="sourceLineNo">711</span> * @return true if table's replication switch is enabled<a name="line.711"></a> -<span class="sourceLineNo">712</span> */<a name="line.712"></a> -<span class="sourceLineNo">713</span> private boolean isTableRepEnabled(HTableDescriptor htd) {<a name="line.713"></a> -<span class="sourceLineNo">714</span> for (HColumnDescriptor hcd : htd.getFamilies()) {<a name="line.714"></a> -<span class="sourceLineNo">715</span> if (hcd.getScope() != HConstants.REPLICATION_SCOPE_GLOBAL) {<a name="line.715"></a> -<span class="sourceLineNo">716</span> return false;<a name="line.716"></a> -<span class="sourceLineNo">717</span> }<a name="line.717"></a> -<span class="sourceLineNo">718</span> }<a name="line.718"></a> -<span class="sourceLineNo">719</span> return true;<a name="line.719"></a> -<span class="sourceLineNo">720</span> }<a name="line.720"></a> -<span class="sourceLineNo">721</span>}<a name="line.721"></a> +<span class="sourceLineNo">602</span> <a name="line.602"></a> +<span class="sourceLineNo">603</span> final TableName onlyTableNameQualifier = TableName.valueOf(tableName.getQualifierAsString());<a name="line.603"></a> +<span class="sourceLineNo">604</span> <a name="line.604"></a> +<span class="sourceLineNo">605</span> for (ReplicationPeer repPeer : repPeers) {<a name="line.605"></a> +<span class="sourceLineNo">606</span> Map<TableName, List<String>> tableCFMap = repPeer.getTableCFs();<a name="line.606"></a> +<span class="sourceLineNo">607</span> // TODO Currently peer TableCFs will not include namespace so we need to check only for table<a name="line.607"></a> +<span class="sourceLineNo">608</span> // name without namespace in it. Need to correct this logic once we fix HBASE-11386.<a name="line.608"></a> +<span class="sourceLineNo">609</span> if (tableCFMap != null && !tableCFMap.containsKey(onlyTableNameQualifier)) {<a name="line.609"></a> +<span class="sourceLineNo">610</span> continue;<a name="line.610"></a> +<span class="sourceLineNo">611</span> }<a name="line.611"></a> +<span class="sourceLineNo">612</span><a name="line.612"></a> +<span class="sourceLineNo">613</span> Configuration peerConf = repPeer.getConfiguration();<a name="line.613"></a> +<span class="sourceLineNo">614</span> HTableDescriptor htd = null;<a name="line.614"></a> +<span class="sourceLineNo">615</span> try (Connection conn = ConnectionFactory.createConnection(peerConf);<a name="line.615"></a> +<span class="sourceLineNo">616</span> Admin admin = this.connection.getAdmin();<a name="line.616"></a> +<span class="sourceLineNo">617</span> Admin repHBaseAdmin = conn.getAdmin()) {<a name="line.617"></a> +<span class="sourceLineNo">618</span> htd = admin.getTableDescriptor(tableName);<a name="line.618"></a> +<span class="sourceLineNo">619</span> HTableDescriptor peerHtd = null;<a name="line.619"></a> +<span class="sourceLineNo">620</span> if (!repHBaseAdmin.tableExists(tableName)) {<a name="line.620"></a> +<span class="sourceLineNo">621</span> repHBaseAdmin.createTable(htd, splits);<a name="line.621"></a> +<span class="sourceLineNo">622</span> } else {<a name="line.622"></a> +<span class="sourceLineNo">623</span> peerHtd = repHBaseAdmin.getTableDescriptor(tableName);<a name="line.623"></a> +<span class="sourceLineNo">624</span> if (peerHtd == null) {<a name="line.624"></a> +<span class="sourceLineNo">625</span> throw new IllegalArgumentException("Failed to get table descriptor for table "<a name="line.625"></a> +<span class="sourceLineNo">626</span> + tableName.getNameAsString() + " from peer cluster " + repPeer.getId());<a name="line.626"></a> +<span class="sourceLineNo">627</span> } else if (!peerHtd.equals(htd)) {<a name="line.627"></a> +<span class="sourceLineNo">628</span> throw new IllegalArgumentException("Table " + tableName.getNameAsString()<a name="line.628"></a> +<span class="sourceLineNo">629</span> + " exists in peer cluster " + repPeer.getId()<a name="line.629"></a> +<span class="sourceLineNo">630</span> + ", but the table descriptors are not same when comapred with source cluster."<a name="line.630"></a> +<span class="sourceLineNo">631</span> + " Thus can not enable the table's replication switch.");<a name="line.631"></a> +<span class="sourceLineNo">632</span> }<a name="line.632"></a> +<span class="sourceLineNo">633</span> }<a name="line.633"></a> +<span class="sourceLineNo">634</span> }<a name="line.634"></a> +<span class="sourceLineNo">635</span> }<a name="line.635"></a> +<span class="sourceLineNo">636</span> }<a name="line.636"></a> +<span class="sourceLineNo">637</span><a name="line.637"></a> +<span class="sourceLineNo">638</span> @VisibleForTesting<a name="line.638"></a> +<span class="sourceLineNo">639</span> List<ReplicationPeer> listValidReplicationPeers() {<a name="line.639"></a> +<span class="sourceLineNo">640</span> Map<String, ReplicationPeerConfig> peers = listPeerConfigs();<a name="line.640"></a> +<span class="sourceLineNo">641</span> if (peers == null || peers.size() <= 0) {<a name="line.641"></a> +<span class="sourceLineNo">642</span> return null;<a name="line.642"></a> +<span class="sourceLineNo">643</span> }<a name="line.643"></a> +<span class="sourceLineNo">644</span> List<ReplicationPeer> validPeers = new ArrayList<ReplicationPeer>(peers.size());<a name="line.644"></a> +<span class="sourceLineNo">645</span> for (Entry<String, ReplicationPeerConfig> peerEntry : peers.entrySet()) {<a name="line.645"></a> +<span class="sourceLineNo">646</span> String peerId = peerEntry.getKey();<a name="line.646"></a> +<span class="sourceLineNo">647</span> Stat s = null;<a name="line.647"></a> +<span class="sourceLineNo">648</span> try {<a name="line.648"></a> +<span class="sourceLineNo">649</span> Pair<ReplicationPeerConfig, Configuration> pair = this.replicationPeers.getPeerConf(peerId);<a name="line.649"></a> +<span class="sourceLineNo">650</span> Configuration peerConf = pair.getSecond();<a name="line.650"></a> +<span class="sourceLineNo">651</span> ReplicationPeer peer = new ReplicationPeerZKImpl(peerConf, peerId, pair.getFirst(),<a name="line.651"></a> +<span class="sourceLineNo">652</span> parseTableCFsFromConfig(this.getPeerTableCFs(peerId)));<a name="line.652"></a> +<span class="sourceLineNo">653</span> s =<a name="line.653"></a> +<span class="sourceLineNo">654</span> zkw.getRecoverableZooKeeper().exists(peerConf.get(HConstants.ZOOKEEPER_ZNODE_PARENT),<a name="line.654"></a> +<span class="sourceLineNo">655</span> null);<a name="line.655"></a> +<span class="sourceLineNo">656</span> if (null == s) {<a name="line.656"></a> +<span class="sourceLineNo">657</span> LOG.info(peerId + ' ' + pair.getFirst().getClusterKey() + " is invalid now.");<a name="line.657"></a> +<span class="sourceLineNo">658</span> continue;<a name="line.658"></a> +<span class="sourceLineNo">659</span> }<a name="line.659"></a> +<span class="sourceLineNo">660</span> validPeers.add(peer);<a name="line.660"></a> +<span class="sourceLineNo">661</span> } catch (ReplicationException e) {<a name="line.661"></a> +<span class="sourceLineNo">662</span> LOG.warn("Failed to get valid replication peers. "<a name="line.662"></a> +<span class="sourceLineNo">663</span> + "Error connecting to peer cluster with peerId=" + peerId);<a name="line.663"></a> +<span class="sourceLineNo">664</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.664"></a> +<span class="sourceLineNo">665</span> continue;<a name="line.665"></a> +<span class="sourceLineNo">666</span> } catch (KeeperException e) {<a name="line.666"></a> +<span class="sourceLineNo">667</span> LOG.warn("Failed to get valid replication peers. KeeperException code="<a name="line.667"></a> +<span class="sourceLineNo">668</span> + e.code().intValue());<a name="line.668"></a> +<span class="sourceLineNo">669</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.669"></a> +<span class="sourceLineNo">670</span> continue;<a name="line.670"></a> +<span class="sourceLineNo">671</span> } catch (InterruptedException e) {<a name="line.671"></a> +<span class="sourceLineNo">672</span> LOG.warn("Failed to get valid replication peers due to InterruptedException.");<a name="line.672"></a> +<span class="sourceLineNo">673</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.673"></a> +<span class="sourceLineNo">674</span> Thread.currentThread().interrupt();<a name="line.674"></a> +<span class="sourceLineNo">675</span> continue;<a name="line.675"></a> +<span class="sourceLineNo">676</span> }<a name="line.676"></a> +<span class="sourceLineNo">677</span> }<a name="line.677"></a> +<span class="sourceLineNo">678</span> return validPeers;<a name="line.678"></a> +<span class="sourceLineNo">679</span> }<a name="line.679"></a> +<span class="sourceLineNo">680</span><a name="line.680"></a> +<span class="sourceLineNo">681</span> /**<a name="line.681"></a> +<span class="sourceLineNo">682</span> * Set the table's replication switch if the table's replication switch is already not set.<a name="line.682"></a> +<span class="sourceLineNo">683</span> * @param tableName name of the table<a name="line.683"></a> +<span class="sourceLineNo">684</span> * @param isRepEnabled is replication switch enable or disable<a name="line.684"></a> +<span class="sourceLineNo">685</span> * @throws IOException if a remote or network exception occurs<a name="line.685"></a> +<span class="sourceLineNo">686</span> */<a name="line.686"></a> +<span class="sourceLineNo">687</span> private void setTableRep(final TableName tableName, boolean isRepEnabled) throws IOException {<a name="line.687"></a> +<span class="sourceLineNo">688</span> Admin admin = null;<a name="line.688"></a> +<span class="sourceLineNo">689</span> try {<a name="line.689"></a> +<span class="sourceLineNo">690</span> admin = this.connection.getAdmin();<a name="line.690"></a> +<span class="sourceLineNo">691</span> HTableDescriptor htd = admin.getTableDescriptor(tableName);<a name="line.691"></a> +<span class="sourceLineNo">692</span> if (isTableRepEnabled(htd) ^ isRepEnabled) {<a name="line.692"></a> +<span class="sourceLineNo">693</span> boolean isOnlineSchemaUpdateEnabled =<a name="line.693"></a> +<span class="sourceLineNo">694</span> this.connection.getConfiguration()<a name="line.694"></a> +<span class="sourceLineNo">695</span> .getBoolean("hbase.online.schema.update.enable", true);<a name="line.695"></a> +<span class="sourceLineNo">696</span> if (!isOnlineSchemaUpdateEnabled) {<a name="line.696"></a> +<span class="sourceLineNo">697</span> admin.disableTable(tableName);<a name="line.697"></a> +<span class="sourceLineNo">698</span> }<a name="line.698"></a> +<span class="sourceLineNo">699</span> for (HColumnDescriptor hcd : htd.getFamilies()) {<a name="line.699"></a> +<span class="sourceLineNo">700</span> hcd.setScope(isRepEnabled ? HConstants.REPLICATION_SCOPE_GLOBAL<a name="line.700"></a> +<span class="sourceLineNo">701</span> : HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.701"></a> +<span class="sourceLineNo">702</span> }<a name="line.702"></a> +<span class="sourceLineNo">703</span> admin.modifyTable(tableName, htd);<a name="line.703"></a> +<span class="sourceLineNo">704</span> if (!isOnlineSchemaUpdateEnabled) {<a name="line.704"></a> +<span class="sourceLineNo">705</span> admin.enableTable(tableName);<a name="line.705"></a> +<span class="sourceLineNo">706</span> }<a name="line.706"></a> +<span class="sourceLineNo">707</span> }<a name="line.707"></a> +<span class="sourceLineNo">708</span> } finally {<a name="line.708"></a> +<span class="sourceLineNo">709</span> if (admin != null) {<a name="line.709"></a> +<span class="sourceLineNo">710</span> try {<a name="line.710"></a> +<span class="sourceLineNo">711</span> admin.close();<a name="line.711"></a> +<span class="sourceLineNo">712</span> } catch (IOException e) {<a name="line.712"></a> +<span class="sourceLineNo">713</span> LOG.warn("Failed to close admin connection.");<a name="line.713"></a> +<span class="sourceLineNo">714</span> LOG.debug("Details on failure to close admin connection.", e);<a name="line.714"></a> +<span class="sourceLineNo">715</span> }<a name="line.715"></a> +<span class="sourceLineNo">716</span> }<a name="line.716"></a> +<span class="sourceLineNo">717</span> }<a name="line.717"></a> +<span class="sourceLineNo">718</span> }<a name="line.718"></a> +<span class="sourceLineNo">719</span><a name="line.719"></a> +<span class="sourceLineNo">720</span> /**<a name="line.720"></a> +<span class="sourceLineNo">721</span> * @param htd table descriptor details for the table to check<a name="line.721"></a> +<span class="sourceLineNo">722</span> * @return true if table's replication switch is enabled<a name="line.722"></a> +<span class="sourceLineNo">723</span> */<a name="line.723"></a> +<span class="sourceLineNo">724</span> private boolean isTableRepEnabled(HTableDescriptor htd) {<a name="line.724"></a> +<span class="sourceLineNo">725</span> for (HColumnDescriptor hcd : htd.getFamilies()) {<a name="line.725"></a> +<span class="sourceLineNo">726</span> if (hcd.getScope() != HConstants.REPLICATION_SCOPE_GLOBAL) {<a name="line.726"></a> +<span class="sourceLineNo">727</span> return false;<a name="line.727"></a> +<span class="sourceLineNo">728</span> }<a name="line.728"></a> +<span class="sourceLineNo">729</span> }<a name="line.729"></a> +<span class="sourceLineNo">730</span> return true;<a name="line.730"></a> +<span class="sourceLineNo">731</span> }<a name="line.731"></a> +<span class="sourceLineNo">732</span>}<a name="line.732"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html index cc8885d..ff3addc 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html @@ -102,7 +102,7 @@ <span class="sourceLineNo">094</span> }<a name="line.94"></a> <span class="sourceLineNo">095</span><a name="line.95"></a> <span class="sourceLineNo">096</span> private void preprocessSearchKey(Pair<byte[], byte[]> p) {<a name="line.96"></a> -<span class="sourceLineNo">097</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.97"></a> +<span class="sourceLineNo">097</span> if (UnsafeAccess.unaligned() == false) {<a name="line.97"></a> <span class="sourceLineNo">098</span> // do nothing<a name="line.98"></a> <span class="sourceLineNo">099</span> return;<a name="line.99"></a> <span class="sourceLineNo">100</span> }<a name="line.100"></a> @@ -121,7 +121,7 @@ <span class="sourceLineNo">113</span> * @return mask array<a name="line.113"></a> <span class="sourceLineNo">114</span> */<a name="line.114"></a> <span class="sourceLineNo">115</span> private byte[] preprocessMask(byte[] mask) {<a name="line.115"></a> -<span class="sourceLineNo">116</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.116"></a> +<span class="sourceLineNo">116</span> if (UnsafeAccess.unaligned() == false) {<a name="line.116"></a> <span class="sourceLineNo">117</span> // do nothing<a name="line.117"></a> <span class="sourceLineNo">118</span> return mask;<a name="line.118"></a> <span class="sourceLineNo">119</span> }<a name="line.119"></a> @@ -330,7 +330,7 @@ <span class="sourceLineNo">322</span> static SatisfiesCode satisfies(boolean reverse, byte[] row, int offset, int length,<a name="line.322"></a> <span class="sourceLineNo">323</span> byte[] fuzzyKeyBytes, byte[] fuzzyKeyMeta) {<a name="line.323"></a> <span class="sourceLineNo">324</span><a name="line.324"></a> -<span class="sourceLineNo">325</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.325"></a> +<span class="sourceLineNo">325</span> if (UnsafeAccess.unaligned() == false) {<a name="line.325"></a> <span class="sourceLineNo">326</span> return satisfiesNoUnsafe(reverse, row, offset, length, fuzzyKeyBytes, fuzzyKeyMeta);<a name="line.326"></a> <span class="sourceLineNo">327</span> }<a name="line.327"></a> <span class="sourceLineNo">328</span><a name="line.328"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html index cc8885d..ff3addc 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html @@ -102,7 +102,7 @@ <span class="sourceLineNo">094</span> }<a name="line.94"></a> <span class="sourceLineNo">095</span><a name="line.95"></a> <span class="sourceLineNo">096</span> private void preprocessSearchKey(Pair<byte[], byte[]> p) {<a name="line.96"></a> -<span class="sourceLineNo">097</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.97"></a> +<span class="sourceLineNo">097</span> if (UnsafeAccess.unaligned() == false) {<a name="line.97"></a> <span class="sourceLineNo">098</span> // do nothing<a name="line.98"></a> <span class="sourceLineNo">099</span> return;<a name="line.99"></a> <span class="sourceLineNo">100</span> }<a name="line.100"></a> @@ -121,7 +121,7 @@ <span class="sourceLineNo">113</span> * @return mask array<a name="line.113"></a> <span class="sourceLineNo">114</span> */<a name="line.114"></a> <span class="sourceLineNo">115</span> private byte[] preprocessMask(byte[] mask) {<a name="line.115"></a> -<span class="sourceLineNo">116</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.116"></a> +<span class="sourceLineNo">116</span> if (UnsafeAccess.unaligned() == false) {<a name="line.116"></a> <span class="sourceLineNo">117</span> // do nothing<a name="line.117"></a> <span class="sourceLineNo">118</span> return mask;<a name="line.118"></a> <span class="sourceLineNo">119</span> }<a name="line.119"></a> @@ -330,7 +330,7 @@ <span class="sourceLineNo">322</span> static SatisfiesCode satisfies(boolean reverse, byte[] row, int offset, int length,<a name="line.322"></a> <span class="sourceLineNo">323</span> byte[] fuzzyKeyBytes, byte[] fuzzyKeyMeta) {<a name="line.323"></a> <span class="sourceLineNo">324</span><a name="line.324"></a> -<span class="sourceLineNo">325</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.325"></a> +<span class="sourceLineNo">325</span> if (UnsafeAccess.unaligned() == false) {<a name="line.325"></a> <span class="sourceLineNo">326</span> return satisfiesNoUnsafe(reverse, row, offset, length, fuzzyKeyBytes, fuzzyKeyMeta);<a name="line.326"></a> <span class="sourceLineNo">327</span> }<a name="line.327"></a> <span class="sourceLineNo">328</span><a name="line.328"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html index cc8885d..ff3addc 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html @@ -102,7 +102,7 @@ <span class="sourceLineNo">094</span> }<a name="line.94"></a> <span class="sourceLineNo">095</span><a name="line.95"></a> <span class="sourceLineNo">096</span> private void preprocessSearchKey(Pair<byte[], byte[]> p) {<a name="line.96"></a> -<span class="sourceLineNo">097</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.97"></a> +<span class="sourceLineNo">097</span> if (UnsafeAccess.unaligned() == false) {<a name="line.97"></a> <span class="sourceLineNo">098</span> // do nothing<a name="line.98"></a> <span class="sourceLineNo">099</span> return;<a name="line.99"></a> <span class="sourceLineNo">100</span> }<a name="line.100"></a> @@ -121,7 +121,7 @@ <span class="sourceLineNo">113</span> * @return mask array<a name="line.113"></a> <span class="sourceLineNo">114</span> */<a name="line.114"></a> <span class="sourceLineNo">115</span> private byte[] preprocessMask(byte[] mask) {<a name="line.115"></a> -<span class="sourceLineNo">116</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.116"></a> +<span class="sourceLineNo">116</span> if (UnsafeAccess.unaligned() == false) {<a name="line.116"></a> <span class="sourceLineNo">117</span> // do nothing<a name="line.117"></a> <span class="sourceLineNo">118</span> return mask;<a name="line.118"></a> <span class="sourceLineNo">119</span> }<a name="line.119"></a> @@ -330,7 +330,7 @@ <span class="sourceLineNo">322</span> static SatisfiesCode satisfies(boolean reverse, byte[] row, int offset, int length,<a name="line.322"></a> <span class="sourceLineNo">323</span> byte[] fuzzyKeyBytes, byte[] fuzzyKeyMeta) {<a name="line.323"></a> <span class="sourceLineNo">324</span><a name="line.324"></a> -<span class="sourceLineNo">325</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.325"></a> +<span class="sourceLineNo">325</span> if (UnsafeAccess.unaligned() == false) {<a name="line.325"></a> <span class="sourceLineNo">326</span> return satisfiesNoUnsafe(reverse, row, offset, length, fuzzyKeyBytes, fuzzyKeyMeta);<a name="line.326"></a> <span class="sourceLineNo">327</span> }<a name="line.327"></a> <span class="sourceLineNo">328</span><a name="line.328"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html index cc8885d..ff3addc 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html @@ -102,7 +102,7 @@ <span class="sourceLineNo">094</span> }<a name="line.94"></a> <span class="sourceLineNo">095</span><a name="line.95"></a> <span class="sourceLineNo">096</span> private void preprocessSearchKey(Pair<byte[], byte[]> p) {<a name="line.96"></a> -<span class="sourceLineNo">097</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.97"></a> +<span class="sourceLineNo">097</span> if (UnsafeAccess.unaligned() == false) {<a name="line.97"></a> <span class="sourceLineNo">098</span> // do nothing<a name="line.98"></a> <span class="sourceLineNo">099</span> return;<a name="line.99"></a> <span class="sourceLineNo">100</span> }<a name="line.100"></a> @@ -121,7 +121,7 @@ <span class="sourceLineNo">113</span> * @return mask array<a name="line.113"></a> <span class="sourceLineNo">114</span> */<a name="line.114"></a> <span class="sourceLineNo">115</span> private byte[] preprocessMask(byte[] mask) {<a name="line.115"></a> -<span class="sourceLineNo">116</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.116"></a> +<span class="sourceLineNo">116</span> if (UnsafeAccess.unaligned() == false) {<a name="line.116"></a> <span class="sourceLineNo">117</span> // do nothing<a name="line.117"></a> <span class="sourceLineNo">118</span> return mask;<a name="line.118"></a> <span class="sourceLineNo">119</span> }<a name="line.119"></a> @@ -330,7 +330,7 @@ <span class="sourceLineNo">322</span> static SatisfiesCode satisfies(boolean reverse, byte[] row, int offset, int length,<a name="line.322"></a> <span class="sourceLineNo">323</span> byte[] fuzzyKeyBytes, byte[] fuzzyKeyMeta) {<a name="line.323"></a> <span class="sourceLineNo">324</span><a name="line.324"></a> -<span class="sourceLineNo">325</span> if (UnsafeAccess.isAvailable() == false) {<a name="line.325"></a> +<span class="sourceLineNo">325</span> if (UnsafeAccess.unaligned() == false) {<a name="line.325"></a> <span class="sourceLineNo">326</span> return satisfiesNoUnsafe(reverse, row, offset, length, fuzzyKeyBytes, fuzzyKeyMeta);<a name="line.326"></a> <span class="sourceLineNo">327</span> }<a name="line.327"></a> <span class="sourceLineNo">328</span><a name="line.328"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/io/HalfStoreFileReader.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/HalfStoreFileReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/HalfStoreFileReader.html index a7ad8ab..6c7ffee 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/io/HalfStoreFileReader.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/HalfStoreFileReader.html @@ -322,44 +322,52 @@ <span class="sourceLineNo">314</span> }<a name="line.314"></a> <span class="sourceLineNo">315</span> } catch (IOException e) {<a name="line.315"></a> <span class="sourceLineNo">316</span> LOG.warn("Failed seekBefore " + Bytes.toStringBinary(this.splitkey), e);<a name="line.316"></a> -<span class="sourceLineNo">317</span> }<a name="line.317"></a> -<span class="sourceLineNo">318</span> return null;<a name="line.318"></a> -<span class="sourceLineNo">319</span> }<a name="line.319"></a> -<span class="sourceLineNo">320</span><a name="line.320"></a> -<span class="sourceLineNo">321</span> @Override<a name="line.321"></a> -<span class="sourceLineNo">322</span> public Cell midkey() throws IOException {<a name="line.322"></a> -<span class="sourceLineNo">323</span> // Returns null to indicate file is not splitable.<a name="line.323"></a> -<span class="sourceLineNo">324</span> return null;<a name="line.324"></a> -<span class="sourceLineNo">325</span> }<a name="line.325"></a> -<span class="sourceLineNo">326</span><a name="line.326"></a> -<span class="sourceLineNo">327</span> @Override<a name="line.327"></a> -<span class="sourceLineNo">328</span> public Cell getFirstKey() {<a name="line.328"></a> -<span class="sourceLineNo">329</span> if (!firstKeySeeked) {<a name="line.329"></a> -<span class="sourceLineNo">330</span> HFileScanner scanner = getScanner(true, true, false);<a name="line.330"></a> -<span class="sourceLineNo">331</span> try {<a name="line.331"></a> -<span class="sourceLineNo">332</span> if (scanner.seekTo()) {<a name="line.332"></a> -<span class="sourceLineNo">333</span> this.firstKey = scanner.getKey();<a name="line.333"></a> -<span class="sourceLineNo">334</span> }<a name="line.334"></a> -<span class="sourceLineNo">335</span> firstKeySeeked = true;<a name="line.335"></a> -<span class="sourceLineNo">336</span> } catch (IOException e) {<a name="line.336"></a> -<span class="sourceLineNo">337</span> LOG.warn("Failed seekTo first KV in the file", e);<a name="line.337"></a> -<span class="sourceLineNo">338</span> }<a name="line.338"></a> -<span class="sourceLineNo">339</span> }<a name="line.339"></a> -<span class="sourceLineNo">340</span> return this.firstKey;<a name="line.340"></a> -<span class="sourceLineNo">341</span> }<a name="line.341"></a> -<span class="sourceLineNo">342</span><a name="line.342"></a> -<span class="sourceLineNo">343</span> @Override<a name="line.343"></a> -<span class="sourceLineNo">344</span> public long getEntries() {<a name="line.344"></a> -<span class="sourceLineNo">345</span> // Estimate the number of entries as half the original file; this may be wildly inaccurate.<a name="line.345"></a> -<span class="sourceLineNo">346</span> return super.getEntries() / 2;<a name="line.346"></a> -<span class="sourceLineNo">347</span> }<a name="line.347"></a> -<span class="sourceLineNo">348</span><a name="line.348"></a> -<span class="sourceLineNo">349</span> @Override<a name="line.349"></a> -<span class="sourceLineNo">350</span> public long getFilterEntries() {<a name="line.350"></a> -<span class="sourceLineNo">351</span> // Estimate the number of entries as half the original file; this may be wildly inaccurate.<a name="line.351"></a> -<span class="sourceLineNo">352</span> return super.getFilterEntries() / 2;<a name="line.352"></a> -<span class="sourceLineNo">353</span> }<a name="line.353"></a> -<span class="sourceLineNo">354</span>}<a name="line.354"></a> +<span class="sourceLineNo">317</span> } finally {<a name="line.317"></a> +<span class="sourceLineNo">318</span> if (scanner != null) {<a name="line.318"></a> +<span class="sourceLineNo">319</span> scanner.close();<a name="line.319"></a> +<span class="sourceLineNo">320</span> }<a name="line.320"></a> +<span class="sourceLineNo">321</span> }<a name="line.321"></a> +<span class="sourceLineNo">322</span> return null;<a name="line.322"></a> +<span class="sourceLineNo">323</span> }<a name="line.323"></a> +<span class="sourceLineNo">324</span><a name="line.324"></a> +<span class="sourceLineNo">325</span> @Override<a name="line.325"></a> +<span class="sourceLineNo">326</span> public Cell midkey() throws IOException {<a name="line.326"></a> +<span class="sourceLineNo">327</span> // Returns null to indicate file is not splitable.<a name="line.327"></a> +<span class="sourceLineNo">328</span> return null;<a name="line.328"></a> +<span class="sourceLineNo">329</span> }<a name="line.329"></a> +<span class="sourceLineNo">330</span><a name="line.330"></a> +<span class="sourceLineNo">331</span> @Override<a name="line.331"></a> +<span class="sourceLineNo">332</span> public Cell getFirstKey() {<a name="line.332"></a> +<span class="sourceLineNo">333</span> if (!firstKeySeeked) {<a name="line.333"></a> +<span class="sourceLineNo">334</span> HFileScanner scanner = getScanner(true, true, false);<a name="line.334"></a> +<span class="sourceLineNo">335</span> try {<a name="line.335"></a> +<span class="sourceLineNo">336</span> if (scanner.seekTo()) {<a name="line.336"></a> +<span class="sourceLineNo">337</span> this.firstKey = scanner.getKey();<a name="line.337"></a> +<span class="sourceLineNo">338</span> }<a name="line.338"></a> +<span class="sourceLineNo">339</span> firstKeySeeked = true;<a name="line.339"></a> +<span class="sourceLineNo">340</span> } catch (IOException e) {<a name="line.340"></a> +<span class="sourceLineNo">341</span> LOG.warn("Failed seekTo first KV in the file", e);<a name="line.341"></a> +<span class="sourceLineNo">342</span> } finally {<a name="line.342"></a> +<span class="sourceLineNo">343</span> if(scanner != null) {<a name="line.343"></a> +<span class="sourceLineNo">344</span> scanner.close();<a name="line.344"></a> +<span class="sourceLineNo">345</span> }<a name="line.345"></a> +<span class="sourceLineNo">346</span> }<a name="line.346"></a> +<span class="sourceLineNo">347</span> }<a name="line.347"></a> +<span class="sourceLineNo">348</span> return this.firstKey;<a name="line.348"></a> +<span class="sourceLineNo">349</span> }<a name="line.349"></a> +<span class="sourceLineNo">350</span><a name="line.350"></a> +<span class="sourceLineNo">351</span> @Override<a name="line.351"></a> +<span class="sourceLineNo">352</span> public long getEntries() {<a name="line.352"></a> +<span class="sourceLineNo">353</span> // Estimate the number of entries as half the original file; this may be wildly inaccurate.<a name="line.353"></a> +<span class="sourceLineNo">354</span> return super.getEntries() / 2;<a name="line.354"></a> +<span class="sourceLineNo">355</span> }<a name="line.355"></a> +<span class="sourceLineNo">356</span><a name="line.356"></a> +<span class="sourceLineNo">357</span> @Override<a name="line.357"></a> +<span class="sourceLineNo">358</span> public long getFilterEntries() {<a name="line.358"></a> +<span class="sourceLineNo">359</span> // Estimate the number of entries as half the original file; this may be wildly inaccurate.<a name="line.359"></a> +<span class="sourceLineNo">360</span> return super.getFilterEntries() / 2;<a name="line.360"></a> +<span class="sourceLineNo">361</span> }<a name="line.361"></a> +<span class="sourceLineNo">362</span>}<a name="line.362"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e5c3dcd1/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html index b31fbf9..ef2e2f1 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html @@ -45,7 +45,7 @@ <span class="sourceLineNo">037</span> /** Whether mvcc is to be included in the Read/Write **/<a name="line.37"></a> <span class="sourceLineNo">038</span> private boolean includesMvcc = true;<a name="line.38"></a> <span class="sourceLineNo">039</span> /** Whether tags are to be included in the Read/Write **/<a name="line.39"></a> -<span class="sourceLineNo">040</span> private boolean includesTags;<a name="line.40"></a> +<span class="sourceLineNo">040</span> private boolean includesTags = false;<a name="line.40"></a> <span class="sourceLineNo">041</span> /** Compression algorithm used **/<a name="line.41"></a> <span class="sourceLineNo">042</span> private Algorithm compression = Algorithm.NONE;<a name="line.42"></a> <span class="sourceLineNo">043</span> /** Whether tags to be compressed or not **/<a name="line.43"></a>