[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException

2023-09-06 Thread via GitHub


NihalJain commented on PR #135:
URL: 
https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1708819815

   > Also, I observed that the semantics of what is printed in sysout is not 
well defined. For few commands, say `assigns`, it prints output as a list: 
`[425, 426, 427, 428, 429]`; while for others, like `unassigns`, `bypass` it 
prints: `415, 416, 417, 418, 419`.
   > 
   > I feel we should keep this in sync across commands, by following either 
approach (I prefer `[425, 426, 427, 428, 429]`), to ease parsing of the 
outputs. Let me know what do you think about this; I can raise a JIRA to fix 
the same.
   
   Hello, @petersomogyi Any thoughts on this?
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException

2023-09-06 Thread via GitHub


NihalJain commented on PR #135:
URL: 
https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1708419642

   > Nice improvement! I only have a minor comment on the log.
   
   Fixed the review comment. Thanks for taking time to review this 
@petersomogyi. 
   I will wait until EOD for any other reviews/comments by others and then 
merge this by EOD.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException

2023-09-05 Thread via GitHub


NihalJain commented on PR #135:
URL: 
https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1706728002

   Rebased code and removed unrelated code format changes as they have already 
been fixed with https://github.com/apache/hbase-operator-tools/pull/137
   
   @petersomogyi , @wchevreuil could you please review the changes? Also, why 
this is needed is captured in 
[JIRA](https://issues.apache.org/jira/browse/HBASE-27961)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException

2023-08-23 Thread via GitHub


NihalJain commented on PR #135:
URL: 
https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1690281118

   Based on code, I was able to identify 3 commands: `assigns`, `unassigns` and 
`bypass`, which should have batching in case large list of input is passed and 
have made a change for same. 
   
   Please let me know, in case I missed any other command, for which we could 
add batching.
   
   Also I find the semantics of what is print in sysout is not well defined. 
For few commands, say `assigns`, it prints output as a list as follows: `[425, 
426, 427, 428, 429]`; while for others, like `unassigns`, `bypass` it prints as 
follows: `415, 416, 417, 418, 419`
   
   I feel we should keep this in sync across commands, by following either 
approach (I prefer `[425, 426, 427, 428, 429]`), to ease parsing of the 
outputs. Let me know what do you think about this; I can raise a JIRA to fix 
the same.
   
   CC: @wchevreuil , @petersomogyi


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException

2023-08-23 Thread via GitHub


NihalJain commented on PR #135:
URL: 
https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1690226389

   In order to test the change build codebase locally and deployed hbck2 jar on 
a real cluster running 2.5x. 
   
   For overall tool tested following:
   - Run help and ensure looks as expected
   
   Tested the following for each of the command: `assigns`, `unassigns` and 
`bypass`
   - Run existing command with no batching and ensure no changes in behavior
   - Run command with batching and ensure works as expected
   - Validate invalid data passed for batch size throws exception in following 
cases:
  - pass wrong data type
  - pass value <= 0
   
   NOTE: In case of testing for `bypass` dummy process id's were passed but 
logs confirm proper working.
   
   Detailed test run logs for reference:
   ```
   $ export HBCK_JAR=hbase-hbck2-1.3.0-SNAPSHOT.jar
   $ hbase --config conf hbck -j $HBCK_JAR
   usage: HBCK2 [OPTIONS] COMMAND 
   Options:
-d,--debug   run with debug output
-h,--helpoutput this help message
-p,--hbase.zookeeper.property.clientPortport of hbase ensemble
-q,--hbase.zookeeper.quorum hbase ensemble
-s,--skipskip hbase version check
 (PleaseHoldException)
-v,--version this hbck2 version
-z,--zookeeper.znode.parent parent znode of hbase
 ensemble
   Command:
addFsRegionsMissingInMeta [OPTIONS]
 [...|-i ...]
  Options:
   -i,--inputFiles  take one or more files of namespace or table names
   -o,--outputFile  name/prefix of the file(s) to dump region names
   -n,--numLines  number of lines to be written to each output file
  To be used when regions missing from hbase:meta but directories
  are present still in HDFS. Can happen if user has run _hbck1_
  'OfflineMetaRepair' against an hbase-2.x cluster. Needs hbase:meta
  to be online. For each table name passed as parameter, performs diff
  between regions available in hbase:meta and region dirs on HDFS.
  Then for dirs with no hbase:meta matches, it reads the 'regioninfo'
  metadata file and re-creates given region in hbase:meta. Regions are
  re-created in 'CLOSED' state in the hbase:meta table, but not in the
  Masters' cache, and they are not assigned either. To get these
  regions online, run the HBCK2 'assigns'command printed when this
  command-run completes.
  NOTE: If using hbase releases older than 2.3.0, a rolling restart of
  HMasters is needed prior to executing the set of 'assigns' output.
  An example adding missing regions for tables 'tbl_1' in the default
  namespace, 'tbl_2' in namespace 'n1' and for all tables from
  namespace 'n2':
$ HBCK2 addFsRegionsMissingInMeta default:tbl_1 n1:tbl_2 n2
  Returns HBCK2  an 'assigns' command with all re-inserted regions.
  SEE ALSO: reportMissingRegionsInMeta
  SEE ALSO: fixMeta
  If -i or --inputFiles is specified, pass one or more input file names.
  Each file contains , one per line.
  For example:
$ HBCK2 addFsRegionsMissingInMeta -i fileName1 fileName2
  If -o or --outputFile is specified, the output file(s) can be passed as
   input to assigns command via -i or -inputFiles option.
  If -n or --numLines is specified, and say it is  set to 100, this will
  create files with prefix as value passed by -o or --outputFile option.
  Each file will have 100 region names (max.), one per line.
  For example:
$ HBCK2 addFsRegionsMissingInMeta -o outputFilePrefix -n 100
-i fileName1 fileName2
  But if -n is not specified, but -o is specified, it will dump all
  region names in a single file, one per line.
  NOTE: -n option is applicable only if -o option is specified.
   
assigns [OPTIONS] [...|-i ...]
  Options:
   -o,--override  override ownership by another procedure
   -i,--inputFiles  take one or more files of encoded region names
   -b,--batchSize   number of regions to process in a batch
  A 'raw' assign that can be used even during Master initialization (if
  the -skip flag is specified). Skirts Coprocessors. Pass one or more
  encoded region names. 1588230740 is the hard-coded name for the
  hbase:meta region and de00010733901a05f5a2a3a382e27dd4 is an example of
  what a user-space encoded region name looks like. For example:
$ HBCK2 assigns 1588230740 de00010733901a05f5a2a3a382e27dd4
  Returns the pid(s) of the created AssignProcedure(s) or -1 if none.
  If -i or --inputFiles is specified, pass one or more input file names.
  Each file contains encoded region names, one per line. For example: