= Ivory Proposal = == Abstract == Ivory is a data processing and management solution for Hadoop designed for data motion, coordination of data pipelines, lifecycle management, and data discovery. Ivory enables end consumers to quickly onboard their data and its associated processing and management tasks on Hadoop clusters.
== Proposal == Ivory will enable easy data management via declarative mechanism for Hadoop. Users of Ivory platform simply define infrastructure endpoints, data sets and processing rules declaratively. These configurations are expressed in such a way that the dependencies between these entities are explicitly described. This information about inter-dependencies between various entities allows Ivory to orchestrate and manage various data management functions. The key use cases that Ivory addresses are: * Data Motion * Process orchestration and scheduling * Policy-based Lifecycle Management * Data Discovery * Operability/Usability With these features it is possible for users to onboard their data sets with a comprehensive and holistic understanding of how, when and where their data is managed across its lifecycle. Complex functions such as retrying failures, identifying possible SLA breaches or automated handling of input data changes are now simple directives. All the administrative functions and user level functions are available via RESTful APIs. CLI is simply a wrapper over the RESTful APIs. == Background == Hadoop and its ecosystem of products have made storing and processing massive amounts of data commonplace. This has enabled numerous organizations to gain valuable insights that they never could have achieved in the past. While it is easy to leverage Hadoop for crunching large volumes of data, organizing data, managing life cycle of data and processing data is fairly involved. This is solved adequately well in a classic data platform involving data warehouses and standard ETL (extract-transform-load) tools, but remains largely unsolved today. In addition to data processing complexities, Hadoop presents new sets of challenges and opportunities relating to management of data. Data Management on Hadoop encompasses data motion, process orchestration, lifecycle management, data discovery, etc. among other concerns that are beyond ETL. Ivory is a new data processing and management platform for Hadoop that solves this problem and creates additional opportunities by building on existing components within the Hadoop ecosystem (ex. Apache Oozie, Apache Hadoop DistCp etc.) without reinventing the wheel. Ivory has been in production at InMobi, going on its second year and has been managing hundreds of feeds and processes. Ivory is being developed by engineers employed with InMobi, Hortonworks and Yahoo!. This platform addition will increase the adoption of Apache Hadoop by driving data management tractable for end users. We are therefore proposing to make Ivory an Apache open source project. == Rationale == The Ivory project aims to improve the usability of Apache Hadoop. As a result Apache Hadoop will grow its community of users by increasing the places Hadoop can be utilized and the use cases it will solve. By developing Ivory in Apache we hope to gather a diverse community of contributors, helping to ensure that Ivory is deployable for a broad range of scenarios. Members of the Hadoop development community will be able to influence Ivory’s roadmap, and contribute to it. We believe having Ivory as part of the Apache Hadoop ecosystem will be a great benefit to all of Hadoop's users. == Current Status == Ivory is widely deployed in production within InMobi and moving on to its second year. A version with a valuable set of features is developed by the list of initial committers and is hosted on github. === Meritocracy === Our intent with this incubator proposal is to start building a diverse developer community around Ivory following the Apache meritocracy model. We have wanted to make the project open source and encourage contributors from multiple organizations from the start. We plan to provide plenty of support to new developers and to quickly recruit those who make solid contributions to committer status. === Community === We are happy to report that the initial team already represents multiple organizations. We hope to extend the user and developer base further in the future and build a solid open source community around Ivory. === Core Developers === Ivory is currently being developed by three engineers from InMobi – Srikanth Sundarrajan, Shwetha G S, and Shaik Idris, two Hortonworks employees – Sanjay Radia and Venkatesh Seetharam. In addition, two Yahoo! employees, Rohini Palaniswamy and Thiruvel Thirumoolan, are also involved. Srikanth, Shwetha and Shaik are the original developers. All the engineers have built two generations of Data Management on Hadoop, having deep expertise in Hadoop and are quite familiar with the Hadoop Ecosystem. === Alignment === The ASF is a natural host for Ivory given that it is already the home of Hadoop, Pig, Knox, HCatalog, and other emerging “big data” software projects. Ivory has been designed to solve the data management challenges and opportunities of the Hadoop ecosystem family of products. Ivory fills the gap that Hadoop ecosystem has been lacking in the areas of data processing and data lifecycle management. == Known Risks == === Orphaned products & Reliance on Salaried Developers === The core developers plan to work full time on the project. There is very little risk of Ivory getting orphaned. Ivory is in use by companies we work for so the companies have an interest in its continued vitality. === Inexperience with Open Source === All of the core developers are active users and followers of open source. Srikanth Sundarrajan has been contributing patches to Apache Hadoop and Apache Oozie, Shwetha GS has been contributing patches to Apache Oozie. Seetharam Venkatesh is a committer on Apache Knox. Rohini Palaniswamy is a committer on Apache PIG. Sharad Agarwal, Amareshwari SR (also a Apache Hive PMC member) and Sanjay Radia are PMC members on Apache Hadoop. === Homogeneous Developers === The current core developers are from diverse set of organizations such as InMobi, Hortonworks, and, Yahoo!. We expect to quickly establish a developer community that includes contributors from several corporations post incubation. === Reliance on Salaried Developers === Currently, most developers are paid to do work on Ivory but few are contributing in their spare time. However, once the project has a community built around it post incubation, we expect to get committers and developers from outside the current core developers. === Relationships with Other Apache Products === Ivory is going to be used by the users of Hadoop and the Hadoop ecosystem in general. === A Excessive Fascination with the Apache Brand === While we respect the reputation of the Apache brand and have no doubts that it will attract contributors and users, our interest is primarily to give Ivory a solid home as an open source project following an established development model. We have also given reasons in the Rationale and Alignment sections. == Documentation == There is documentation in github repository at: https://github.com/sriksun/Ivory == Initial Source == The source is currently in github repository at: https://github.com/sriksun/Ivory == Source and Intellectual Property Submission Plan == The complete Ivory code is under Apache Software License 2. == External Dependencies == The dependencies all have Apache compatible licenses. These include BSD, MIT licensed dependencies. == Cryptography == None == Required Resources == === Mailing lists === * ivory-dev AT incubator DOT apache DOT org * ivory-commits AT incubator DOT apache DOT org * ivory-user AT incubator apache DOT org * ivory-private AT incubator DOT apache DOT org === Subversion Directory === https://svn.apache.org/repos/asf/incubator/ivory === Issue Tracking === JIRA IVORY == Initial Committers == * Srikanth Sundarrajan (Srikanth.Sundarrajan AT inmobi DOT com) * Shwetha GS (shwetha.gs AT inmobi DOT com) * Shaik Idris (shaik.idris AT inmobi DOT com) * Venkatesh Seetharam (Venkatesh AT apache DOT com) * Rohini Palaniswamy (rohinip AT yahoo-inc DOT com) * Thiruvel Thirumoolan (thiruvel AT yahoo-inc DOT com) * Sanjay Radia (sanjay AT apache DOT org) * Sharad Agarwal (sharad AT apache DOT org) * Amareshwari SR (amareshwari AT apache DOT org) == Affiliations == * Srikanth Sundarrajan (InMobi) * Shwetha GS (InMobi) * Shaik Idris (InMobi) * Venkatesh Seetharam (Hortonworks Inc) * Rohini Palaniswamy (Yahoo! Inc) * Thiruvel Thirumoolan (Yahoo! Inc) * Sanjay Radia (Hortonworks Inc) * Sharad Agarwal (InMobi) * Amareshwari SR (InMobi) == Sponsors == === Champion === * Arun C Murthy (acmurthy at apache dot org) === Nominated Mentors === * Alan Gates (gates AT apache DOT org) * Chris Douglas (cdouglas AT apache DOT org) * Devaraj Das (ddas AT apache DOT org) * Owen O’Malley (omalley AT apache DOT org) === Sponsoring Entity === Incubator PMC -- _____________________________________________________________ The information contained in this communication is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. It may contain confidential or legally privileged information. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this information is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by responding to this email and then delete it from your system. The firm is neither liable for the proper and complete transmission of the information contained in this communication nor for any delay in its receipt.