[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-02-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15128550#comment-15128550
 ] 

ASF GitHub Bot commented on TRAFODION-1729:
---

Github user asfgit closed the pull request at:

https://github.com/apache/incubator-trafodion/pull/258


> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> hbase.snapshot.enabled true
> hbase.bulkload.staging.dir/hbase-staging
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15101435#comment-15101435
 ] 

ASF GitHub Bot commented on TRAFODION-1729:
---

Github user mashengchen closed the pull request at:

https://github.com/apache/incubator-trafodion/pull/258


> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> hbase.snapshot.enabled true
> hbase.bulkload.staging.dir/hbase-staging
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15101519#comment-15101519
 ] 

ASF GitHub Bot commented on TRAFODION-1729:
---

GitHub user mashengchen reopened a pull request:

https://github.com/apache/incubator-trafodion/pull/258

TRAFODION-1729

change the coprocessor deployment method, to avoid intrusive into 
underlying HBase system.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/mashengchen/incubator-trafodion master

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-trafodion/pull/258.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #258


commit 12d7342bb3d63991d31933139f5b3fee216ab8b7
Author: mashengchen 
Date:   2015-12-14T06:16:25Z

Merge pull request #1 from apache/master

update head

commit 3450fb15d4ae86c20c0a31f7e0750709f433af59
Author: mashengchen 
Date:   2015-12-21T05:26:00Z

Merge pull request #2 from apache/master

update head

commit c8fef619f858ff24b8076e4abc2f556d9fb42acb
Author: mashengchen 
Date:   2015-12-23T13:09:41Z

Merge pull request #3 from apache/master

update

commit 0042344cfb67900a1c815da932e5ea4c7ba93a19
Author: mashengchen 
Date:   2015-12-30T10:32:40Z

Merge pull request #4 from apache/master

update head

commit 11f9686b5df87f70b79edac5621da0610c7e70b8
Author: mashengchen 
Date:   2016-01-11T02:49:44Z

jira1729

commit cac96bc7ea69a3f1293e9ddef5e752f8785fb886
Author: mashengchen 
Date:   2016-01-11T03:19:05Z

Merge pull request #5 from apache/master

update head

commit 62237083f0db8230e257b6a8a12b5ca21c3831d8
Author: mashengchen 
Date:   2016-01-11T04:03:24Z

Merge branch 'master' of github.com:apache/incubator-trafodion

commit 5292fdc470db2317f4ab1133d298e98b97992e1e
Author: mashengchen 
Date:   2016-01-11T04:19:31Z

Merge branch 'master' of github.com:mashengchen/incubator-trafodion

commit 0ea8552120bd12d8c5ed1757325276cca3eac172
Author: mashengchen 
Date:   2016-01-11T05:39:43Z

Update HBaseClient.java

remove unnecessary log.

commit 6e0193a1837148fe5fecd3653402ddaff61f54ce
Author: mashengchen 
Date:   2016-01-11T05:41:00Z

Update CoprocessorUtils.java

change log level

commit 0dbaf3b3164069587a854968869211d1b69c3434
Author: mashengchen 
Date:   2016-01-11T05:52:45Z

jira1729

commit d8b594f2b585de224a007e48ba735f0f5db860be
Author: mashengchen 
Date:   2016-01-12T04:15:12Z

add copyright

commit e1af6b9b94b237ab98c8e40677ada757a9b76f18
Author: mashengchen 
Date:   2016-01-12T05:38:26Z

rename & update code

commit 411b703f557bdcff63b971261715d9a2caecb989
Author: mashengchen 
Date:   2016-01-12T05:50:13Z

Merge branch 'master' of github.com:apache/incubator-trafodion

commit c1b8448c90533a5a2b039cce116ee57563c77299
Author: mashengchen 
Date:   2016-01-12T05:54:31Z

remove trafcoprocess.properties

commit b8e6e9c920039c2fd7c0a175214b93ed2335d3e9
Author: mashengchen 
Date:   2016-01-14T07:54:08Z

Update traf_coprocessor.properties

use TrxRegionEndpoint as default

commit b01d8cb00abcfcadf48125649bdb69aac8616ffd
Author: mashengchen 
Date:   2016-01-15T04:16:02Z

Update CoprocessorUtils.java

commit a005ebf5ccf75a374f034f8b63891a396c651ae9
Author: mashengchen 
Date:   2016-01-15T06:18:14Z

Update HBaseClient.java

change CoprocessorUtils.addCoprocessor, add isMVCC as param

commit d11e9d4ecf4263b7999d4bf8e6460ba78da04150
Author: mashengchen 
Date:   2016-01-15T06:22:24Z

Update CoprocessorUtils.java

change addCoprocessor add isMVCC as param.

commit 5751399d9334b77bbaca629b9c93d55355b49f00
Author: mashengchen 
Date:   2016-01-15T06:27:01Z

Update traf_coprocessor.properties

make mvcc & sscc as a separate ones

commit 379f8aefaf12476b8bc0f7960636a33b1b341449
Author: mashengchen 
Date:   2016-01-15T06:28:45Z

Update CoprocessorUtils.java

commit c15226c639802578bc6eeac38b27aadf93aac8fe
Author: mashengchen 
Date:   2016-01-15T06:36:35Z

Update CoprocessorUtils.java

commit accdfe2848fecfdfb1521a2162f11c65794f391d
Author: mashengchen 
Date:   2016-01-15T09:08:49Z

seems version conflect




> change the 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-14 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15101314#comment-15101314
 ] 

ASF GitHub Bot commented on TRAFODION-1729:
---

GitHub user mashengchen reopened a pull request:

https://github.com/apache/incubator-trafodion/pull/258

TRAFODION-1729

change the coprocessor deployment method, to avoid intrusive into 
underlying HBase system.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/mashengchen/incubator-trafodion master

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-trafodion/pull/258.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #258


commit 12d7342bb3d63991d31933139f5b3fee216ab8b7
Author: mashengchen 
Date:   2015-12-14T06:16:25Z

Merge pull request #1 from apache/master

update head

commit 3450fb15d4ae86c20c0a31f7e0750709f433af59
Author: mashengchen 
Date:   2015-12-21T05:26:00Z

Merge pull request #2 from apache/master

update head

commit c8fef619f858ff24b8076e4abc2f556d9fb42acb
Author: mashengchen 
Date:   2015-12-23T13:09:41Z

Merge pull request #3 from apache/master

update

commit 0042344cfb67900a1c815da932e5ea4c7ba93a19
Author: mashengchen 
Date:   2015-12-30T10:32:40Z

Merge pull request #4 from apache/master

update head

commit 11f9686b5df87f70b79edac5621da0610c7e70b8
Author: mashengchen 
Date:   2016-01-11T02:49:44Z

jira1729

commit cac96bc7ea69a3f1293e9ddef5e752f8785fb886
Author: mashengchen 
Date:   2016-01-11T03:19:05Z

Merge pull request #5 from apache/master

update head

commit 62237083f0db8230e257b6a8a12b5ca21c3831d8
Author: mashengchen 
Date:   2016-01-11T04:03:24Z

Merge branch 'master' of github.com:apache/incubator-trafodion

commit 5292fdc470db2317f4ab1133d298e98b97992e1e
Author: mashengchen 
Date:   2016-01-11T04:19:31Z

Merge branch 'master' of github.com:mashengchen/incubator-trafodion

commit 0ea8552120bd12d8c5ed1757325276cca3eac172
Author: mashengchen 
Date:   2016-01-11T05:39:43Z

Update HBaseClient.java

remove unnecessary log.

commit 6e0193a1837148fe5fecd3653402ddaff61f54ce
Author: mashengchen 
Date:   2016-01-11T05:41:00Z

Update CoprocessorUtils.java

change log level

commit 0dbaf3b3164069587a854968869211d1b69c3434
Author: mashengchen 
Date:   2016-01-11T05:52:45Z

jira1729

commit d8b594f2b585de224a007e48ba735f0f5db860be
Author: mashengchen 
Date:   2016-01-12T04:15:12Z

add copyright

commit e1af6b9b94b237ab98c8e40677ada757a9b76f18
Author: mashengchen 
Date:   2016-01-12T05:38:26Z

rename & update code

commit 411b703f557bdcff63b971261715d9a2caecb989
Author: mashengchen 
Date:   2016-01-12T05:50:13Z

Merge branch 'master' of github.com:apache/incubator-trafodion

commit c1b8448c90533a5a2b039cce116ee57563c77299
Author: mashengchen 
Date:   2016-01-12T05:54:31Z

remove trafcoprocess.properties

commit b8e6e9c920039c2fd7c0a175214b93ed2335d3e9
Author: mashengchen 
Date:   2016-01-14T07:54:08Z

Update traf_coprocessor.properties

use TrxRegionEndpoint as default

commit b01d8cb00abcfcadf48125649bdb69aac8616ffd
Author: mashengchen 
Date:   2016-01-15T04:16:02Z

Update CoprocessorUtils.java

commit a005ebf5ccf75a374f034f8b63891a396c651ae9
Author: mashengchen 
Date:   2016-01-15T06:18:14Z

Update HBaseClient.java

change CoprocessorUtils.addCoprocessor, add isMVCC as param

commit d11e9d4ecf4263b7999d4bf8e6460ba78da04150
Author: mashengchen 
Date:   2016-01-15T06:22:24Z

Update CoprocessorUtils.java

change addCoprocessor add isMVCC as param.

commit 5751399d9334b77bbaca629b9c93d55355b49f00
Author: mashengchen 
Date:   2016-01-15T06:27:01Z

Update traf_coprocessor.properties

make mvcc & sscc as a separate ones

commit 379f8aefaf12476b8bc0f7960636a33b1b341449
Author: mashengchen 
Date:   2016-01-15T06:28:45Z

Update CoprocessorUtils.java




> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-10 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15091475#comment-15091475
 ] 

ASF GitHub Bot commented on TRAFODION-1729:
---

Github user mashengchen closed the pull request at:

https://github.com/apache/incubator-trafodion/pull/258


> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> hbase.snapshot.enabled true
> hbase.bulkload.staging.dir/hbase-staging
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-10 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15091477#comment-15091477
 ] 

ASF GitHub Bot commented on TRAFODION-1729:
---

GitHub user mashengchen reopened a pull request:

https://github.com/apache/incubator-trafodion/pull/258

TRAFODION-1729

change the coprocessor deployment method, to avoid intrusive into 
underlying HBase system.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/mashengchen/incubator-trafodion master

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-trafodion/pull/258.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #258


commit 12d7342bb3d63991d31933139f5b3fee216ab8b7
Author: mashengchen 
Date:   2015-12-14T06:16:25Z

Merge pull request #1 from apache/master

update head

commit 3450fb15d4ae86c20c0a31f7e0750709f433af59
Author: mashengchen 
Date:   2015-12-21T05:26:00Z

Merge pull request #2 from apache/master

update head

commit c8fef619f858ff24b8076e4abc2f556d9fb42acb
Author: mashengchen 
Date:   2015-12-23T13:09:41Z

Merge pull request #3 from apache/master

update

commit 0042344cfb67900a1c815da932e5ea4c7ba93a19
Author: mashengchen 
Date:   2015-12-30T10:32:40Z

Merge pull request #4 from apache/master

update head

commit 11f9686b5df87f70b79edac5621da0610c7e70b8
Author: mashengchen 
Date:   2016-01-11T02:49:44Z

jira1729

commit cac96bc7ea69a3f1293e9ddef5e752f8785fb886
Author: mashengchen 
Date:   2016-01-11T03:19:05Z

Merge pull request #5 from apache/master

update head

commit 62237083f0db8230e257b6a8a12b5ca21c3831d8
Author: mashengchen 
Date:   2016-01-11T04:03:24Z

Merge branch 'master' of github.com:apache/incubator-trafodion

commit 5292fdc470db2317f4ab1133d298e98b97992e1e
Author: mashengchen 
Date:   2016-01-11T04:19:31Z

Merge branch 'master' of github.com:mashengchen/incubator-trafodion

commit 0ea8552120bd12d8c5ed1757325276cca3eac172
Author: mashengchen 
Date:   2016-01-11T05:39:43Z

Update HBaseClient.java

remove unnecessary log.

commit 6e0193a1837148fe5fecd3653402ddaff61f54ce
Author: mashengchen 
Date:   2016-01-11T05:41:00Z

Update CoprocessorUtils.java

change log level

commit 0dbaf3b3164069587a854968869211d1b69c3434
Author: mashengchen 
Date:   2016-01-11T05:52:45Z

jira1729




> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-07 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15087053#comment-15087053
 ] 

liu ming commented on TRAFODION-1729:
-

Hi, Stack,
As per my understanding, some configuration items are client-side . (I don't 
know if there is such a concept in HBase .. ). For example: hbase.rpc.timeout
I think a client app can write code like this :
  Configuration conf = HBaseConfiguration.create();
  conf.set(“hbase.rpc.timeout”,”6”);
to change this setting , without HBase master or Region Server to restart for 
that new timeout to take effect.

But settings like 'hbase.snapshot.master.timeoutMillis' is a server-side 
config, and need a restart.

In fact, this is one of the confusing concept for me. Both client and HBase 
server use hbase-site.xml , and I don't find an article talking about 
differences. Some can be changed in app side, some not.

BTW, I am studying how to submit a patch to HBase, it will take some time. And 
I file a JIRA already:
https://issues.apache.org/jira/browse/HBASE-15076
And get a comment, it seems I need to study HBase internals more, it is not a 
single line of change.

thanks,
Ming

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread David Wayne Birdsall (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15085810#comment-15085810
 ] 

David Wayne Birdsall commented on TRAFODION-1729:
-

Hi Ming,

So today Trafodion can offer transactional support on native HBase tables. Your 
last comment has me wondering how this will work in your new proposal. I am 
guessing that transactional support would only be available on native HBase 
tables that are opened with the transactional coprocessors?

Dave

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15086429#comment-15086429
 ] 

liu ming commented on TRAFODION-1729:
-

Thanks Sean,

After this change, and 1730, there are still these items seems not able to 
avoid HBase restart:
hbase.snapshot.master.timeoutMillis 60
hbase_regionserver_lease_period 60
hbase.regionserver.region.split.policy 
org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
hbase.snapshot.enabled true
hbase.master.distributed.log.splitting false

My hope is :
hbase.snapsot.enable is by default true, and in most case it is. So we don't 
need to change it.
I think with new improvement, we can allow distributed log splitting in HBase. 
In fact, I am not quite sure if Trafodion real change this or not, and why we 
need this. 
For others, I still need to investigate, but seems they are no longer 'forced' 
changes (some timeouts), so we can ask user to change it in Installer, but not 
a forced step, an optional step.

thanks,
Ming

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15086433#comment-15086433
 ] 

liu ming commented on TRAFODION-1729:
-

Hi, Dave,

As per my understanding, Trafodion cannot support ACID on native HBase tables 
access. If this is a requirement, yes, this is a problem.
However, I feel it is still possible, we can alter the HBase table to add 
coprocessor when Trafodion need to transactionally access it. I will do an 
prototype. 
But I think we first need to confirm: Is now Trafodion support ACID on native 
HBase tables?

thanks,
Ming

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15086565#comment-15086565
 ] 

liu ming commented on TRAFODION-1729:
-

Thanks Narendra,

Then, this may be a very big issue. I will try to do some testing. The solution 
in my mind is before access the native HBase table, call method to alter the 
target table, to add trafodion coprocessors at runtime, when close the table, 
remove trafodion coprocessors.
But I don't know if HBase support this or not, need some investigation.

Ming

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread Narendra Goyal (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15086477#comment-15086477
 ] 

Narendra Goyal commented on TRAFODION-1729:
---

Hi Ming,

Yes, we do support ACID on native HBase tables.

Thanks,
-Narendra

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> hbase.snapshot.enabled true
> hbase.bulkload.staging.dir/hbase-staging
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15086909#comment-15086909
 ] 

stack commented on TRAFODION-1729:
--

bq  there are still these items seems not able to avoid HBase restart:

What does this mean? You want to set configuration but it requires a restart? 
Most all changes in hbase configuration require restart, not?

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-06 Thread Sean Broeder (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15086287#comment-15086287
 ] 

Sean Broeder commented on TRAFODION-1729:
-

Ming's proposal sounds good to me as it could potentially allow for different 
coprocessors to be loaded for different tables.  We have 2 coprocessors in 
development, so this may allow them to work in harmony.

Also, hbase.regionserver.region.transactional.tlog is no longer required.

Sean

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-05 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15084500#comment-15084500
 ] 

liu ming commented on TRAFODION-1729:
-

Thanks Stack, I need to learn how to submit a patch to HBase community.
And thanks Dave, here is the list of coprocessors:
org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionObserver
org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionEndpoint
org.apache.hadoop.hbase.coprocessor.AggregateImplementation
in the future, there is one more:
org.apache.hadoop.hbase.coprocessor.transactional.SsccRegionEndpoint

The overhead of adding coprocessor is only involved when a Region is first 
open. And I assume there is no difference between we use addCoprocessor() java 
API to add, or we modify hbase-site.xml to add. Just two different ways to add 
coprocessor in HBase. hbase-site.xml is a global setting. In fact, it will let 
ALL hbase tables to load Trafodion coprocessors, even for those native hbase 
tables, which not created by Trafodion. With this change, we can control that 
only Trafodion tables will be equipped with these coprocessors. Yet another 
reason to do this change :-) 

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-04 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15081339#comment-15081339
 ] 

stack commented on TRAFODION-1729:
--

[~limpo2000] Go ahead and file the issue against upstream and I'll commit it 
for you.

I'd be interested in how many CPs T8 loads too myself. Is there a list? Can we 
get rid of any of them?

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> hbase.snapshot.enabled true

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-04 Thread David Wayne Birdsall (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15081309#comment-15081309
 ] 

David Wayne Birdsall commented on TRAFODION-1729:
-

This question is only tangentially related to this change, but I thought I'd 
ask anyway. How many co-processors does Trafodion use? If we add the 
co-processor(s) at Trafodion table create time, is it the same set that gets 
added each time? Is there any overhead to adding co-processors repeatedly? Is 
there any limit in HBase to the number of co-processors? Thanks.

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-03 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15080609#comment-15080609
 ] 

liu ming commented on TRAFODION-1729:
-

Hi, Stack,

Yes, the patch is exactly what Trafodion need, if that can be merged into HBase 
upstream, it will help T8 folks a lot! 
Thank you for considering this. So you will do that change in HBase?

thanks,
Ming

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
> tune the system to best suit Trafodion, but should not be a forced step. To 
> be note: Apache Phoenix is also a SQL on HBase, its installation will change 
> nothing of underlying HBase, very lightweight, no ‘intrude into’ the existing 
> HBase system. Trafodion is considered to be heavy and intrusive in this 
> manner, and I feel maybe we can change this.
>  
> Should I start this discussion in the dev mail list?
>  
> P.S. a list of changed config items. My proposal will remove the last one, 
> hope we can get rid of all of them:
> hbase.master.distributed.log.splitting  false
> hbase.snapshot.master.timeoutMillis  60
> hbase_regionserver_lease_period 60
> hbase.hregion.impl 
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegion
> hbase.regionserver.region.split.policy  
> org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2016-01-02 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15076724#comment-15076724
 ] 

stack commented on TRAFODION-1729:
--

bq. Trafodion save the updated rows in RS heap, call it writeOrdering list, all 
Put and Delete are saved in this list and not go into HBase Region until 
commit, so other transaction cannot see the update. 

Might be better if we exposed the internal mvcc ... let a Coprocessor manage 
update thought that might be too much carnal knowledge. You'd need to be 
able to rollback... so yeah, probably best you keep the edits off to the side 
until time to commit.

bq. But that getScanner() method is protected, so Trafodion overload HRegion 
and make it public, in order to invoke it.

Make a patch for upstream HBase and we'll backport it all the ways to 1.0.x 
HBase. Something like this?

{code}
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index 0e9319c..d61589b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -2579,7 +2579,7 @@ public class HRegion implements HeapSize, 
PropagatingConfigurationObserver, Regi
 return scanner;
   }

-  protected RegionScanner getScanner(Scan scan, List 
additionalScanners,
+  public RegionScanner getScanner(Scan scan, List 
additionalScanners,
   boolean copyCellsFromSharedMem) throws IOException {
 startRegionOperation(Operation.SCAN);
 try {

{code}






> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2015-12-31 Thread liu ming (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15075963#comment-15075963
 ] 

liu ming commented on TRAFODION-1729:
-

thanks Stack very much for your comments. Let me try to clarify items one by 
one.
1. Overloading
To implement transaction semantics, Trafodion save the updated rows in RS heap, 
call it writeOrdering list, all Put and Delete are saved in this list and not 
go into HBase Region until commit, so other transaction cannot see the update. 
So, before commit, when it does a scan, Trafodion needs to filter out those 
'deleted' rows for current transaction, and plus those new put rows which still 
in memory not in the Region yet.
To archieve this, in the coprocessor, Trafodion needs to invoke a protected 
HRegion method:
protected RegionScanner getScanner(Scan scan,
   List additionalScanners,
   boolean copyCellsFromSharedMem)
throws IOException
To combine two scanners' result as final scan result. 
The first scanner will equiped with a filter to filter out 'deleted' rows which 
matching the delete objects in writeOrdering list. But new inserted rows or 
updated rows are Put objects in writeOrdering as well, so Trafodion need 
another additonalScanners to get those rows in the writeOrdering list and 
combine the result.
But that getScanner() method is protected, so Trafodion overload HRegion and 
make it public, in order to invoke it.
Currently, Trafodion overload the HRegion just to make that method as public, 
so can be invoked within the coprocessor.
Our proposal is to use Java's reflection technique to invoke this 'proctected' 
method without overload. It is used only once during a scanner construction, so 
we feel it will not impact the performance as well. This is the idea of this 
proposal.

2. Phoenix
I am wrong with Phoenix, I was playing with it long ago and as I remember, I 
just download a tar file and untar it and no change to my HBase system and get 
Phoenix working, so I said that, but probably my memeory is wrong, but the 
point is , we wish to avoid too much changes into HBase and restart it in order 
to use Trafodion.

And I don't know if it is possible to make that getScanner() method to public 
in future HBase release? If that can be made, it will help Trafodion 
development a lot.

thanks.

> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> 

[jira] [Commented] (TRAFODION-1729) change the coprocessor deployment method

2015-12-30 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/TRAFODION-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15075188#comment-15075188
 ] 

stack commented on TRAFODION-1729:
--

I like the sound of this issue.

Do we know what would need to change so you did not have to do this: {{To 
overload HRegion with TransactionalRegion}}  This is going to continue to cause 
you pain. Do you need it still now you have coprocessors (overloading was a 
technique that was done before we had coprocessors overloading is sure to 
break as hbase makes new releases).

bq.  I checked with Kevin and he proposed by using ‘java reflection’ we can 
also avoid this. 

Which method are you referring too? You want to return your own Scanner 
implementation?

bq. To be note: Apache Phoenix is also a SQL on HBase, its installation will 
change nothing of underlying HBase, very lightweight, no ‘intrude into’ the 
existing HBase system.

It is less intrusive, yes, but Phoenix requires CPs installed and has its 
fingers in hbase internals. We are working to get it out of hbase internals (if 
you need functionality of hbase that requires the overload of HRegoin or 
anything else, surface it upstream and we can change HBase or help you figure 
alternative).

Yeah, this belongs up on dev list, at least the general proposoal.  Good stuff.





> change the coprocessor deployment method
> 
>
> Key: TRAFODION-1729
> URL: https://issues.apache.org/jira/browse/TRAFODION-1729
> Project: Apache Trafodion
>  Issue Type: Improvement
>  Components: dtm
>Reporter: liu ming
>Assignee: mashengchen
>
> I have a proposal to change our current HBase coprocessor configuration 
> method. 
> There are three ways to add a coprocessor to a HBase table:
> 1.   Via editing hbase-site.xml, which will load coprocessor for ALL 
> tables (Trafodion is using this method now)
> 2.   Via HBase shell command
> 3.   Via HTableDescriptor.addCoprocessor() java API
> Trafodion now is using the first method. I proposed to use method 3, I 
> finished a prototype and test seems works well.
>  
> Here are the reasons I propose for this change:
> At present, the Trafodion installer needs to modify the hbase-site.xml and 
> then restart HBase instance for the configuration to take effect. This step 
> not only complicate the installer but also let user think Trafodion is 
> intrusive into underlying HBase system. It will be ideal if we can avoid this 
> step. Another problem: in CDH, there is a concept called ‘region server 
> group’ or something, so the settings will have to carefully handled by 
> installer to apply to all groups. As we saw recently in WebRoot deployment, 
> Trafodion failed due to this reason. All these are very error prone and 
> complicate the Trafodion installer. Once CDH or HDP changed something, 
> Trafodion may fail again.
>  
> So I spent time to investigate why we need to restart HBase in order to 
> install Trafodion.  
> As I understand, there are 3 major reasons 
> 1.   To add hbase-trx coprocessors
> 2.   To overload HRegion with TransactionalRegion
> 3.   Various configuration settings, need to check one by one.
> The first configuration can be avoided by applying my proposed change.
> The second one, I look through the TransactionalRegion.java, and find out the 
> only reason (now) is to overload the getScanner() method to be public so can 
> be invoked by the coprocessor. And there are only 1 or 2 places that API is 
> invoked in Trafodion code. I checked with Kevin and he proposed by using 
> ‘java reflection’ we can also avoid this. 
> All other configuration items to some extent look like ‘best to have’, but 
> not ‘must to have’. And I also find two config items seems never been used:
> hbase.bulkload.staging.dir /hbase-staging (Suresh can confirm, 
> but I search in all code, seems this is never used)
> hbase.regionserver.region.transactional.tlog   true (Narendra can 
> confirm, this is NEVER used, maybe a legacy config item?)
> Yes, by now, there are still some other config items seems cannot be avoided, 
> but I hope we can find some way to remove them in the future. I am not trying 
> to solve all issues right now, just want to start the effort to remove 
> unnecessary hbase reconfiguration.
> For this example, Coprocessors can be added to a table at run time, no need 
> to edit the hbase-site.xml and restart hbase. This is only the first step to 
> try to remove the deep impact to the current HBase config and restart HBase.
>  
> So I asked for your opinions about this change. If you think this is 
> necessary, I will continue to file a JIRA and fix it. 
>  
> I strongly recommend to get rid of the step of ‘modify hbase-site.xml and 
> restart your hbase’ for Trafodion installation, it should be an option , to 
>