I'd definitely support merging this to trunk. The implementation is
almost entirely outside of HDFS and, as Inigo detailed, has been
tested at scale. The branch is in a functional state with
documentation and tests. -C

On Mon, Aug 21, 2017 at 6:11 PM, Iñigo Goiri <elgo...@gmail.com> wrote:
> Hi all,
>
>
>
> We would like to open a discussion on merging the Router-based Federation
> feature to trunk.
>
> Last week, there was a thread about which branches would go into 3.0 and
> given that YARN federation is going, this might be a good time for this to
> be merged too.
>
>
> We have been running "Router-based federation" in production for a year.
>
> Meanwhile, we have been releasing it in a feature branch (HDFS-10467 [1])
> for a while.
>
> We are reasonably confident that the state of the branch is about to meet
> the criteria to be merged onto trunk.
>
>
> *Feature*:
>
> This feature aggregates multiple namespaces into a single one transparently
> to the user.
>
> It has a similar architecture to YARN federation (YARN-2915).
>
> It consists on Routers that handle requests from the clients and forwards
> them to the right subcluster and exposes the same API as the Namenode.
>
> Currently we use a mount table (similar to ViewFs) but can be replaced by
> other approaches.
>
> The Routers share their state in a State Store.
>
>
>
> The main advantage is that clients interact with the Routers as they were
> Namenode so there is no changes in the client required other than poiting
> to the right address.
>
> In addition, all the management is moved to the server side so changes to
> the Mount Table can be done without having to sync the clients (pull/push).
>
>
>
> *Status*:
>
> The branch already contains all the features required to work end-to-end.
>
> There are a couple open JIRAs that would be required for the merged (i.e.,
> Web UI) but they should be finished soon.
>
> We have been running it in production for the last year and we have a paper
> with some of the details of our production deployment [2].
>
> We have 4 production deployments with the largest one spanning more than
> 20k servers across 6 subclusters.
>
> In addition, the guys at LinkedIn had started testing Router-based
> federation and they will be adding security to the branch.
>
>
>
> The modifications to the rest of HDFS are minimal:
>
>    - Changed visibility for some methods (e.g., MiniDFSCluster)
>    - Added some utilities to extract addresses
>    - Modified hdfs and hdfs.cmd to start the Router and manager the
>    federation
>    - Modified hdfs-default.xml
>
> Everything else is self-contained in a federation package.
>
> In addition, all the functionality is in the Router so it’s disabled by
> default.
>
> Even when enabled, there is no impact for regular HDFS and it would only
> require to configure the trust between the Namenode and the Router once
> security is enabled.
>
>
>
> I have been continuously rebasing the feature branch (updated up to 1 week
> ago) so the merge should be a straightforward cherry-pick.
>
>
>
> *Problems*:
>
> The problems I’m aware of are the following:
>
>    - We implement ClientProtocol so anytime a new method is added there, we
>    would need to add it to the Router. However, it’s straightforward to add
>    unimplemented methods.
>    - There is some argument about naming the feature as “Router-based
>    federation” but I’m open for better names.
>
>
>
> *Credits*:
>
> I’d like to thank the people at Microsoft (specially, Jason, Ricardo,
> Chris, Subru, Jakob, Carlo and Giovanni), Twitter (Ming and Gera), and
> LinkedIn (Zhe, Erik and Konstantin) for the discussion and the ideas.
>
> Special thanks to Chris Douglas for the thorough reviews!
>
>
>
> Please look through the branch; feedback is welcome. Thanks!
>
>
> Cheers,
>
> Inigo
>
>
>
>
> [1] https://issues.apache.org/jira/browse/HDFS-10467
>
> [2] https://www.usenix.org/conference/atc17/technical-
> sessions/presentation/misra

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to