incubator-nemo.git
16 hours ago[NEMO-80] SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder (#166) master
Gyewon Lee [Tue, 11 Dec 2018 04:46:34 +0000 (13:46 +0900)] 
[NEMO-80] SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder (#166)

JIRA: NEMO-80: SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

**Major changes:**
Add slf4j-simple dependency to fix the problem.

**Minor changes to note:**
N/A

**Tests for the changes:**
N/A

**Other comments:**
N/A

20 hours ago[NEMO-221] Confusing error messages for a failure at the client-side initialization...
Yunseong Lee [Tue, 11 Dec 2018 00:12:07 +0000 (09:12 +0900)] 
[NEMO-221] Confusing error messages for a failure at the client-side initialization (#165)

JIRA: [NEMO-221: Confusing error messages for a failure at the client-side initialization](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-221)

**Major changes:**
- Throw a separate Exception if failed to create an RPC connection between Nemo client and REEF Driver (currently the IOException is swallowed by Tang's Injection Exception). This way, we can find the actual reason for the failure, although the beginning of the stack trace is still pretty lengthy with the network failure.

38 hours ago[NEMO-310] Exclude beam/spark examples jars from deployment (#175)
jooykim [Mon, 10 Dec 2018 06:54:10 +0000 (15:54 +0900)] 
[NEMO-310] Exclude beam/spark examples jars from deployment (#175)

JIRA: [NEMO-310: Exclude 'examples' JAR from release artifacts](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-310)

**Major changes:**
- Modifies examples/beam/pom.xml and examples/spark/pom.xml to exclude them from deployment to Nexus.

**Minor changes to note:**
- N/A

**Tests for the changes:**
- I've checked that it works using "mvn deploy" to Apache's Nexus repository.

**Other comments:**
- N/A

38 hours ago[NEMO-316] CombinePartial/FinalTransform is not disabled in streaming mode (#177)
Taegeon Um [Mon, 10 Dec 2018 06:22:14 +0000 (15:22 +0900)] 
[NEMO-316] CombinePartial/FinalTransform is not disabled in streaming mode (#177)

JIRA: [NEMO-316: CombinePartial/FinalTransform is not disabled in streaming mode](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-316)

**Major changes:**
- Check whether the main input is bounded or not.

The solution is brought from @johnyangk's nexmark branch.

41 hours ago[NEMO-315] Remove checkstyle settings for javadoc error (#176)
Jeongyoon Eo [Mon, 10 Dec 2018 03:49:29 +0000 (12:49 +0900)] 
[NEMO-315] Remove checkstyle settings for javadoc error (#176)

JIRA: [NEMO-315: Remove javadoc checkstyle suppression](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-315)

**Major changes:**
- N/A

**Minor changes to note:**
- Checkstyle settings for javadoc error suppression for those modules are removed due to reported build failures.

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

5 days ago[NEMO-10] Handle Method Javadocs Requirements for Checkstyle Warnings (#169)
Eunji Jeong [Thu, 6 Dec 2018 07:55:31 +0000 (16:55 +0900)] 
[NEMO-10] Handle Method Javadocs Requirements for Checkstyle Warnings (#169)

JIRA: NEMO-10: Handle Method Javadocs Requirements for Checkstyle Warnings

**Major changes:**
Handle Method Javadocs Requirements for Checkstyle Warnings in common

**Minor changes to note:**
The severity of JavaDocMethod has been changed from 'warning' to 'error'.
Modules that still have the methods without Javadocs are specified in suppressions.xml.

**Tests for the changes:**
maven checkstyle tests.

**Other comments:**
suppressions.xml file can be removed once all of the JavaDocMethod warnings have been removed.

5 days ago[NEMO-10] Handle Method Javadocs Requirements for Checkstyle Warnings (#170)
Eunji Jeong [Thu, 6 Dec 2018 06:15:32 +0000 (15:15 +0900)] 
[NEMO-10] Handle Method Javadocs Requirements for Checkstyle Warnings (#170)

JIRA: NEMO-10: [NEMO-10] Handle Method Javadocs Requirements for Checkstyle Warnings

**Major changes:**
Handle Method Javadocs Requirements for Checkstyle Warnings in compiler, client, examples

**Minor changes to note:**
Removed the unused parameter of generateMetricCollectVertex method in SkewReshapingPass.java.

**Tests for the changes:**
maven checkstyle tests.

5 days ago[NEMO-311] Add StreamingPolicy #174
Taegeon Um [Thu, 6 Dec 2018 01:39:36 +0000 (10:39 +0900)] 
[NEMO-311] Add StreamingPolicy #174

JIRA: [NEMO-311: Add StreamingPolicy](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-311)

**Major changes:**
- Add StreamingPolicy that uses PipeTransferForAllEdgesPass

7 days ago[NEMO-270] Test different triggers in GroupByKeyAndWindowDoFnTransformTest (#172)
Taegeon Um [Tue, 4 Dec 2018 07:00:04 +0000 (16:00 +0900)] 
[NEMO-270] Test different triggers in GroupByKeyAndWindowDoFnTransformTest (#172)

JIRA: [NEMO-270: Test different triggers in GroupByKeyAndWindowDoFnTransformTest](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-270)

**Major changes:**
- Fix `GroupByKeyAndWindowDoFnTransform` to properly handle `EARLY` and `LATE` triggering.

**Tests for the changes:**
- Add `eventTimeTriggerTest` to test complex triggering and lateness.

7 days ago[NEMO-307] Enable integration test (#173)
Taegeon Um [Tue, 4 Dec 2018 06:29:32 +0000 (15:29 +0900)] 
[NEMO-307] Enable integration test (#173)

JIRA: [NEMO-307: Enable integration test](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-307)

**Major changes:**
- Fix pom to enable integration test

8 days ago[NEMO-306] Add license checkstyle (#171)
jooykim [Mon, 3 Dec 2018 08:25:52 +0000 (17:25 +0900)] 
[NEMO-306] Add license checkstyle (#171)

JIRA: [NEMO-306: Apache License Checkstyle](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-306)

**Major changes:**
- Adds a checkstyle rule to check Apache license headers

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

8 days ago[NEMO-294] Beam-Runner (#163)
Won Wook SONG [Mon, 3 Dec 2018 06:07:25 +0000 (15:07 +0900)] 
[NEMO-294] Beam-Runner (#163)

JIRA: [NEMO-294: Support Nemo Runner execution by providing PipelineOptions to the Beam program](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-294)

**Major changes:**
- Update launch scripts to launch shaded jars with the current project version, instead of 0.1-SNAPSHOT
- Refactor `JobLauncher` so that jobs can be launched from the JobLauncher's main class as well as from a particular Beam application. This also changes so that the job ID can be received from the application itself.
- Use Google's AutoService from Beam to register NemoRunner as one of its runners with the `NemoRunnerRegistrar`.
- Rename `NemoPipelineRunner` into `NemoRunner` to follow conventions.
- Instead of having a default `executor_json` file, put in a default JSON string instead, so that it doesn't require a JSON file by default.
- Add a MinimalWordCount examples from the beam homepage (from the quickstart article)
- Now, we can create a QuickStart with the MinimalWordCount example on the Beam site by adding a simple profile on the maven `pom.xml` on the MinimalWordCount example.

**Minor changes to note:**
- Fix minor typos (e.g., confg --> config)
- Fix minor indentation inconsistencies

**Tests for the changes:**
- Existing tests confirm that these changes do not break the code

**Other comments:**
- N/A

8 days ago[NEMO-293] OOM exception in streaming (#164)
Taegeon Um [Mon, 3 Dec 2018 04:37:55 +0000 (13:37 +0900)] 
[NEMO-293] OOM exception in streaming (#164)

JIRA: [NEMO-293: OOM exception in streaming](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-293)

**Major changes:**
- Fix wrong byte encoding in `PipeOutputWriter`. This causes OOM because it sends unnecessary bytes (count <= byte array size)
- Add `writeElement` method to `ByteOutputContext` to emit data without copying byte array.

11 days ago[NEMO-305] Add DISCLAIMER (#168)
jooykim [Fri, 30 Nov 2018 08:13:27 +0000 (17:13 +0900)] 
[NEMO-305] Add DISCLAIMER (#168)

JIRA: [NEMO-305: Add Disclaimer](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-305)

**Major changes:**
- Adds the disclaimer file as per Apache's standards (https://incubator.apache.org/guides/branding.html#disclaimers)

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

13 days ago[NEMO-244] Organize integration tests and resources (#146)
Soojeong Kim [Wed, 28 Nov 2018 08:55:52 +0000 (17:55 +0900)] 
[NEMO-244] Organize integration tests and resources (#146)

JIRA: [NEMO-244: Organize integration tests and resources](https://issues.apache.org/jira/browse/NEMO-244)

**Major changes:**
- Singleton global variables (TIMEOUT, fileBasePath)

- Separate directory for each test's resources (inputs, outputs, executors)

**Minor changes to note:**
- N/A

**Tests for the changes:**
- Integration tests for beam and spark

2 weeks ago[NEMO-303] Use Surefire 3.0.0-M1 (#162)
Jangho Seo [Mon, 26 Nov 2018 07:03:02 +0000 (16:03 +0900)] 
[NEMO-303] Use Surefire 3.0.0-M1 (#162)

JIRA: [NEMO-303: Use Surefire 3.0.0-M1](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-303)

**Minor changes to note:**
- POM: Use maven-surefire-plugin 3.0.0-M1 and maven-failsafe-plugin 3.0.0-M1

**Notes**
- See SUREFIRE-1588 for the relevant bug report at the ASF Jira system

2 weeks ago[NEMO-300] Fix starvation when handling multiple pending data fetchers #161
Taegeon Um [Thu, 22 Nov 2018 00:26:27 +0000 (09:26 +0900)] 
[NEMO-300] Fix starvation when handling multiple pending data fetchers #161

JIRA: [NEMO-300: Fix starvation when handling multiple pending data fetchers](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-300)

**Major changes:**
- Fix polling logic of pending data fetchers to iterate all pending data fetchers

2 weeks ago[NEMO-2186] Parallelism=1 for PCollectionView (#160)
John Yang [Wed, 21 Nov 2018 23:51:58 +0000 (08:51 +0900)] 
[NEMO-2186] Parallelism=1 for PCollectionView (#160)

JIRA: [NEMO-286: Parallelism=1 for PCollectionView](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-286)

**Major changes:**
- Set Parallelism=1 for side input stages
- Set CommPattern=Broadcast from/to side input stages
- Use `DefaultPolicyParallelismFive` for MLR/ALS ITCases to test side inputs in multi-parallelism pipelines

2 weeks ago[NEMO-216,251,259] Support side inputs and windowing (#159)
John Yang [Wed, 21 Nov 2018 09:03:45 +0000 (18:03 +0900)] 
[NEMO-216,251,259] Support side inputs and windowing (#159)

JIRA: [NEMO-216: Support side inputs and windowing](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-216)
(+ NEMO-251, NEMO-259)

**Major changes:**
- MaterializedViewReader (implements ReadyCheckingSideInputReader) and appropriate push-back logics
- SideInputTransform: Wraps materialized views with an index in SideInputElement to distinguish multiple sideinputs destined to the same DoFn (replaces the previous usage of BroadcastVariable ids)
- In the runtime, treat a SideInput as just another DataFetcher (do not use BroadcastManagerWorker): all sideinput-specific logics stay in the Beam frontend

**Minor changes to note:**
- Clean up watermark propagation flow for DataFetchers
- In MultiThreadParentTaskDataFetcher, let the task thread handle watermarks just like other elements and not data fetcher threads

**Tests for the changes:**
- WindowedBroadcastITCase
- DoFnTransformTest#testSideInputs

**Other comments:**
- This is the last sub-issue of the umbrella issue: [NEMO-229] Support watermark, so once this PR is merged we should be ready to mark that as resolved

3 weeks ago[ROLLBACK DURING RELEASE] Revert version from 0.2-SNAPSHOT to 0.1-SNAPSHOT
Jangho Seo [Mon, 19 Nov 2018 06:59:27 +0000 (15:59 +0900)] 
[ROLLBACK DURING RELEASE] Revert version from 0.2-SNAPSHOT to 0.1-SNAPSHOT

v0.1 release process will continue on a separate branch.

3 weeks ago[maven-release-plugin] prepare for next development iteration
Joo Yeon Kim [Sun, 18 Nov 2018 13:14:32 +0000 (05:14 -0800)] 
[maven-release-plugin] prepare for next development iteration

3 weeks ago[maven-release-plugin] prepare release nemo-project-0.1
Joo Yeon Kim [Sun, 18 Nov 2018 12:34:44 +0000 (04:34 -0800)] 
[maven-release-plugin] prepare release nemo-project-0.1

3 weeks ago[maven-release-plugin] rollback release tag
Joo Yeon Kim [Sun, 18 Nov 2018 12:13:29 +0000 (04:13 -0800)] 
[maven-release-plugin] rollback release tag

3 weeks ago[maven-release-plugin] rollback the release of nemo-project-0.1
Joo Yeon Kim [Sun, 18 Nov 2018 12:12:18 +0000 (04:12 -0800)] 
[maven-release-plugin] rollback the release of nemo-project-0.1

3 weeks ago[maven-release-plugin] prepare release nemo-project-0.1
Joo Yeon Kim [Sun, 18 Nov 2018 12:03:40 +0000 (04:03 -0800)] 
[maven-release-plugin] prepare release nemo-project-0.1

3 weeks ago[maven-release-plugin] rollback release tag
Joo Yeon Kim [Sun, 18 Nov 2018 11:42:36 +0000 (03:42 -0800)] 
[maven-release-plugin] rollback release tag

3 weeks ago[maven-release-plugin] prepare for next development iteration
Joo Yeon Kim [Sun, 18 Nov 2018 11:28:47 +0000 (03:28 -0800)] 
[maven-release-plugin] prepare for next development iteration

3 weeks ago[maven-release-plugin] prepare release nemo-pproject-0.1
Joo Yeon Kim [Sun, 18 Nov 2018 11:28:23 +0000 (03:28 -0800)] 
[maven-release-plugin] prepare release nemo-pproject-0.1

3 weeks ago[maven-release-plugin] rollback release tag
Joo Yeon Kim [Sun, 18 Nov 2018 11:01:54 +0000 (03:01 -0800)] 
[maven-release-plugin] rollback release tag

3 weeks ago[maven-release-plugin] prepare for next development iteration
Joo Yeon Kim [Sun, 18 Nov 2018 03:51:09 +0000 (19:51 -0800)] 
[maven-release-plugin] prepare for next development iteration

3 weeks ago[maven-release-plugin] prepare release nemo-project-0.1
Joo Yeon Kim [Sun, 18 Nov 2018 03:50:15 +0000 (19:50 -0800)] 
[maven-release-plugin] prepare release nemo-project-0.1

3 weeks ago[NEMO-283] Exclude DAG files from RAT (#158)
jooykim [Fri, 16 Nov 2018 04:15:08 +0000 (13:15 +0900)] 
[NEMO-283] Exclude DAG files from RAT (#158)

JIRA: [NEMO-283: Add an Exclusion Rule for RAT Plugin](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-283)

**Major changes:**
- Modifies POM (Adds an exclusion rule for RAT plugin)

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A (The build suffices)

**Other comments:**
- N/A

4 weeks ago[NEMO-280] Add SCM definition to the top-level POM #157
Jangho Seo [Tue, 13 Nov 2018 07:19:40 +0000 (16:19 +0900)] 
[NEMO-280] Add SCM definition to the top-level POM #157

JIRA: [NEMO-280: Add SCM definition to the top-level POM](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-280)

**Major changes:**
- Top-level POM: Added SCM definition to the canonical repository.

**Minor changes to note:**
- Backported XML style changes by mvn release:prepare -DdryRun=true

**Tests for the changes:**
- N/A

**Other comments:**
- See https://www.apache.org/dev/publishing-maven-artifacts.html for the reference.

4 weeks ago[NEMO-245,247] Handle watermark in OutputWriter and Implement unbounded word count...
Taegeon Um [Tue, 13 Nov 2018 04:30:36 +0000 (13:30 +0900)] 
[NEMO-245,247] Handle watermark in OutputWriter and Implement unbounded word count example (#153)

JIRA: [NEMO-245: Handle watermark in OutputWriter](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-245)

[NEMO-247: UnboundedSource WindowedWordCount ITCase](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-247)

**Major changes:**
- Add `NemoEventDecoder/Encoder` to encode/decode watermarks
- Handle inter-task watermarks at `MultiThreadParentDataFetcher`
- Modify `OutputWriter` interface to emit watermark (`emitWatermark`)
- Refactor `WindowedWordCountExample` to run this example with unbounded source

**Tests for the changes:**
- unbounded windowed word count (but disabled because we cannot force close nemo job in test)

4 weeks ago[NEMO-279] Finish BeamUnboundedSource when emitting TIMESTAMP_MAX_VALUE (#156)
Taegeon Um [Mon, 12 Nov 2018 07:05:17 +0000 (16:05 +0900)] 
[NEMO-279] Finish BeamUnboundedSource when emitting TIMESTAMP_MAX_VALUE (#156)

JIRA: [NEMO-279: Finish BeamUnboundedSource when emitting TIMESTAMP_MAX_VALUE](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-279)

**Major changes:**
- Set `isFinished` true in `BeamUnboundedSourceVertex` when emitting `TIMESTAMP_MAX_VALUE` in watermark.

4 weeks ago[NEMO-272] Fix incorrect uses of Beam FinishBundle (#154)
John Yang [Thu, 8 Nov 2018 00:16:48 +0000 (09:16 +0900)] 
[NEMO-272] Fix incorrect uses of Beam FinishBundle (#154)

JIRA: [NEMO-272: Fix incorrect uses of Beam FinishBundle](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-272)

**Major changes:**
- Fixs GenericSourceSink
- Fixs MultinomialLogisticRegression
- Adds TODOs for fixing the root causes

4 weeks agoJIRA: [NEMO-275: Eager Garbage Collection for GroupByKey]
John Yang [Wed, 7 Nov 2018 23:52:44 +0000 (08:52 +0900)] 
JIRA: [NEMO-275: Eager Garbage Collection for GroupByKey]

JIRA: [NEMO-275: Eager Garbage Collection for GroupByKey](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-275)

**Major changes:**
- Instead of iterating over the accumulated elements and then clearing out all the elements at once, remove the elements while iterating

4 weeks ago[NEMO-267] Consider watermark holds in GroupByKeyAndWindowDoFnTransform (#151)
Taegeon Um [Wed, 7 Nov 2018 05:41:23 +0000 (14:41 +0900)] 
[NEMO-267] Consider watermark holds in GroupByKeyAndWindowDoFnTransform (#151)

JIRA: [NEMO-267: Consider watermark holds in GroupByKeyAndWindowDoFnTransform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-267)

**Major changes:**
- Fix `GroupByKeyAndWindowDoFnTransform` to emit output watermarks by holding watermarks for each key

**Tests for the changes:**
- Fix `GroupByKeyAndWindowDoFnTransform` by using sliding windows

4 weeks ago[NEMO-260] Beam Accumulator-based Partial Aggregation (#148)
John Yang [Wed, 7 Nov 2018 04:49:40 +0000 (13:49 +0900)] 
[NEMO-260] Beam Accumulator-based Partial Aggregation (#148)

JIRA: [NEMO-260: Beam Accumulator-based Partial Aggregation](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-260)

**Major changes:**
- Accumulator-based combining for Combine.PerKey PTransforms
- CombineFnPartialTransform, and CombineFnFinalTransform

**Minor changes to note:**
- Re-enable the optimization pass tests

**Tests for the changes:**
- Existing tests that use Per.Key continue to pass

**Other comments:**
- This change applies to batch operations only (for now)

Closes #148

4 weeks ago[NEMO-268] Consider start/finish bundles in Transform (#152)
Taegeon Um [Wed, 7 Nov 2018 03:48:36 +0000 (12:48 +0900)] 
[NEMO-268] Consider start/finish bundles in Transform (#152)

JIRA: [NEMO-268: Consider start/finish bundles in Transform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-268)

**Major changes:**
- Add `checkAndInvokeBundle` and `checkAndFinishBundle` methods to `AbstractDoFnTransform`
- Use the methods in `DoFnTransform` and `GroupByKeyAndWindowDoFnTransform`

**Minor changes to note:**
- Add getters/setters for count and millis bundles to `NemoPipelineOptions`

**Tests for the changes:**
- Add `testCountBundle()` and `testTimeBundle()` to `DoFnTransformTest`

5 weeks ago[NEMO-269] Direct translation from Beam DAG to Nemo DAG (#150)
John Yang [Tue, 6 Nov 2018 07:05:16 +0000 (16:05 +0900)] 
[NEMO-269] Direct translation from Beam DAG to Nemo DAG (#150)

JIRA: [NEMO-269: Direct translation from Beam DAG to Nemo DAG](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-269)

**Major changes:**
- Direct translation from Beam DAG to Nemo DAG using CompositeBehavior
- Disables the previous partial combining optimization, to prepare for the new accumulator-based optimization

5 weeks ago[NEMO-266] Throws NoSuchElementException in Readeable.readCurrent #149
Taegeon Um [Tue, 6 Nov 2018 04:27:34 +0000 (13:27 +0900)] 
[NEMO-266] Throws NoSuchElementException in Readeable.readCurrent #149

JIRA: [NEMO-266: Throws NoSuchElementException in Readeable.readCurrent](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-266)

**Major changes:**
- remove `advance` method in `Readable` and throws `NoSuchElementException` in `BeamUnboundedSourceVertex.readCurrent()`.

5 weeks ago[NEMO-202] Make job launcher handle empty user_args #147
Yunseong Lee [Mon, 5 Nov 2018 00:20:09 +0000 (09:20 +0900)] 
[NEMO-202] Make job launcher handle empty user_args #147

JIRA: [NEMO-202: Bug with empty string user_args](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-202)

**Major changes:**
- Make JobLauncher handle an empty string ("") for user_args
- When an empty string is given, JobLauncher passes an empty array (String[0]) to the application.

**Minor changes to note:**
- N/A

**Tests for the changes:**
- Added SparkScala#testALSEmptyUserArgs.

**Other comments:**
- N/A

Closes #147

5 weeks ago[Nemo-220] Move PIPELINE variable to TranslationContext in PipelineTranslator (#145)
WooYeon Lee [Sat, 3 Nov 2018 07:24:14 +0000 (16:24 +0900)] 
[Nemo-220] Move PIPELINE variable to TranslationContext in PipelineTranslator (#145)

JIRA: [NEMO-220: Move PIPELINE variable to TranslationContext in PipelineTranslator](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-220)

**Major changes:**
- Move PIPELINE variable to TranslationContext in PipelineTranslator

**Minor changes to note:**
- PipelineTranslator does not implement Bifunction from now

**Tests for the changes:**
- N/A

5 weeks ago[NEMO-242] Parent POM.xmls for \compiler, \runtime, and \examples (#144)
Gyewon Lee [Fri, 2 Nov 2018 07:53:12 +0000 (16:53 +0900)] 
[NEMO-242] Parent POM.xmls for \compiler, \runtime, and \examples (#144)

JIRA: NEMO-242: Parent POM.xmls for /compiler, /runtime, and /examples

Major changes:
Make parent pom.xmls for /compiler, /runtime, and /examples

Minor changes to note:

Tests for the changes:

Other comments:

Closes #144

5 weeks ago[NEMO-241] ASCII art for Nemo job launching (#143)
WooYeon Lee [Fri, 2 Nov 2018 05:37:43 +0000 (14:37 +0900)] 
[NEMO-241] ASCII art for Nemo job launching (#143)

JIRA: [NEMO-241: Powered by NEMO](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-241)

**Major changes:**
- Adds an ASCII art for Nemo job launching

```
Powered by
    _   __
   / | / /__  ____ ___  ____
  /  |/ / _ \/ __ `__ \/ __ \
 / /|  /  __/ / / / / / /_/ /
/_/ |_/\___/_/ /_/ /_/\____/
```

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A

5 weeks ago[NEMO-252] Fix CreatViewTransform to emit windowed materialized data (#141)
Taegeon Um [Fri, 2 Nov 2018 03:26:55 +0000 (12:26 +0900)] 
[NEMO-252] Fix CreatViewTransform to emit windowed materialized data (#141)

JIRA: [NEMO-252: Fix CreatViewTransform to emit windowed materialized data](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-252)

**Major changes:**
- Fix `CreateViewTransform` to collect windowed data and emit them by applying a view function

**Minor changes**
- Fix emitting output watermarks in `GroupByKeyAndWindowDoFnTransform`

**Tests for the changes:**
- `CreateViewTransformTest` that tests materialized data in windows

5 weeks ago[NEMO-254] Modify POM to publish maven artifacts (#140)
jooykim [Thu, 1 Nov 2018 07:50:35 +0000 (16:50 +0900)] 
[NEMO-254] Modify POM to publish maven artifacts (#140)

JIRA: [NEMO-254: Modify POM to publish maven artifacts](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-254)

**Major changes:**
- Modifies the current pom.xml to inherit the Apache POM

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A (The build suffices)

**Other comments:**
- This PR is to inherit the Apache POM which facilitates publishing our releases as maven artifacts

5 weeks ago[NEMO-232] Implement InputWatermarkManager (#137)
Taegeon Um [Thu, 1 Nov 2018 00:51:48 +0000 (09:51 +0900)] 
[NEMO-232] Implement InputWatermarkManager (#137)

JIRA: [NEMO-232: Implement InputWatermarkManager](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-232)

**Major changes:**
- Tracks the minimum watermark among multiple input streams by creating `InputWatermarkManager`
- Emits watermarks from `OutputCollector` to `InputWatermarkManager`. Then `InputWatermarkManager` emits the minimum input watermarks to next operators

**Minor changes to note:**
- Create `NextOperatorInfo` to wrap edge index, OperatorVertex, and InputWatermarkManager.

**Tests for the changes:**
- Create `InputWatermarkManagerTest`
- Add `testMultipleIncomingEdges` to `TaskExecutorTest`

**Other comments:**
-

Closes #137

5 weeks ago[NEMO-237] Refactor ParentTaskDataFetcher to emit streaming data and watermark (...
John Yang [Thu, 1 Nov 2018 00:32:42 +0000 (09:32 +0900)] 
[NEMO-237] Refactor ParentTaskDataFetcher to emit streaming data and watermark (#138)

JIRA: [NEMO-237: Refactor ParentTaskDataFetcher to emit streaming data and watermark](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-237)

**Major changes:**
- Introduces `MultiThreadParentTaskDataFetcher` that does not block, and consumes N iterables concurrently
- Make 'Pipe' edges use `MultiThreadParentTaskDataFetcher`

**Minor changes to note:**
- Fixs bugs in TaskExecutor polling logic (thanks to @taegeonum)

**Tests for the changes:**
- Streaming tests `WindowedWordCountITCase` use the added `MultiThreadParentTaskDataFetcher`

**Other comments:**
- Will handle watermarks in a different PR (after the OutputWriters are fixed)

Closes #138

5 weeks ago[NEMO-230] Emit collected data when receiving watermark in GroupByKeyAndWindowTransfo...
Taegeon Um [Wed, 31 Oct 2018 03:22:23 +0000 (12:22 +0900)] 
[NEMO-230] Emit collected data when receiving watermark in GroupByKeyAndWindowTransform (#135)

JIRA: [NEMO-230: Emit collected data when receiving watermark in GroupByKeyAndWindowTransform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-230)

**Major changes:**
- Fix `GroupByKeyAndWindowTransform` to emit collected data whenever receiving watermarks.

**Minor changes to note:**
-

**Tests for the changes:**
- Test GroupByKeyAndWindowTransform whether it emits correct data when receiving watermarks.

**Other comments:**
-

Closes #135

5 weeks ago[NEMO-248] Validate javadoc in mvn phase (#139)
Taegeon Um [Wed, 31 Oct 2018 01:10:45 +0000 (10:10 +0900)] 
[NEMO-248] Validate javadoc in mvn phase (#139)

JIRA: [NEMO-248: Validate javadoc in mvn phase](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-248)

**Major changes:**
- Add javadoc validation to validate phase
- Remove mvn javdoc:javdoc in .travis.yml
**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #139

6 weeks ago[NEMO-246] Add javadoc generation to CI (#136)
Jangho Seo [Tue, 30 Oct 2018 08:48:07 +0000 (17:48 +0900)] 
[NEMO-246] Add javadoc generation to CI (#136)

JIRA: [NEMO-246: Add javadoc generation to CI](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-246)

**Major changes:**
- For nemo-frontend-spark, configured doclint to ignore missing symbols because some symbols are written in Scala.
- Added mvn clean javadoc:javadoc to .travis.yml

**Minor changes to note:**
- Fixed some javadoc errors according to the reports from doclint.
- Added docs/ to .gitignore
- Added docs/ to RAT ignore list

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

Closes #136

6 weeks ago[NEMO-231] Add onWatermark() method to Transform (#134)
Taegeon Um [Tue, 30 Oct 2018 04:44:07 +0000 (13:44 +0900)] 
[NEMO-231] Add onWatermark() method to Transform (#134)

JIRA: [NEMO-231: Add onWatermark() method to Transform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-231)

**Major changes:**
- Add `onWatermark(watermark)` method to `Transform`
- Add `emitWatermark(watermark)` method to `OutputCollector`

**Minor changes to note:**
-

**Tests for the changes:**
- Fix `testUnboundedSourceVertexDataFetching()` to check whether watermarks are emitted or not to `OutputCollector` and other `Transforms`

**Other comments:**
-

Closes #134

6 weeks ago[NEMO-8] Implement PipeManagerMaster/Worker (#129)
John Yang [Tue, 30 Oct 2018 01:13:18 +0000 (10:13 +0900)] 
[NEMO-8] Implement PipeManagerMaster/Worker (#129)

JIRA: [NEMO-8: Implement PipeManagerMaster/Worker](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-8)

**Major changes:**
- Supports fully-pipelined data streaming for bounded sources (not unbounded sources)
  - Tasks do 'finish' after processing all input data, as the data is finite
  - When a tasks finishes, it emits all data it has (e.g., GroupByKey accumulated results) and closes corresponding outgoing pipes, notifying downstream tasks the end of the pipes
  - For stream-processing unbounded sources, we need watermarks (https://issues.apache.org/jira/browse/NEMO-233)
- Introduces PipeManagerMaster/Worker
  - Shares code with BlockManagerMaster/Worker
- Naive, Element-wise serialization+compression+writeAndFlush
  - Very likely that this will cause some serious overheads. Will run proper benchmarks and fix the issues in a later PR.

**Minor changes to note:**
- JobConf#SchedulerImplClassName: Batch and Streaming options
- StreamingPolicyParallelismFive: The default policy + PipeTransferEverythingPass
- Fixes the StreamingScheduler to pass the new streaming integration tests
- Fixes a coder bug in the Beam frontend (PCollectionView coder)

**Tests for the changes:**
- WindowedWordCountITCase#testStreamingFixedWindow
- WindowedWordCountITCase#testStreamingSlidingWindow

**Other comments:**
- Also closes "Implement common API for data transfer" (https://issues.apache.org/jira/browse/NEMO-9)

Closes #129

6 weeks ago[NEMO-233] Emit watermark at unbounded source (#130)
Taegeon Um [Mon, 29 Oct 2018 11:54:20 +0000 (20:54 +0900)] 
[NEMO-233] Emit watermark at unbounded source  (#130)

JIRA: [NEMO-233: Emit watermark at unbounded source](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-233)

**Major changes:**
- Change `Readable` interface to retrieve watermark. `Readable` does not return `Iterable`, which can block data fetching. Instead, `TaskExecutor` checks whether the `Readable` is finished or not, and retrieve data or watermark if it is not finished.
- Add polling logic to `TaskExecutor`

**Minor changes to note:**
-

**Tests for the changes:**
- Test unbounded source readable

**Other comments:**
-

Closes #130

6 weeks ago[Nemo-238] Optimize processElement in TaskExecutor (#131)
Taegeon Um [Sun, 28 Oct 2018 06:38:17 +0000 (15:38 +0900)] 
[Nemo-238] Optimize processElement in TaskExecutor (#131)

JIRA: [NEMO-238: Optimize processElement in TaskExecutor](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-238)

**Major changes:**
- Refactor `processElement` by creating `DataFetcherOutputCollector`

**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #131

6 weeks ago[Nemo-240] Fix .travis.yml (#133)
Taegeon Um [Sat, 27 Oct 2018 05:04:31 +0000 (14:04 +0900)] 
[Nemo-240] Fix .travis.yml (#133)

JIRA: [NEMO-240: Fix .travis.yml](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-240)

**Major changes:**
- set `sudo` to `required` and change the license header

**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #133

6 weeks ago[NEMO-239] Edit Source Headers for ASF Guideline Compliance (#132)
Jangho Seo [Fri, 26 Oct 2018 08:26:57 +0000 (17:26 +0900)] 
[NEMO-239] Edit Source Headers for ASF Guideline Compliance (#132)

JIRA: [NEMO-239: Edit Source Headers for ASF Guideline Compliance](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-239)

**Major changes:**
- Edited source headers to meet the standards defined in https://www.apache.org/legal/src-headers.html

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

Closes #132

6 weeks ago[NEMO-235] Refactor TaskExecutor's data processing logic (#128)
Taegeon Um [Thu, 25 Oct 2018 23:57:19 +0000 (08:57 +0900)] 
[NEMO-235] Refactor TaskExecutor's data processing logic (#128)

JIRA: [NEMO-235: Refactor TaskExecutor's data processing logic](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-235)

**Major changes:**
- Refactor `TaskExecutor` by delegating data transfer logic to `OutputCollector`

**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #128

6 weeks ago[NEMO-128] Support Beam UnboundedSource (#125)
Gyewon Lee [Thu, 25 Oct 2018 06:59:06 +0000 (15:59 +0900)] 
[NEMO-128] Support Beam UnboundedSource (#125)

JIRA: [NEMO-128: Support Beam UnboundedSource](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-128)

**Major changes:**
- Support Beam UnboundedSources

**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #

6 weeks ago[NEMO-224] Simple StreamingScheduler (#126)
John Yang [Tue, 23 Oct 2018 23:51:36 +0000 (08:51 +0900)] 
[NEMO-224] Simple StreamingScheduler (#126)

JIRA: [NEMO-224: Simple StreamingScheduler](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-224)

**Major changes:**
- StreamingScheduler with the following properties:
- Keeps track of new executors
- Schedules all tasks in a reverse topological order.
- Crashes the system upon any other events (should be fixed in the future)
- Never stops running.

**Minor changes to note:**
- N/A

**Tests for the changes:**
- StreamingSchedulerTest

**Other comments:**
- N/A

Closes #126

7 weeks ago[NEMO-225] Drop REEF JARs from source tree (#127)
Jangho Seo [Tue, 23 Oct 2018 04:06:14 +0000 (13:06 +0900)] 
[NEMO-225]  Drop REEF JARs from source tree (#127)

JIRA: [NEMO-225: Drop REEF JARs from source tree](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-225)

**Major changes:**
- Dropped bundled Maven repositories and removed references to them in pom.xml
- Added erratum REEF ClassPathBuilder.java.

**Minor changes to note:**
- Added NOTICE.

**Tests for the changes:**
- N/A

**Other comments:**
- See REEF-1959 for the erratum.
- The erratum should be removed once we update dependencies for REEF to 0.17.

Closes #127

7 weeks ago[NEMO-129] Support Beam's WindowedWordCount example (#123)
Taegeon Um [Fri, 19 Oct 2018 02:13:29 +0000 (11:13 +0900)] 
[NEMO-129] Support Beam's WindowedWordCount example (#123)

JIRA: [NEMO-129: Support Beam's WindowedWordCount example](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-129)

**Major changes:**
- Create `GroupByKeyAndWindowDoFnTransform` to group elements according to the key and window. Use `GroupAlsoByWindowViaWindowSetNewDoFn` that is a wrapper class for group by key and window in beam. If there is no window, use existing `GroupByKeyTransform` for performance.

**Minor changes to note:**
- refactor `DoFnTransform` and create `AbstractDoFnTransform` to reuse codes in both `DoFnTransform` and `GroupByKeyAndWindowDoFnTransform`

**Tests for the changes:**
- test windowed word count (fixed window and sliding window)

**Other comments:**
-

Closes #123

2 months ago[NEMO-213] Use Beam's DoFnRunners to execute DoFn (#122)
Taegeon Um [Thu, 11 Oct 2018 01:37:06 +0000 (10:37 +0900)] 
[NEMO-213] Use Beam's DoFnRunners to execute DoFn (#122)

JIRA: [NEMO-213: Use Beam's DoFnRunners to execute DoFn](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-213)

**Major changes:**
- use `simpleDoFnRunner` to process events of `DoFn`
- convert all beam `Transform`s to process `WindowedValue`
- create a `BeamBoundedWindowedSourceVertex` that generates `WindowedValue`s
- modify `PipelineTranslator` to use the newly created `Transform`s (`SimpleDoFnTransform`...)

**Minor changes to note:**
-

**Tests for the changes:**
- create a unit test that executes `SimpleDoFnTransform`

**Other comments:**
- We need a performance test

Closes #122

2 months ago[NEMO-218] Throws exception while processing non-keyed events in CreateViewTransform...
Taegeon Um [Fri, 14 Sep 2018 12:08:48 +0000 (21:08 +0900)] 
[NEMO-218] Throws exception while processing non-keyed events in CreateViewTransform (#121)

JIRA: [NEMO-218: Throws exception while processing non-keyed events in CreateViewTransform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-218)

**Major changes:**
- remove `if` clause in `CreateViewTransform`.onData()

**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #121

2 months ago[NEMO-217] Immediately emits elements in FlattenTransform (#120)
Taegeon Um [Thu, 13 Sep 2018 05:52:39 +0000 (14:52 +0900)] 
[NEMO-217] Immediately emits elements in FlattenTransform (#120)

JIRA: [NEMO-217: Immediately emits elements in FlattenTransform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-217)

**Major changes:**
- remove `ArrayList` that collects elements in `FlattenTransform` and directly emit the elements

**Minor changes to note:**
-

**Tests for the changes:**
-

**Other comments:**
-

Closes #120

3 months ago[NEMO-214] Use Jackson for building JSON, fix malformed JSON issue on Windows (#118)
Jangho Seo [Tue, 11 Sep 2018 04:29:31 +0000 (13:29 +0900)] 
[NEMO-214] Use Jackson for building JSON, fix malformed JSON issue on Windows (#118)

JIRA: [NEMO-214: Use Jackson for building JSON, fix malformed JSON issue on Windows](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-214)

**Major changes:**
- Use Jackson for builidng string representation of DAG.
- Use Jackson for building string representation of ExecutionPropertyMap.

**Minor changes to note:**
- HashRange, StateMachine, TaskState, BlockState, PlanState, and StageState: Eliminate unnecessary usage of StringBuffer and StringBuilder.

**Tests for the changes:**
- N/A

**Other comments:**
- This fixes 'malformed JSON' issue on Windows environments.

Closes #GITHUB_PR_NUMBER

3 months ago[NEMO-215] Add beam-runners-core-java package to nemo-beam-frontend (#119)
Taegeon Um [Tue, 11 Sep 2018 02:52:06 +0000 (11:52 +0900)] 
[NEMO-215] Add beam-runners-core-java package to nemo-beam-frontend (#119)

JIRA: [NEMO-215: Add beam-runners-core-java package to nemo-beam-frontend](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-215)

Closes #119

3 months ago[NEMO-203] Beam SQL Aggregation fails to match RowCoder in Combine transform (#114)
John Yang [Mon, 10 Sep 2018 03:54:09 +0000 (12:54 +0900)] 
[NEMO-203] Beam SQL Aggregation fails to match RowCoder in Combine transform (#114)

JIRA: [NEMO-203: Beam SQL Aggregation fails to match RowCoder in Combine transform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-203)

**Major changes:**
- SimpleSQL: Runs two BeamSQL queries

**Minor changes to note:**
- Disable NemoPipelineResult#waitUntilFinish, which hangs the job (filed NEMO-208)
- Disable local combiner optimization for BeamSQL (filed NEMO-209)

**Tests for the changes:**
- BeamSQLITCase#testSimpleSQL

**Other comments:**
- N/A

Closes #GITHUB_PR_NUMBER

3 months ago[NEMO-212] Move package directories to org/apache/nemo (#117)
Jangho Seo [Thu, 6 Sep 2018 08:18:01 +0000 (17:18 +0900)] 
[NEMO-212] Move package directories to org/apache/nemo (#117)

JIRA: [NEMO-212: Move package directories to org/apache/nemo](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-212)

**Major changes:**
- Moved package directories to org/apache/nemo.

**Minor changes to note:**
- Updated REAMDE.md to reflect recent infra updates.
- Updated deploy/README.md to remove SNU-specific example.

**Tests for the changes:**
-

**Other comments:**
-

Closes #GITHUB_PR_NUMBER

3 months ago[NEMO-211] Move Java package and Maven artifact from edu.snu.nemo to org.apache.nemo
Jangho Seo [Thu, 6 Sep 2018 06:41:19 +0000 (15:41 +0900)] 
[NEMO-211] Move Java package and Maven artifact from edu.snu.nemo to org.apache.nemo

JIRA: [NEMO-211: Move Java package and Maven artifact from edu.snu.nemo to org.apache.nemo](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-211)

**Major changes:**
- Moved Java package from edu.snu.nemo to org.apache.nemo
- Moved Maven artifact from edu.snu.nemo to org.apache.nemo

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

Closes #116

3 months ago[NEMO-96] Modularize DataSkewPolicy to use MetricVertex and BarrierVertex (#115)
Jeongyoon Eo [Wed, 5 Sep 2018 05:02:22 +0000 (14:02 +0900)] 
[NEMO-96] Modularize DataSkewPolicy to use MetricVertex and BarrierVertex (#115)

JIRA: [NEMO-96: Modularize DataSkewPolicy to use MetricVertex and BarrierVertex](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-96)
[NEMO-98: Implement MetricVertex that collect metric used for dynamic optimization](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-98)
[NEMO-99: Implement AggregationBarrierVertex for dynamic optimization](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-99)

**Major changes:**
- Handle dynamic optimization via `MetricCollectionVertex` and `AggregationBarrierVertex` instead of `MetricCollectionBarrierVertex`
- For each shuffle edge with main output, `MetricCollectionVertex` is inserted in compile-time at the end of its source tasks, which collects key frequency data
- For each shuffle edge with main output, `AggregationBarrierVertex` is inserted in compile-time. It aggregates task-level key frequency data, which is collected via each `MetricCollectionVertex` and emitted as additional tagged output

**Minor changes to note:**
- Added encoder/decoder factories needed for aggregating dynamic optimization data - in here key frequency data
- Modified `PipelineTranslator` to extract key encoder/decoders
- Modified `DataSkewRuntimePass` and related code path to handle `Object` type keys, instead of integer type hash index keys

**Tests for the changes:**
- N/A(unit tests for skew handling and `PerKeyMedianITCase` test the changes)

**Other comments:**
- N/A

Closes #115

3 months ago[NEMO-15] Run Spark ALS in distributed mode (#113)
John Yang [Fri, 31 Aug 2018 11:39:51 +0000 (20:39 +0900)] 
[NEMO-15] Run Spark ALS in distributed mode (#113)

JIRA: [NEMO-15: Run Spark ALS in distributed mode](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-15)

**Major changes:**
- Removes 'sideinput' from IRDAG, and instead introduces BroadcastVariableProperty
- InMasterBroadcastVariables/BroadcastManagerWorker: Components that deal with broadcast variables
- New RPC messages for exchanging broadcast variables between client->driver, and driver<->executor

**Minor changes to note:**
- Explicit scala lambdas (update_ms, update_us) to get around serialization errors
- Avoid duplicate PlanState completions which can be caused by cloned executions

**Tests for the changes:**
- SparkScala#testALS

**Other comments:**
- This PR also closes: [NEMO-14] Re-investigate Broadcast and SideInputs

Closes #113

3 months ago[NEMO-179] Delayed Task Cloning (#112)
John Yang [Wed, 22 Aug 2018 03:40:34 +0000 (12:40 +0900)] 
[NEMO-179] Delayed Task Cloning (#112)

JIRA: [NEMO-179: Delayed Task Cloning](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-179)

**Major changes:**
- Two options for ClonedSchedulingProperty: Speculative execution(fraction, medianTimeMultiplier) + Upfront cloning
- ScheduledExecutorService in RuntimeMaster: Check for speculative execution every 100ms
- Data structures to identify stragglers and clone tasks in PlanStateManager
- BlockState: No longer transitions from NOT_AVAILABLE to other states (similar to TaskState), assuming that a new Block attempt takes over the failed one

**Minor changes to note:**
- Fix a bug in SourceLocationAwareSchedulingConstraint, as its getIntermediateDataLocation is no longer deterministic (randomly fetches one of the clone outputs)
- Log when the speculative execution is triggered
- Indentations

**Tests for the changes:**
- Unit test(TaskRetryTest): Tests combinations of Task retry + Task speculation (cloning), both of which lead to new task attempts
- Integration test(WordCountITCase#testSpeculativeExecution): In addition to the existing test for upfront cloning, this tests conditional (very aggressive) speculative cloning.

**Other comments:**
- N/A

Closes #112

3 months ago[NEMO-139, 6] Logic in the scheduler for appending jobs, Support RDD caching (#111)
Sanha Lee [Tue, 21 Aug 2018 03:23:49 +0000 (12:23 +0900)] 
[NEMO-139, 6] Logic in the scheduler for appending jobs, Support RDD caching (#111)

JIRA: [NEMO-139: Logic in the scheduler for appending jobs](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-139)
JIRA: [NEMO-6: Support RDD caching](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-6)

**Major changes:**
- add a logic in the scheduler for appending plans (NEMO-139)
  - implement `PlanAppender` that appends submitted `PhysicalPlan` to a original `PhysicalPlan`
  - refactor `PlanStateManager`, `BatchScheduler`, `BlockManagerMaster`, and `TaskDispatcher` to reflect that all plans from a single job are appended to a single `PhysicalPlan` through `PlanAppender`
- support RDD caching (NEMO-6)
  - add `CacheIdProperty` property and `GhostProperty`
    - When a Spark user program call `cache()` or `persist()` for a `RDD`, the RDD creates a ghost vertex and connect the vertex having the `RDD` to the ghost vertex. This edge to the ghost vertex is annotated with an ID of cache (`cacheIdProperty`). When a plan with this edge is executed in our runtime, the data to cache will be stored in the edge as the required `StorageLevel` format. (Any extra feature is not required in our runtime to produce or sustain this data.)
    - When the `BatchScheduler` encounter a task that annotated with the `GhostProperty`, the vertex will not be scheduled but just regarded as a completed task.
  - implement `Optimizer` that conducts optimization by using `OptimizationPass`es from our `UserApplicationRunner` to separate the roll.
    - When an IR DAG that contains any edge with `cacheIdProperty` is submitted and there was any already executed IR DAG that contains an edge with the identical `cacheIdProperty`, the `Optimizer` crops the IR DAG before the cache edge and adds a `CachedSourceVertex` before the edge.
  - make `PlanAppender` properly handle the caching
    - Make `PlanAppender` append the `PhysicalPlan` constructed from the cropped IR DAG with caching edge to the original `PhysicalPlan` and add a new edge from the vertex that has the actual  edge to a ghost vertex and the new `CachedSourceVertex`. In runtime, when the `CachedSourceVertex` requires the data, the cached data that produced and stored in the edge to the ghost vertex will be read through our `DuplicateEdgeGroupProperty` logic.

**Minor changes to note:**
- N/A.

**Tests for the changes:**
- add an integration test that tests `SparkCachingWordCount` application
    - `SparkCachingWordCount` caches a shuffle data and calculates that which keys have identical count by using the cached data.

**Other comments:**
- I'm sorry for the late. This issue is a part of our first release and the target due was August 16th, but it is delayed to resolve conflicts.

Closes #111

3 months ago[NEMO-197] Close JIRA issues upon closing PRs (#110)
Won Wook SONG [Tue, 21 Aug 2018 02:52:13 +0000 (11:52 +0900)] 
[NEMO-197] Close JIRA issues upon closing PRs (#110)

JIRA: [NEMO-197: Automatically close JIRA issues upon closing PRs](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-197)

**Major changes:**
- None

**Minor changes to note:**
- This minor PR updates the final line of the PR template, to automatically close the issue using GitHub.

**Tests for the changes:**
- N/A

**Other comments:**
- N/A

Closes #110

3 months ago[NEMO-89] Clean up IRVertex#getClone() (#109)
Arun Lakshman R [Mon, 20 Aug 2018 04:37:34 +0000 (10:07 +0530)] 
[NEMO-89] Clean up IRVertex#getClone() (#109)

 JIRA: [NEMO-89: Clean up IRVertex#getClone()](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-89)

**Major changes:**
- `getClone()` has been moved into a Interface
 - Copy constructors has been added to the subclasses of the `IRVertex` which does the deep copying of the objects

**Minor changes to note:**
- NA

**Tests for the changes:**
- NA

**Other comments:**
- NA

resolves NEMO-89 #resolve

3 months ago[NEMO-180] Java Annotation for Prerequisite Execution Properties (#102)
Won Wook SONG [Mon, 20 Aug 2018 03:41:41 +0000 (12:41 +0900)] 
[NEMO-180] Java Annotation for Prerequisite Execution Properties (#102)

JIRA: [NEMO-180: Java Annotation for Prerequisite Execution Properties](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-180)

**Major changes:**
- Applies Annotes and Requires java annotations for annotating passes and the prerequisite execution properties.
- Implementations are changed: users can now annotate and require multiple properties together.

**Minor changes to note:**
- Fixes typo: suffle --> shuffle
- Appropriate changes with the changes in the semantics

**Tests for the changes:**
- Existing tests check the changes

**Other comments:**
- N/A

resolves [NEMO-180](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-180)

3 months ago[NEMO-192] Remove IRDAG from PhysicalPlan (#108)
Jeongyoon Eo [Sun, 19 Aug 2018 15:31:17 +0000 (00:31 +0900)] 
[NEMO-192] Remove IRDAG from PhysicalPlan (#108)

JIRA: [NEMO-192: Remove IRDAG from PhysicalPlan](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-192)

**Major changes:**
- Removed IRDAG from PhysicalPlan

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A

**Other comments:**
- Now dynamic optimization is done via StageEdge. We need a revised version of IR-based dynamic optimization, considering issues related with RDD caching and reshaping IR DAG in run-time. This will be handled with issue [NEMO-193](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-193).

resolves [NEMO-192](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-192)

3 months ago[NEMO-178] Zero-delay task cloning (#107)
John Yang [Sun, 19 Aug 2018 07:03:54 +0000 (16:03 +0900)] 
[NEMO-178] Zero-delay task cloning (#107)

JIRA: NEMO-178: Zero-delay task cloning

Major changes:
* A state machine per task attempt/its output blocks
* Randomly choose one of the available attempt output blocks when fetching data
* A cloned task, or a retried task is just another task attempt
* ClonedSchedulingProperty: Zero-delay, upfront task cloning

Minor changes to note:
* Removes unused code
* RuntimeIdGenerator -> RuntimeIdManager
* Removes the first hyphens from the ids (e.g., vertex-4 => vertex4)

Tests for the changes:
* WordCountITCase#testClonedScheduling

Other comments:
* ClonedSchedulingPass at the moment just clones source vertices, as cloning Beam sink vertices appears to cause failures due to a duplicate file name conflict (I'll look into this in a later PR)

resolves NEMO-178

3 months ago[NEMO-142] Add .editorconfig and formatter.xml (#106)
Jangho Seo [Fri, 17 Aug 2018 09:11:38 +0000 (18:11 +0900)] 
[NEMO-142] Add .editorconfig and formatter.xml (#106)

JIRA: [NEMO-142: Add .editorconfig and formatter.xml](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-142)

**Major changes:**
- N/A

**Minor changes to note:**
- Adds .editorconfig to specify code style.
- Adds Eclipse formatting profile as formatter.xml

**Tests for the changes:**
- N/A

**Other comments:**
- Many editors/IDEs support EditorConfig as a built-in feature or through well-known plugins. See https://editorconfig.org for details.
- The formatter.xml may need more refinements. Follow-up patches from Eclipse users are more than welcome.

resolves [NEMO-142](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-142)

3 months ago[NEMO-183] DAG-centric translation from Beam pipeline to IR DAG (#104)
Jangho Seo [Fri, 17 Aug 2018 04:59:58 +0000 (13:59 +0900)] 
[NEMO-183] DAG-centric translation from Beam pipeline to IR DAG (#104)

JIRA: [NEMO-183: DAG-centric translation from Beam pipeline to IR DAG](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-183)

**Major changes:**
- Implemented DAG-centric translation from Beam pipeline to Nemo IR, which consists to the two phases:
  - **PipelineVisitor** traverses through the given Beam pipeline to construct DAG of Beam transforms, while preserving the hierarchy of CompositeTransforms.
  - **PipelineTranslator** defines not only mappings between PrimitiveTransform and IRVertex, but also correspondneces between CompositeTransform and TranslationContext, based on which PipelineTranslator can tune translation behavior.

**Minor changes to note:**
- N/A

**Tests for the changes:**
- Modified existing tests to match the topological ordering produced by the new visitor.

**Other comments:**
- N/A

resolves [NEMO-183](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-183)

3 months ago [NEMO-184] Upgrade to Beam 2.6.0 (#105)
John Yang [Fri, 17 Aug 2018 02:29:06 +0000 (11:29 +0900)] 
 [NEMO-184] Upgrade to Beam 2.6.0 (#105)

JIRA: [NEMO-184: Upgrade to Beam 2.6.0](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-184)

**Major changes:**
- Upgrade to Beam 2.6.0

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A (just a version upgrade)

**Other comments:**
- throw UnsupportedException when the new Row-related APIs are called

resolves [NEMO-184](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-184)

3 months ago[NEMO-64] Fix map stage hang under DataSkewPolicy (#99)
Jeongyoon Eo [Tue, 14 Aug 2018 09:51:42 +0000 (18:51 +0900)] 
[NEMO-64] Fix map stage hang under DataSkewPolicy (#99)

JIRA: [NEMO-64: Fix map stage hang under DataSkewPolicy](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-64),
[NEMO-181: Fix DataSkewPolicy bug for multiple shuffles](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-181)

**Major changes:**
- Data for dynamic optimization is aggregated at `DynOptDataHandler` in Scheduler instead of a variable in `MetricCollectionBarrierVertex`. Updating `MetricCollectionBarrierVertex` as data arrives in RuntimeMaster clashed with serializing IRDAG for scheduled Tasks, which caused `ConcurrentModificationException` and silently killed the Scheduler
- Identifies the target edge to optimize via MetricCollectionProperty in case multiple shuffles are involved.

**Minor changes to note:**
- Removed now unused entries in `dataSizeMetricMsg`
- Added `DataSkewMetricProperty` and `MetricFactory` to make task hash ranges of shuffle edges as an execution property, so that RuntimePass can optimize the given IR DAG

**Tests for the changes:**
- N/A(No new features, covered by `PerKeyMedianITCase`)

**Other comments:**
- Data for dynamic optimization will be aggregated in designated vertex and not in the RuntimeMaster via upcoming PR for [NEMO-99](https://issues.apache.org/jira/browse/NEMO-99)

resolves [NEMO-64](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-64), [NEMO-181](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-181)

3 months ago[NEMO-3] Bump up the Beam version to 2.5.0 (#91)
Seonghyun Park [Mon, 13 Aug 2018 04:49:51 +0000 (13:49 +0900)] 
[NEMO-3] Bump up the Beam version to 2.5.0 (#91)

JIRA: [NEMO-3: Bump up the Beam version to 2.5.0](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-3)

**Major changes:**
- Bump up Beam version to 2.5.0
- Add missing methods in DoFn.ProcessContext including OutputReceiver
- Adapt to changes in connecting side inputs (See CreateViewTransform and NemoPipelineVisitor)

**Minor changes to note:**
- Handle null key by BeamKeyExtractor
- Specify main tag of multi-output operator to reject if application invokes output() with wrong tags.

**Tests for the changes:**
- Update optimizer tests since the DAG with side inputs look different

**Other comments:**
- Window or pane in DoFn.ProcessContext may be refined for further supports for unbounded and windowed sources and processing.

resolves [NEMO-3](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-3)

4 months ago[NEMO-168] Fine-grained Execution Property Check (#101)
Won Wook SONG [Fri, 10 Aug 2018 08:57:40 +0000 (17:57 +0900)] 
[NEMO-168] Fine-grained Execution Property Check (#101)

JIRA: [NEMO-168: Fine-grained Execution Property Check](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-168)

**Major changes:**
- Implements setPropertyPermanently method, to be able to permanently set execution properties.
- Implements finalization of execution properties in the execution property map.
- Removed 'strict checking' mode from PolicyBuilder, as it is no longer necessary.

**Minor changes to note:**
- Fixes overused RuntimeExceptions into appropriate exceptions.
- Type specifications where it was neglected.
- Replaced calling getExecutionProperty then manually doing something into getPropertyValue and setProperty methods.

**Tests for the changes:**
- I've added a buildEmptyDAG method to be able to create a mock DAG that can be used throughout the tests.
- I've also added unit tests to test the methods newly implemented in the execution property map.
- I've added appropriate unit tests that expect particular outputs from various policies.

**Other comments:**
- N/A

resolves [NEMO-168](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-168)

4 months ago[NEMO-118] Implement Skipping (De)Serialization by ExecutionProperty (#98)
Sanha Lee [Thu, 9 Aug 2018 08:45:57 +0000 (17:45 +0900)] 
[NEMO-118] Implement Skipping (De)Serialization by ExecutionProperty (#98)

JIRA: [NEMO-118: Implement Skipping (De)Serialization by ExecutionProperty](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-118)

**Major changes:**
- Remove `SkipSerDesProperty`.

**Minor changes to note:**
- N/A.

**Tests for the changes:**
- Existing integration tests for large shuffle optimization cover this change.

**Other comments:**
- The skipping feature is implemented in #50 with `BytesEncoderFactory` and `BytesDecoderFactory`, but the stale property `SkipSerDesProperty` remained. This stale property is added to assign a separate stage for the vertex having `RelayTransform`, but it is naturally divided now because of `ResourceSlot` property.

resolves [NEMO-118](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-118)

4 months ago[NEMO-136] Rename SchedulerRunner to TaskDispatcher (#97)
John Yang [Thu, 9 Aug 2018 06:24:06 +0000 (15:24 +0900)] 
[NEMO-136] Rename SchedulerRunner to TaskDispatcher (#97)

JIRA: [NEMO-136: Rename SchedulerRunner to TaskDispatcher](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-136)

**Major changes:**
- Renames SchedulerRunner to TaskDispatcher

**Minor changes to note:**
- N/A

**Tests for the changes:**
- N/A (just renaming)

**Other comments:**
- N/A

resolves [NEMO-136](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-136)

4 months ago[NEMO-177] Fix BytesDecoder to handle empty stream properly (#96)
Sanha Lee [Thu, 9 Aug 2018 05:44:33 +0000 (14:44 +0900)] 
[NEMO-177] Fix BytesDecoder to handle empty stream properly (#96)

JIRA: [NEMO-177: Fix BytesDecoder to handle empty stream properly](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-177)

**Major changes:**
- Make `BytesDecoder` of `BytesDecoderFactory` to return empty byte[] at first, and throw EoF for the next time if it receives empty byte array.

**Minor changes to note:**
- N/A.

**Tests for the changes:**
- Add `CoderFactoryTest` to test this feature.

**Other comments:**
- N/A.

resolves [NEMO-177](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-177)

4 months ago[NEMO-160] Handle Beam VoidCoder properly (#93)
John Yang [Thu, 9 Aug 2018 05:23:50 +0000 (14:23 +0900)] 
[NEMO-160] Handle Beam VoidCoder properly (#93)

JIRA: [NEMO-160: Handle Beam VoidCoder properly](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-160)

**Major changes:**
- Proper support for (1) empty, or (2) 'null'-value input in DataFetchers
- Allow 'null' values emitted by user code (e.g., Create.of((Void) null) by Beam WriteFiles) to be passed around in the data plane
- Remove specific assumptions about Beam VoidCoder in the data plane (e.g., Void.TYPE), and use the coder transparently just like we use any other coders
- DataFetcher throws a NoSuchElementException instead of returning 'null', when indicating that all data has been fetched

**Minor changes to note:**
- Cleans up tests

**Tests for the changes:**
- ParentTaskDataFetcherTest#testEmpty, testNull

**Other comments:**
- N/A

resolves [NEMO-160](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-160)

4 months ago[NEMO-152] Support Multiple DAGs Execution in a Single User Program (#94)
Won Wook SONG [Thu, 9 Aug 2018 04:56:45 +0000 (13:56 +0900)] 
[NEMO-152] Support Multiple DAGs Execution in a Single User Program (#94)

JIRA: [NEMO-152: Support Multiple DAGs Execution in a Single User Program](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-152)

**Major changes:**
- Divides the usage of the word 'Job' and 'Plan' to be more specific about what is being run. Before, a job had a single physical plan, so it was possible to use them with an identical name, but as jobs can contain multiple physical plans, it was necessary to divide them
- Fixes the scheduler and the scheduler runner to accept multiple physical plans

**Minor changes to note:**
- Grammatical errors on the comments
- The convert method on the DAG had almost no usages, and it was misleading on the way it was used, so it was removed.
- I've allowed multiple spark contexts on an evaluator, so that an evaluator can be reused for multiple physical plans.

**Tests for the changes:**
- A sample program, performing a line count on one execution, and then word count on another, is added as an integration test. All existing tests pass with the changes.

**Other comments:**
- N/A

resolves [NEMO-152](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-152)

4 months ago[NEMO-176] Improve sequential read from disk #92
Sanha Lee [Wed, 8 Aug 2018 08:04:11 +0000 (17:04 +0900)] 
[NEMO-176] Improve sequential read from disk #92

JIRA: [NEMO-176: Improve sequential read from disk](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-176)

**Major changes:**
- Read whole data to read from file stream first and decode them later in `FileBlock`

**Minor changes to note:**
- Remove `limit` parameter in `InputStreamIterator` of `DataUtil` and make `DataUtil#deserializePartition` to limit the stream itself by the partition size.
- Remove the assumption that "the source and destination parallelism of One-to-One communication is always 1" in `OutputWriter` and `InputReader`

**Tests for the changes:**
- Existing `DataTransferTest`, `BlockStoreTest` and other unit tests cover this change.
- Existing integration tests also cover this change.

**Other comments:**
- N/A.

resolves [NEMO-176](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-176)

4 months ago[NEMO-175] Remove 'taskInfo', add Scheduler#completeHeldTask (#89)
Jangho Seo [Wed, 8 Aug 2018 07:45:02 +0000 (16:45 +0900)] 
[NEMO-175] Remove 'taskInfo', add Scheduler#completeHeldTask (#89)

JIRA: [NEMO-175](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-175)

**Major changes:**
- N/A

**Minor changes to note:**
- Remove taskInfo, which is a pair of taskId and executorId. We'd better simply put two strings in separate arguments.
- In Scheduler, 'updatePhysicalPlan' optionally have compelted an ON_HOLD task if 'taskInfo' is not null. This PR adds Scheduler#completeHeldTask for this operation.

**Tests for the changes:**
- Existing tasks should work.

**Other comments:**
- N/A

resolves [NEMO-175](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-175)

4 months ago[NEMO-172] Implement one partition per one element partitioner (#85)
Sanha Lee [Wed, 8 Aug 2018 02:38:40 +0000 (11:38 +0900)] 
[NEMO-172] Implement one partition per one element partitioner (#85)

JIRA: [NEMO-172: Implement one partition per one element partitioner](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-172)

**Major changes:**
- Implement `DedicatedKeyPerElementPartitioner` which assigns a dedicated key for each element
- Flush partitions which have dedicated key to disk in large shuffle optimization
- Remove redundant (de)compression before and after the vertex having `RelayTransform` in large shuffle optimization

**Minor changes to note:**
- `None` value for (de)compression is added
- `Block#commitPartitions` method is added to commit all un-committed partitions

**Tests for the changes:**
- `BlockTest` is implemented
- Existing IT cases running large shuffle optimization also cover this change

**Other comments:**
- N/A

resolves [NEMO-172](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-172)

4 months ago[NEMO-138] Rule-based policy (#88)
Won Wook SONG [Tue, 7 Aug 2018 21:58:16 +0000 (06:58 +0900)] 
[NEMO-138] Rule-based policy (#88)

JIRA: [NEMO-138: Rule-based policy](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-138)

**Major changes:**
- Adds `ConditionalPass` and `PassCondition` abstract classes, and makes existing passes extend and use the classes.
- Supports registration of the conditions in the PolicyBuilder

**Minor changes to note:**
- Renaming of CompiletimePass to CompileTimePass, and RuntimePass to RunTimePass.
- Miscellaneous code cleanups regarding tests
- Some grammatical fixes for the comments

**Tests for the changes:**
- ITCase for the `ConditionalLargeShufflePass`.

**Other comments:**
- N/A

resolves [NEMO-138](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-138)

4 months ago[NEMO-51] Intermediate data location aware scheduling (#86)
Sanha Lee [Tue, 7 Aug 2018 13:14:04 +0000 (22:14 +0900)] 
[NEMO-51] Intermediate data location aware scheduling (#86)

JIRA: [NEMO-51: Intermediate data location aware scheduling](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-51)

**Major changes:**
- Implement intermediate data location aware scheduling

**Minor changes to note:**
- N/A.

**Tests for the changes:**
- Existing integration tests which testing large shuffle optimization cover this change.

**Other comments:**
- N/A.

resolves [NEMO-51](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-51)

4 months ago[NEMO-81] Support the Beam 'Partition' transform (#90)
Seonghyun Park [Tue, 7 Aug 2018 09:55:28 +0000 (18:55 +0900)] 
[NEMO-81] Support the Beam 'Partition' transform (#90)

JIRA: [NEMO-81: Support the Beam 'Partition' transform](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-81)

**Major changes:**
- Supports Beam partition transform

**Minor changes to note:**
- Match coder string to determine whether or not to return Void.TYPE to children stages

**Tests for the changes:**
- Added PerPercentileAverageITCase

**Other comments:**
- I've left some comments regarding Beam VoidCoder to ParentDataFetcher

resolves [NEMO-81](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-81)

4 months ago [NEMO-151] Add OutputWriters for addtional tagged outputs (#87)
Seonghyun Park [Tue, 7 Aug 2018 06:06:56 +0000 (15:06 +0900)] 
 [NEMO-151] Add OutputWriters for addtional tagged outputs (#87)

JIRA: [NEMO-151: Add OutputWriters for addtional tagged outputs](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-151)

**Major changes:**
- Now AdditionalOutputTagProperty is edge execution property rather than vertex execution property.
- Support inter-task writes for additional tagged outputs.

**Minor changes to note:**
- Added some comments regarding VertexHarness.
- Fix a trivial bug in TaskExecutor#handleDataFetchers when fetching from multiple parents.

**Tests for the changes:**
- Add integration test for PartitionWordsByLengthITCase with Large shuffle policy

**Other comments:**
- N/A

resolves [NEMO-151](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-151)

4 months ago[NEMO-171] Fix confusing ITCase input/output file names (#84)
John Yang [Mon, 6 Aug 2018 05:24:19 +0000 (14:24 +0900)] 
[NEMO-171] Fix confusing ITCase input/output file names (#84)

JIRA: NEMO-171: Fix confusing ITCase input/output file names

Major changes:
* Input file names: sample_input_xx => test_input_xx
* Test output file names: sample_output_xx => test_output_xx
* Expected output file names: test_output_xx => expected_output_xx

Minor changes to note:
N/A

Tests for the changes:
N/A (No new feature)

Other comments:
N/A

resolves NEMO-171