hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Slava Gorelik <slava.gore...@gmail.com>
Subject Re: Exception on HBaseAdmin.disableTable
Date Thu, 19 Feb 2009 19:31:46 GMT
Yes, this is the line.
About the changes, one of them is to get the timestamp of update from the
updating regionserver. It's possible to make an inheritance but for the
simplicity i just changes the function signature of HBase core.

Best Regards.

On Thu, Feb 19, 2009 at 9:26 PM, stack <stack@duboce.net> wrote:

> So its this line?            r = rrs[0];
>
> Any changes you need to make it so your changes to hbase don't have to be
> part of the core (Can we make things public or protected, etc.)
>
> Thanks Slava,
> St.Ack
>
> On Thu, Feb 19, 2009 at 11:19 AM, Slava Gorelik <slava.gorelik@gmail.com
> >wrote:
>
> > Hi
> > Here the function:
> > public boolean isTableEnabled(byte[] tableName) throws IOException {
> >      if (!tableExists(tableName)) {
> >        throw new TableNotFoundException(Bytes.toString(tableName));
> >      }
> >      if (Bytes.equals(tableName, HConstants.ROOT_TABLE_NAME)) {
> >        // The root region is always enabled
> >        return true;
> >      }
> >
> >      boolean result = true;
> >      int rowsScanned = 0;
> >      byte[] startKey =
> >        HRegionInfo.createRegionName(tableName, null, HConstants.ZEROES);
> >      HRegionInfo currentRegion = null;
> >      do {
> >        if (currentRegion != null) {
> >          byte[] endKey = currentRegion.getEndKey();
> >          if (endKey == null ||
> >              HStoreKey.equalsTwoRowKeys(currentRegion, endKey,
> > HConstants.EMPTY_BYTE_ARRAY)) {
> >            // We have reached the end of the table and we're done
> >            break;
> >          }
> >        }
> >        HRegionInfo oldRegion = currentRegion;
> >        if (oldRegion != null) {
> >          startKey = oldRegion.getEndKey();
> >        }
> >        ScannerCallable s = new ScannerCallable(this,
> >            (Bytes.equals(tableName, HConstants.META_TABLE_NAME) ?
> >                HConstants.ROOT_TABLE_NAME : HConstants.META_TABLE_NAME),
> >            HConstants.COL_REGIONINFO_ARRAY, startKey,
> >            HConstants.LATEST_TIMESTAMP, null
> >        );
> >        // Open scanner
> >        getRegionServerWithRetries(s);
> >        currentRegion = s.getHRegionInfo();
> >        try {
> >          RowResult r = null;
> >          RowResult[] rrs = null;
> >          while (result && (rrs = getRegionServerWithRetries(s)) != null)
> {
> >            r = rrs[0];
> >
> >
> ///////////////////////////////////////////////////////////////////////////////////////////
> > This is Line 344 ///////////////////////////////
> >            Cell c = r.get(HConstants.COL_REGIONINFO);
> >            if (c != null) {
> >              byte[] value = c.getValue();
> >              if (value != null) {
> >                HRegionInfo info = Writables.getHRegionInfoOrNull(value);
> >                if (info != null) {
> >                  if (Bytes.equals(info.getTableDesc().getName(),
> > tableName)) {
> >                    rowsScanned += 1;
> >                    result = !info.isOffline();
> >                  }
> >                }
> >              }
> >            }
> >          }
> >        } finally {
> >          s.setClose();
> >          getRegionServerWithRetries(s);
> >        }
> >      } while (result);
> >      return rowsScanned > 0 && result;
> >    }
> >
> > About upgrading to 0.19.0, I'm working on it, I made some changes to
> 0.18.0
> > and need to integrate them into 0.19.0 before I'm upgrading.
> >
> >
> > Thank You and Best Regards.
> > Slava
> >
>

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