Re: attributes - basic question
The attributes are serialized along with the base operation request. There's perhaps no immediate client-side usage of this, it is used by the Mutation class to set a cluster ID in HBase's Replication context: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Mutation.java?view=markup I suppose it could also be used to tag client requests, and used along with Coprocessors that way for some behavior differences. On Sat, Feb 23, 2013 at 12:11 AM, Toby Lazar tla...@gmail.com wrote: What is the purpose of the getAttribute and setAttribute methods for classes implementing OperationWithAttributes? I don't see much documentation about them, haven't seen much discussion on this list about them, and am wondering what people use them for. Or, are they mostly just used internally? Any insights about these methods are appreciated. Thanks! Toby -- Harsh J
Re: attributes - basic question
Your last point was exactly what I was looking for. I am thinking about using attributes along with coprocessors to impose some application-level authorization constraints. For example, in a get, I can pass username and credential attributes and have the coprocessor filter results based on some rules or group membership. Of course, I'll need to make sure that that step doesn't violate regular good practices for coprocessors. If anyone has used attributes for any similar purpose, I'd be interested in hearing about those experiences. Thanks, Toby On Fri, Feb 22, 2013 at 4:24 PM, Harsh J ha...@cloudera.com wrote: The attributes are serialized along with the base operation request. There's perhaps no immediate client-side usage of this, it is used by the Mutation class to set a cluster ID in HBase's Replication context: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Mutation.java?view=markup I suppose it could also be used to tag client requests, and used along with Coprocessors that way for some behavior differences. On Sat, Feb 23, 2013 at 12:11 AM, Toby Lazar tla...@gmail.com wrote: What is the purpose of the getAttribute and setAttribute methods for classes implementing OperationWithAttributes? I don't see much documentation about them, haven't seen much discussion on this list about them, and am wondering what people use them for. Or, are they mostly just used internally? Any insights about these methods are appreciated. Thanks! Toby -- Harsh J
RE: attributes - basic question
We have used setAttribute() along with Scan which we are using in the CP. Ya it will work fine. Pls try with ur use case and if finding any issue pls report -Anoop- From: Toby Lazar [tla...@gmail.com] Sent: Saturday, February 23, 2013 4:07 AM To: user@hbase.apache.org Subject: Re: attributes - basic question Your last point was exactly what I was looking for. I am thinking about using attributes along with coprocessors to impose some application-level authorization constraints. For example, in a get, I can pass username and credential attributes and have the coprocessor filter results based on some rules or group membership. Of course, I'll need to make sure that that step doesn't violate regular good practices for coprocessors. If anyone has used attributes for any similar purpose, I'd be interested in hearing about those experiences. Thanks, Toby On Fri, Feb 22, 2013 at 4:24 PM, Harsh J ha...@cloudera.com wrote: The attributes are serialized along with the base operation request. There's perhaps no immediate client-side usage of this, it is used by the Mutation class to set a cluster ID in HBase's Replication context: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Mutation.java?view=markup I suppose it could also be used to tag client requests, and used along with Coprocessors that way for some behavior differences. On Sat, Feb 23, 2013 at 12:11 AM, Toby Lazar tla...@gmail.com wrote: What is the purpose of the getAttribute and setAttribute methods for classes implementing OperationWithAttributes? I don't see much documentation about them, haven't seen much discussion on this list about them, and am wondering what people use them for. Or, are they mostly just used internally? Any insights about these methods are appreciated. Thanks! Toby -- Harsh J
Re: attributes - basic question
Same with us on Phoenix - we use the setAttribute on the client side and the getAttribute on the server side to pickup state on the Scan being executed. Works great. One thing to keep in mind, though: for a region observer coprocessor, the state you set on the client side will be sent to each region individually, so if you have some large global state, you might want to use a different mechanism to get it over to the server side. James On 02/22/2013 09:15 PM, Anoop Sam John wrote: We have used setAttribute() along with Scan which we are using in the CP. Ya it will work fine. Pls try with ur use case and if finding any issue pls report -Anoop- From: Toby Lazar [tla...@gmail.com] Sent: Saturday, February 23, 2013 4:07 AM To: user@hbase.apache.org Subject: Re: attributes - basic question Your last point was exactly what I was looking for. I am thinking about using attributes along with coprocessors to impose some application-level authorization constraints. For example, in a get, I can pass username and credential attributes and have the coprocessor filter results based on some rules or group membership. Of course, I'll need to make sure that that step doesn't violate regular good practices for coprocessors. If anyone has used attributes for any similar purpose, I'd be interested in hearing about those experiences. Thanks, Toby On Fri, Feb 22, 2013 at 4:24 PM, Harsh J ha...@cloudera.com wrote: The attributes are serialized along with the base operation request. There's perhaps no immediate client-side usage of this, it is used by the Mutation class to set a cluster ID in HBase's Replication context: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Mutation.java?view=markup I suppose it could also be used to tag client requests, and used along with Coprocessors that way for some behavior differences. On Sat, Feb 23, 2013 at 12:11 AM, Toby Lazar tla...@gmail.com wrote: What is the purpose of the getAttribute and setAttribute methods for classes implementing OperationWithAttributes? I don't see much documentation about them, haven't seen much discussion on this list about them, and am wondering what people use them for. Or, are they mostly just used internally? Any insights about these methods are appreciated. Thanks! Toby -- Harsh J