Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-09 Thread Ted Yu
Zookeeper is supposed to store transient data.
Plus you need to secure the audit log in zookeeper so that unauthorized
user cannot temper the audit.

On Thu, Mar 9, 2017 at 9:24 AM, Xi Yang  wrote:

> Thank you Anoop. After thinking, I give up the idea about write records to
> RS, I will using other ways like zk, or just a text file. I appreciate your
> help!
>
> 2017-03-07 23:36 GMT-08:00 Anoop John :
>
> > It will be cross server call.. The pre/postModifyColumn is in master
> > side. (MasterObserver)  You want to write the info to a table means
> > this will be in some RS.  So an RPC request will be needed. But still
> > it is not a case like one RS to another RS cross server call where
> > there is a remote chance of all handlers getting stuck and possible
> > deadlock.  Need to carefully done though!
> >
> > -Anoop-
> >
> > On Wed, Mar 8, 2017 at 8:26 AM, Xi Yang  wrote:
> > > Got it. I appreciate your help!
> > >
> > > 2017-03-07 17:05 GMT-08:00 Ted Yu :
> > >
> > >> It seems the following hook is better for your use case:
> > >>
> > >>   default void postModifyColumn(final
> > >> ObserverContext ctx,
> > >>   TableName tableName, HColumnDescriptor columnFamily) throws
> > >> IOException {}
> > >>
> > >> since there is no guarantee that column family is modified at
> > >> time preModifyColumnFamily() is called.
> > >>
> > >> Cheers
> > >>
> > >> On Tue, Mar 7, 2017 at 4:43 PM, Xi Yang 
> wrote:
> > >>
> > >> > Requirement:
> > >> >
> > >> > I want to record every change of modify columnFamily by using
> > >> > preModifyColumnFamily().
> > >> > Now I have a table "my_ddl_log" which used to record the change of
> > >> > columnFamily. For example:
> > >> >
> > >> > If jack change the TTL of columnFamily "primary" in table
> "employee".
> > >> Then
> > >> > we should add a put to "my_ddl_log" like this record:
> > >> > log:name= 'jack'
> > >> > log:updateTime= '2017-03-07 12:12 GMT-08:00'
> > >> > log:change= ''Change TTL of Table: employee ColumnFamily: primary'
> > >> >
> > >> > I try to use preModifyColumnFamily to do this stuff.
> > >> >
> > >> > Thanks,
> > >> > Alex
> > >> >
> > >> >
> > >> > 2017-03-07 12:12 GMT-08:00 Ted Yu :
> > >> >
> > >> > > Describing your use case would allow people to give better answer.
> > >> > >
> > >> > > What kind of data do you write to other table in
> > >> preModifyColumnFamily()
> > >> > ?
> > >> > >
> > >> > > Cross server call within observer is not good idea.
> > >> > >
> > >> > > Take a look at ConnectionUtils.createShortCircuitConnection().
> > >> > >
> > >> > > Cheers
> > >> > >
> > >> > > On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang 
> > >> wrote:
> > >> > >
> > >> > > > All the articles I've ever seen are talking about add
> > increment
> > >> or
> > >> > > > change put/get status or pinrt out logs. what if I want to write
> > some
> > >> > > data
> > >> > > > to another table in Observer? For
> > >> > > > example, MasterObserver.preModifyColumnFamily()? Seems Observer
> > is
> > >> > > runing
> > >> > > > at server side, so use connection is unneccessary and might
> raise
> > >> some
> > >> > > > problem.
> > >> > > >I know this might be a stupid question, so if you can just
> give
> > >> some
> > >> > > > links let me to learn without explain in email, I will be
> > grateful to
> > >> > you
> > >> > > > for your help
> > >> > > >
> > >> > > > Thanks,
> > >> > > > Alex
> > >> > > >
> > >> > >
> > >> >
> > >>
> >
>


Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-09 Thread Xi Yang
Thank you Anoop. After thinking, I give up the idea about write records to
RS, I will using other ways like zk, or just a text file. I appreciate your
help!

2017-03-07 23:36 GMT-08:00 Anoop John :

> It will be cross server call.. The pre/postModifyColumn is in master
> side. (MasterObserver)  You want to write the info to a table means
> this will be in some RS.  So an RPC request will be needed. But still
> it is not a case like one RS to another RS cross server call where
> there is a remote chance of all handlers getting stuck and possible
> deadlock.  Need to carefully done though!
>
> -Anoop-
>
> On Wed, Mar 8, 2017 at 8:26 AM, Xi Yang  wrote:
> > Got it. I appreciate your help!
> >
> > 2017-03-07 17:05 GMT-08:00 Ted Yu :
> >
> >> It seems the following hook is better for your use case:
> >>
> >>   default void postModifyColumn(final
> >> ObserverContext ctx,
> >>   TableName tableName, HColumnDescriptor columnFamily) throws
> >> IOException {}
> >>
> >> since there is no guarantee that column family is modified at
> >> time preModifyColumnFamily() is called.
> >>
> >> Cheers
> >>
> >> On Tue, Mar 7, 2017 at 4:43 PM, Xi Yang  wrote:
> >>
> >> > Requirement:
> >> >
> >> > I want to record every change of modify columnFamily by using
> >> > preModifyColumnFamily().
> >> > Now I have a table "my_ddl_log" which used to record the change of
> >> > columnFamily. For example:
> >> >
> >> > If jack change the TTL of columnFamily "primary" in table "employee".
> >> Then
> >> > we should add a put to "my_ddl_log" like this record:
> >> > log:name= 'jack'
> >> > log:updateTime= '2017-03-07 12:12 GMT-08:00'
> >> > log:change= ''Change TTL of Table: employee ColumnFamily: primary'
> >> >
> >> > I try to use preModifyColumnFamily to do this stuff.
> >> >
> >> > Thanks,
> >> > Alex
> >> >
> >> >
> >> > 2017-03-07 12:12 GMT-08:00 Ted Yu :
> >> >
> >> > > Describing your use case would allow people to give better answer.
> >> > >
> >> > > What kind of data do you write to other table in
> >> preModifyColumnFamily()
> >> > ?
> >> > >
> >> > > Cross server call within observer is not good idea.
> >> > >
> >> > > Take a look at ConnectionUtils.createShortCircuitConnection().
> >> > >
> >> > > Cheers
> >> > >
> >> > > On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang 
> >> wrote:
> >> > >
> >> > > > All the articles I've ever seen are talking about add
> increment
> >> or
> >> > > > change put/get status or pinrt out logs. what if I want to write
> some
> >> > > data
> >> > > > to another table in Observer? For
> >> > > > example, MasterObserver.preModifyColumnFamily()? Seems Observer
> is
> >> > > runing
> >> > > > at server side, so use connection is unneccessary and might raise
> >> some
> >> > > > problem.
> >> > > >I know this might be a stupid question, so if you can just give
> >> some
> >> > > > links let me to learn without explain in email, I will be
> grateful to
> >> > you
> >> > > > for your help
> >> > > >
> >> > > > Thanks,
> >> > > > Alex
> >> > > >
> >> > >
> >> >
> >>
>


Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-07 Thread Anoop John
It will be cross server call.. The pre/postModifyColumn is in master
side. (MasterObserver)  You want to write the info to a table means
this will be in some RS.  So an RPC request will be needed. But still
it is not a case like one RS to another RS cross server call where
there is a remote chance of all handlers getting stuck and possible
deadlock.  Need to carefully done though!

-Anoop-

On Wed, Mar 8, 2017 at 8:26 AM, Xi Yang  wrote:
> Got it. I appreciate your help!
>
> 2017-03-07 17:05 GMT-08:00 Ted Yu :
>
>> It seems the following hook is better for your use case:
>>
>>   default void postModifyColumn(final
>> ObserverContext ctx,
>>   TableName tableName, HColumnDescriptor columnFamily) throws
>> IOException {}
>>
>> since there is no guarantee that column family is modified at
>> time preModifyColumnFamily() is called.
>>
>> Cheers
>>
>> On Tue, Mar 7, 2017 at 4:43 PM, Xi Yang  wrote:
>>
>> > Requirement:
>> >
>> > I want to record every change of modify columnFamily by using
>> > preModifyColumnFamily().
>> > Now I have a table "my_ddl_log" which used to record the change of
>> > columnFamily. For example:
>> >
>> > If jack change the TTL of columnFamily "primary" in table "employee".
>> Then
>> > we should add a put to "my_ddl_log" like this record:
>> > log:name= 'jack'
>> > log:updateTime= '2017-03-07 12:12 GMT-08:00'
>> > log:change= ''Change TTL of Table: employee ColumnFamily: primary'
>> >
>> > I try to use preModifyColumnFamily to do this stuff.
>> >
>> > Thanks,
>> > Alex
>> >
>> >
>> > 2017-03-07 12:12 GMT-08:00 Ted Yu :
>> >
>> > > Describing your use case would allow people to give better answer.
>> > >
>> > > What kind of data do you write to other table in
>> preModifyColumnFamily()
>> > ?
>> > >
>> > > Cross server call within observer is not good idea.
>> > >
>> > > Take a look at ConnectionUtils.createShortCircuitConnection().
>> > >
>> > > Cheers
>> > >
>> > > On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang 
>> wrote:
>> > >
>> > > > All the articles I've ever seen are talking about add increment
>> or
>> > > > change put/get status or pinrt out logs. what if I want to write some
>> > > data
>> > > > to another table in Observer? For
>> > > > example, MasterObserver.preModifyColumnFamily()? Seems Observer is
>> > > runing
>> > > > at server side, so use connection is unneccessary and might raise
>> some
>> > > > problem.
>> > > >I know this might be a stupid question, so if you can just give
>> some
>> > > > links let me to learn without explain in email, I will be grateful to
>> > you
>> > > > for your help
>> > > >
>> > > > Thanks,
>> > > > Alex
>> > > >
>> > >
>> >
>>


Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-07 Thread Xi Yang
Got it. I appreciate your help!

2017-03-07 17:05 GMT-08:00 Ted Yu :

> It seems the following hook is better for your use case:
>
>   default void postModifyColumn(final
> ObserverContext ctx,
>   TableName tableName, HColumnDescriptor columnFamily) throws
> IOException {}
>
> since there is no guarantee that column family is modified at
> time preModifyColumnFamily() is called.
>
> Cheers
>
> On Tue, Mar 7, 2017 at 4:43 PM, Xi Yang  wrote:
>
> > Requirement:
> >
> > I want to record every change of modify columnFamily by using
> > preModifyColumnFamily().
> > Now I have a table "my_ddl_log" which used to record the change of
> > columnFamily. For example:
> >
> > If jack change the TTL of columnFamily "primary" in table "employee".
> Then
> > we should add a put to "my_ddl_log" like this record:
> > log:name= 'jack'
> > log:updateTime= '2017-03-07 12:12 GMT-08:00'
> > log:change= ''Change TTL of Table: employee ColumnFamily: primary'
> >
> > I try to use preModifyColumnFamily to do this stuff.
> >
> > Thanks,
> > Alex
> >
> >
> > 2017-03-07 12:12 GMT-08:00 Ted Yu :
> >
> > > Describing your use case would allow people to give better answer.
> > >
> > > What kind of data do you write to other table in
> preModifyColumnFamily()
> > ?
> > >
> > > Cross server call within observer is not good idea.
> > >
> > > Take a look at ConnectionUtils.createShortCircuitConnection().
> > >
> > > Cheers
> > >
> > > On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang 
> wrote:
> > >
> > > > All the articles I've ever seen are talking about add increment
> or
> > > > change put/get status or pinrt out logs. what if I want to write some
> > > data
> > > > to another table in Observer? For
> > > > example, MasterObserver.preModifyColumnFamily()? Seems Observer is
> > > runing
> > > > at server side, so use connection is unneccessary and might raise
> some
> > > > problem.
> > > >I know this might be a stupid question, so if you can just give
> some
> > > > links let me to learn without explain in email, I will be grateful to
> > you
> > > > for your help
> > > >
> > > > Thanks,
> > > > Alex
> > > >
> > >
> >
>


Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-07 Thread Ted Yu
It seems the following hook is better for your use case:

  default void postModifyColumn(final
ObserverContext ctx,
  TableName tableName, HColumnDescriptor columnFamily) throws
IOException {}

since there is no guarantee that column family is modified at
time preModifyColumnFamily() is called.

Cheers

On Tue, Mar 7, 2017 at 4:43 PM, Xi Yang  wrote:

> Requirement:
>
> I want to record every change of modify columnFamily by using
> preModifyColumnFamily().
> Now I have a table "my_ddl_log" which used to record the change of
> columnFamily. For example:
>
> If jack change the TTL of columnFamily "primary" in table "employee". Then
> we should add a put to "my_ddl_log" like this record:
> log:name= 'jack'
> log:updateTime= '2017-03-07 12:12 GMT-08:00'
> log:change= ''Change TTL of Table: employee ColumnFamily: primary'
>
> I try to use preModifyColumnFamily to do this stuff.
>
> Thanks,
> Alex
>
>
> 2017-03-07 12:12 GMT-08:00 Ted Yu :
>
> > Describing your use case would allow people to give better answer.
> >
> > What kind of data do you write to other table in preModifyColumnFamily()
> ?
> >
> > Cross server call within observer is not good idea.
> >
> > Take a look at ConnectionUtils.createShortCircuitConnection().
> >
> > Cheers
> >
> > On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang  wrote:
> >
> > > All the articles I've ever seen are talking about add increment or
> > > change put/get status or pinrt out logs. what if I want to write some
> > data
> > > to another table in Observer? For
> > > example, MasterObserver.preModifyColumnFamily()? Seems Observer is
> > runing
> > > at server side, so use connection is unneccessary and might raise some
> > > problem.
> > >I know this might be a stupid question, so if you can just give some
> > > links let me to learn without explain in email, I will be grateful to
> you
> > > for your help
> > >
> > > Thanks,
> > > Alex
> > >
> >
>


Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-07 Thread Xi Yang
Requirement:

I want to record every change of modify columnFamily by using
preModifyColumnFamily().
Now I have a table "my_ddl_log" which used to record the change of
columnFamily. For example:

If jack change the TTL of columnFamily "primary" in table "employee". Then
we should add a put to "my_ddl_log" like this record:
log:name= 'jack'
log:updateTime= '2017-03-07 12:12 GMT-08:00'
log:change= ''Change TTL of Table: employee ColumnFamily: primary'

I try to use preModifyColumnFamily to do this stuff.

Thanks,
Alex


2017-03-07 12:12 GMT-08:00 Ted Yu :

> Describing your use case would allow people to give better answer.
>
> What kind of data do you write to other table in preModifyColumnFamily() ?
>
> Cross server call within observer is not good idea.
>
> Take a look at ConnectionUtils.createShortCircuitConnection().
>
> Cheers
>
> On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang  wrote:
>
> > All the articles I've ever seen are talking about add increment or
> > change put/get status or pinrt out logs. what if I want to write some
> data
> > to another table in Observer? For
> > example, MasterObserver.preModifyColumnFamily()? Seems Observer is
> runing
> > at server side, so use connection is unneccessary and might raise some
> > problem.
> >I know this might be a stupid question, so if you can just give some
> > links let me to learn without explain in email, I will be grateful to you
> > for your help
> >
> > Thanks,
> > Alex
> >
>


Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-07 Thread Ted Yu
Describing your use case would allow people to give better answer.

What kind of data do you write to other table in preModifyColumnFamily() ?

Cross server call within observer is not good idea.

Take a look at ConnectionUtils.createShortCircuitConnection().

Cheers

On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang  wrote:

> All the articles I've ever seen are talking about add increment or
> change put/get status or pinrt out logs. what if I want to write some data
> to another table in Observer? For
> example, MasterObserver.preModifyColumnFamily()? Seems Observer is runing
> at server side, so use connection is unneccessary and might raise some
> problem.
>I know this might be a stupid question, so if you can just give some
> links let me to learn without explain in email, I will be grateful to you
> for your help
>
> Thanks,
> Alex
>


What if I want to write another table in MasterObserver.preModifyColumnFamily ?

2017-03-07 Thread Xi Yang
All the articles I've ever seen are talking about add increment or
change put/get status or pinrt out logs. what if I want to write some data
to another table in Observer? For
example, MasterObserver.preModifyColumnFamily()? Seems Observer is runing
at server side, so use connection is unneccessary and might raise some
problem.
   I know this might be a stupid question, so if you can just give some
links let me to learn without explain in email, I will be grateful to you
for your help

Thanks,
Alex