You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@storm.apache.org by John Fang <xi...@alibaba-inc.com> on 2015/11/24 17:29:56 UTC
答复: [DISCUSS] Plan for Merging JStorm Code
Hi Taylor,
I'd like to help too, could you add me in? my id is: hustfxj
-----邮件原件-----
发件人: P. Taylor Goetz [mailto:ptgoetz@gmail.com]
发送时间: 2015年11月24日 23:54
收件人: dev@storm.apache.org
主题: Re: [DISCUSS] Plan for Merging JStorm Code
Hi Cody,
I wasn’t able to find your username. Are you sure you have an account on cwiki.apache.org?
-Taylor
> On Nov 22, 2015, at 8:46 AM, Cody Innowhere <e....@gmail.com> wrote:
>
> Hi Taylor,
> I'd like to help too, could you add me in? my id is: Cody
>
> On Sat, Nov 21, 2015 at 11:51 AM, 刘键(Basti Liu)
> <ba...@alibaba-inc.com>
> wrote:
>
>> Hi Taylor,
>>
>> Sorry for the late response.
>> I'd like to help on this. Could you please help to give me the permission?
>> Thanks.
>> UserName: basti.lj
>>
>> Regards
>> Basti
>>
>> -----Original Message-----
>> From: P. Taylor Goetz [mailto:ptgoetz@gmail.com]
>> Sent: Thursday, November 19, 2015 6:24 AM
>> To: dev@storm.apache.org; Bobby Evans
>> Subject: Re: [DISCUSS] Plan for Merging JStorm Code
>>
>> All I have at this point is a placeholder wiki entry [1], and a lot
>> of local notes that likely would only make sense to me.
>>
>> Let me know your wiki username and I’ll give you permissions. The
>> same goes for anyone else who wants to help.
>>
>> -Taylor
>>
>> [1]
>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=6132
>> 8109
>>
>>> On Nov 18, 2015, at 2:08 PM, Bobby Evans
>>> <ev...@yahoo-inc.com.INVALID>
>> wrote:
>>>
>>> Taylor and others I was hoping to get started filing JIRA and
>>> planning on how we are going to do the java migration + JStorm
>>> merger. Is anyone else starting to do this? If not would anyone
>>> object to me starting on it? - Bobby
>>>
>>>
>>> On Thursday, November 12, 2015 12:04 PM, P. Taylor Goetz <
>> ptgoetz@gmail.com> wrote:
>>>
>>>
>>> Thanks for putting this together Basti, that comparison helps a lot.
>>>
>>> And thanks Bobby for converting it into markdown. I was going to
>>> just
>> attach the spreadsheet to JIRA, but markdown is a much better solution.
>>>
>>> -Taylor
>>>
>>>> On Nov 12, 2015, at 12:03 PM, Bobby Evans
>>>> <ev...@yahoo-inc.com.INVALID>
>> wrote:
>>>>
>>>> I translated the excel spreadsheet into a markdown file and put up
>>>> a
>> pull request for it.
>>>> https://github.com/apache/storm/pull/877
>>>> I did a few edits to it to make it work with Markdown, and to add
>>>> in a
>> few of my own comments. I also put in a field for JIRAs to be able
>> to track the migration.
>>>> Overall I think your evaluation was very good. We have a fair
>>>> amount
>> of work ahead of us to decide what version of various features we
>> want to go forward with.
>>>> - Bobby
>>>>
>>>>
>>>> On Thursday, November 12, 2015 9:37 AM, 刘键(Basti Liu) <
>> basti.lj@alibaba-inc.com> wrote:
>>>>
>>>>
>>>> Hi Bobby & Jungtaek,
>>>>
>>>> Thanks for your replay.
>>>> I totally agree that compatibility is the most important thing.
>> Actually, JStorm has been compatible with the user API of Storm.
>>>> As you mentioned below, we indeed still have some features
>>>> different
>> between Storm and JStorm. I have tried to list them (minor update or
>> improvements are not included).
>>>> Please refer to attachment for details. If any missing, please help
>>>> to point out. (The current working features are probably missing
>>>> here.)
>> Just have a look at these differences. For the missing features in
>> JStorm, I did not see any obstacle which will block the merge to JStorm.
>>>> For the features which has different solution between Storm and
>>>> JStorm,
>> we can evaluate the solution one by one to decision which one is
>> appropriate.
>>>> After the finalization of evaluation, I think JStorm team can take
>>>> the
>> merging job and publish a stable release in 2 months.
>>>> But anyway, the detailed implementation for these features with
>> different solution is transparent to user. So, from user's point of
>> view, there is not any compatibility problem.
>>>>
>>>> Besides compatibility, by our experience, stability is also
>>>> important
>> and is not an easy job. 4 people in JStorm team took almost one year
>> to finish the porting from "clojure core"
>>>> to "java core", and to make it stable. Of course, we have many devs
>>>> in
>> community to make the porting job faster. But it still needs a long
>> time to run many online complex topologys to find bugs and fix them.
>> So, that is the reason why I proposed to do merging and build on a stable "java core".
>>>>
>>>> -----Original Message-----
>>>> From: Bobby Evans [mailto:evans@yahoo-inc.com.INVALID]
>>>> Sent: Wednesday, November 11, 2015 10:51 PM
>>>> To: dev@storm.apache.org
>>>> Subject: Re: [DISCUSS] Plan for Merging JStorm Code
>>>>
>>>> +1 for doing a 1.0 release based off of the clojure 0.11.x code.
>> Migrating the APIs to org.apache.storm is a big non-backwards
>> compatible move, and a major version bump to 2.x seems like a good move there.
>>>> +1 for the release plan
>>>>
>>>> I would like the move for user facing APIs to org.apache to be one
>>>> of
>> the last things we do. Translating clojure code into java and moving
>> it to org.apache I am not too concerned about.
>>>>
>>>> Basti,
>>>> We have two code bases that have diverged significantly from one
>> another in terms of functionality. The storm code now or soon will
>> have A Heartbeat Server, Nimbus HA (Different Implementation),
>> Resource Aware Scheduling, a distributed cache like API, log
>> searching, security, massive performance improvements, shaded almost
>> all of our dependencies, a REST API for programtically accessing
>> everything on the UI, and I am sure I am missing a few other things.
>> JStorm also has many changes including cgroup isolation, restructured zookeeper layout, classpath isolation, and more too.
>>>> No matter what we do it will be a large effort to port changes from
>>>> one code base to another, and from clojure to java. I proposed
>>>> this initially because it can be broken up into incremental
>>>> changes. It may take a little longer, but we will always have a
>>>> working codebase that is testable and compatible with the current
>>>> storm release, at least until we move the user facing APIs to be under org.apache.
>>>> This lets the community continue to build and test the master
>>>> branch and report problems that they find, which is incredibly
>>>> valuable. I personally don't think it will be much easier,
>>>> especially if we are intent on always maintaining compatibility
>>>> with storm. - Bobby
>>>>
>>>>
>>>> On Wednesday, November 11, 2015 5:42 AM, 刘键(Basti Liu) <
>> basti.lj@alibaba-inc.com> wrote:
>>>>
>>>>
>>>> Hi Taylor,
>>>>
>>>>
>>>>
>>>> Thanks for the merge plan. I have a question about “Phase 2.2”.
>>>>
>>>> Do you mean community plan to create a fresh new “java core” based
>>>> on
>> current “clojure core” firstly, and then migrate the features from JStorm?
>>>>
>>>> If so, it confused me. It is really a huge job which might require
>>>> a
>> long developing time to make it stable, while JStorm is already a
>> stable version.
>>>>
>>>> The release planned to be release after Nov 11th has already run
>>>> online
>> stably several month in Alibaba.
>>>>
>>>> Besides this, there are many valuable internal requirements in
>>>> Alibaba,
>> the fast evolution of JStorm is forseeable in next few months.
>>>>
>>>> If the “java core” is totally fresh new, it might bring many
>>>> problems
>> for the coming merge.
>>>>
>>>> So, from the point of this view, I think it is much better and
>>>> easier
>> to migrate the features of “clojure core” basing on JStorm for the
>> “java core”.
>>>>
>>>> Please correct me, if any misunderstanding.
>>>>
>>>>
>>>>
>>>> Regards
>>>>
>>>> Basti
>>>>
>>>>
>>>>
>>>> 发件人: P. Taylor Goetz [mailto:ptgoetz@gmail.com]
>>>> 发送时间: 2015年11月11日 5:32
>>>> 收件人: dev@storm.apache.org
>>>> 主题: [DISCUSS] Plan for Merging JStorm Code
>>>>
>>>>
>>>>
>>>> Based on a number of discussions regarding merging the JStorm code,
>> I’ve tried to distill the ideas presented and inserted some of my
>> own. The result is below.
>>>>
>>>>
>>>>
>>>> I’ve divided the plan into three phases, though they are not
>> necessarily sequential — obviously some tasks can take place in parallel.
>>>>
>>>>
>>>>
>>>> None of this is set in stone, just presented for discussion. Any
>>>> and
>> all comments are welcome.
>>>>
>>>>
>>>>
>>>> -------
>>>>
>>>>
>>>>
>>>> Phase 1 - Plan for 0.11.x Release
>>>>
>>>> 1. Determine feature set for 0.11.x and publish to wiki [1].
>>>>
>>>> 2. Announce feature-freeze for 0.11.x
>>>>
>>>> 3. Create 0.11.x branch from master (Phase 2.4 can begin.)
>>>>
>>>> 4. Release 0.11.0 (or whatever version # we want to use)
>>>>
>>>> 5. Bug fixes and subsequent releases from 0.11.x-branch
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Phase 2 - Prepare for Merge ("master" and "jstorm-import" branches)
>>>>
>>>> 1. Determine/document unique features in JStorm (e.g. classpath
>> isolation, cgroups, etc.) and create JIRA for migrating the feature.
>>>>
>>>> 2. Create JIRA for migrating each clojure component (or logical
>>>> group
>> of components) to Java. Assumes tests will be ported as well.
>>>>
>>>> 3. Discuss/establish style guide for Java coding conventions.
>>>> Consider
>> using Oracle’s or Google’s Java conventions as a base — they are both
>> pretty solid.
>>>>
>>>> 4. align package names (e.g backtype.storm --> org.apache.storm /
>>>> com.alibaba.jstorm --> org.apache.storm) (Phase 3 can begin)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Phase 3 - Migrate Clojure --> Java
>>>>
>>>> 1. Port code/tests to Java, leveraging existing JStorm code
>>>> wherever
>> possible (core functionality only, features distinct to JStorm
>> migrated separately).
>>>>
>>>> 2. Port JStorm-specific features.
>>>>
>>>> 3. Begin releasing preview/beta versions.
>>>>
>>>> 4. Code cleanup (across the board) and refactoring using
>>>> established coding conventions, and leveraging PMD/Checkstyle
>>>> reports for reference. (Note: good oportunity for new
>>>> contributors.)
>>>>
>>>> 5. Release 0.12.0 (or whatever version # we want to use) and lift
>> feature freeze.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Notes:
>>>>
>>>> We should consider bumping up to version 1.0 sometime soon and then
>> switching to semantic versioning [3] from then on.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> With the exception of package name alignment, the "jstorm-import"
>> branch will largely be read-only throughout the process.
>>>>
>>>>
>>>>
>>>> During migration, it's probably easiest to operate with two local
>> clones of the Apache Storm repo: one for working (i.e. checked out to
>> working branch) and one for reference/copying (i.e. checked out to
>> "jstorm-import").
>>>>
>>>>
>>>>
>>>> Feature-freeze probably only needs to be enforced against core
>> functionality. Components under "external" can likely be exempt, but
>> we should figure out a process for accepting and releasing new
>> features during the migration.
>>>>
>>>>
>>>>
>>>> Performance testing should be continuous throughout the process.
>>>> Since
>> we don't really have ASF infrastructure for performance testing, we
>> will need a volunteer(s) to host and run the performance tests.
>> Performance test results can be posted to the wiki [2]. It would
>> probably be a good idea to establish a baseline with the 0.10.0 release.
>>>>
>>>>
>>>>
>>>> I’ve attached an analysis document Sean Zhong put together a while
>>>> back
>> to the JStorm merge JIRA [4]. The analysis was against the 0.9.3
>> release but is still relevant and has a lot of good information.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> [1]
>>>> https://cwiki.apache.org/confluence/display/STORM/Release+0.11.0+Fe
>>>> at
>>>> ure+Set
>>>>
>>>> [2] https://cwiki.apache.org/confluence/display/STORM/Storm+Home
>>>>
>>>> [3] http://semver.org
>>>>
>>>> [4] https://issues.apache.org/jira/browse/STORM-717
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> -Taylor
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>