[ 
https://issues.apache.org/jira/browse/HADOOP-18691?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christos Bisias updated HADOOP-18691:
-------------------------------------
    Description: 
We would like to add a default *{color:#00875a}CallerContext{color}* getter on 
the *{color:#00875a}Schedulable{color}* interface
{code:java}
default public CallerContext getCallerContext() {
  return null;  
} {code}
and then override it on the 
*{color:#00875a}i{color}{color:#00875a}{*}pc/{*}Server.Call{color}* class
{code:java}
@Override
public CallerContext getCallerContext() {  
  return this.callerContext;
} {code}
to expose the already existing *{color:#00875a}callerContext{color}* field.

 

This change will help us access the *{color:#00875a}CallerContext{color}* on an 
Apache Ozone *{color:#00875a}IdentityProvider{color}* implementation.

On Ozone side the *{color:#00875a}FairCallQueue{color}* doesn't work with the 
Ozone S3G, because all users are masked under a special S3G user and there is 
no impersonation. Therefore, the FCQ reads only 1 user and becomes ineffective. 
We can use the *{color:#00875a}CallerContext{color}* field to store the current 
user and access it on the Ozone {*}{color:#00875a}IdentityProvider{color}{*}.

 

This is a presentation with the proposed approach.

[https://docs.google.com/presentation/d/1iChpCz_qf-LXiPyvotpOGiZ31yEUyxAdU4RhWMKo0c0/edit#slide=id.p]

  was:
We would like to add a default CallerContext getter on the Schedulable interface
{code:java}
default public CallerContext getCallerContext() {
  return null;  
} {code}
and then override it on the ipc/Server.Call class
{code:java}
@Override
public CallerContext getCallerContext() {  
  return this.callerContext;
} {code}
to expose the already existing callerContext field.

 

This change will help us access the CallerContext on an Apache Ozone 
IdentityProvider implementation.

On Ozone side the FairCallQueue doesn't work with the Ozone S3G, because all 
users are masked under a special S3G user and there is no impersonation. 
Therefore, the FCQ reads only 1 user and becomes ineffective. We can use the 
CallerContext field to store the current user and access it on the Ozone 
IdentityProvider.

 

This is a presentation with the proposed approach.

https://docs.google.com/presentation/d/1iChpCz_qf-LXiPyvotpOGiZ31yEUyxAdU4RhWMKo0c0/edit#slide=id.p


> Add a CallerContext getter on the Schedulable interface
> -------------------------------------------------------
>
>                 Key: HADOOP-18691
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18691
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Christos Bisias
>            Priority: Major
>
> We would like to add a default *{color:#00875a}CallerContext{color}* getter 
> on the *{color:#00875a}Schedulable{color}* interface
> {code:java}
> default public CallerContext getCallerContext() {
>   return null;  
> } {code}
> and then override it on the 
> *{color:#00875a}i{color}{color:#00875a}{*}pc/{*}Server.Call{color}* class
> {code:java}
> @Override
> public CallerContext getCallerContext() {  
>   return this.callerContext;
> } {code}
> to expose the already existing *{color:#00875a}callerContext{color}* field.
>  
> This change will help us access the *{color:#00875a}CallerContext{color}* on 
> an Apache Ozone *{color:#00875a}IdentityProvider{color}* implementation.
> On Ozone side the *{color:#00875a}FairCallQueue{color}* doesn't work with the 
> Ozone S3G, because all users are masked under a special S3G user and there is 
> no impersonation. Therefore, the FCQ reads only 1 user and becomes 
> ineffective. We can use the *{color:#00875a}CallerContext{color}* field to 
> store the current user and access it on the Ozone 
> {*}{color:#00875a}IdentityProvider{color}{*}.
>  
> This is a presentation with the proposed approach.
> [https://docs.google.com/presentation/d/1iChpCz_qf-LXiPyvotpOGiZ31yEUyxAdU4RhWMKo0c0/edit#slide=id.p]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to