[jira] [Created] (FLINK-2262) ParameterTool API misnamed function

2015-06-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2262:
-

 Summary: ParameterTool API misnamed function
 Key: FLINK-2262
 URL: https://issues.apache.org/jira/browse/FLINK-2262
 Project: Flink
  Issue Type: Bug
  Components: Java API
Affects Versions: 0.9, master
Reporter: Greg Hogan


In org.apache.flink.api.java.utils.ParameterTool the function to read an 
Integer with a default value is named getLong.

public int getLong(String key, int defaultValue) { ...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2545) NegativeArraySizeException while creating hash table bloom filters

2015-08-18 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2545:
-

 Summary: NegativeArraySizeException while creating hash table 
bloom filters
 Key: FLINK-2545
 URL: https://issues.apache.org/jira/browse/FLINK-2545
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Affects Versions: master
Reporter: Greg Hogan


The following exception occurred a second time when I immediately re-ran my 
application, though after recompiling and restarting Flink the subsequent 
execution ran without error.

java.lang.Exception: The data preparation for task '...' , caused an error: null
at 
org.apache.flink.runtime.operators.RegularPactTask.run(RegularPactTask.java:465)
at 
org.apache.flink.runtime.operators.RegularPactTask.invoke(RegularPactTask.java:354)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:581)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NegativeArraySizeException
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.buildBloomFilterForBucket(MutableHashTable.java:1160)
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.buildBloomFilterForBucketsInPartition(MutableHashTable.java:1143)
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.spillPartition(MutableHashTable.java:1117)
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.insertBucketEntry(MutableHashTable.java:946)
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.insertIntoTable(MutableHashTable.java:868)
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.buildInitialTable(MutableHashTable.java:692)
at 
org.apache.flink.runtime.operators.hash.MutableHashTable.open(MutableHashTable.java:455)
at 
org.apache.flink.runtime.operators.hash.ReusingBuildSecondHashMatchIterator.open(ReusingBuildSecondHashMatchIterator.java:93)
at 
org.apache.flink.runtime.operators.JoinDriver.prepare(JoinDriver.java:195)
at 
org.apache.flink.runtime.operators.RegularPactTask.run(RegularPactTask.java:459)
... 3 more




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2569) CsvReader support for ValueTypes

2015-08-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2569:
-

 Summary: CsvReader support for ValueTypes
 Key: FLINK-2569
 URL: https://issues.apache.org/jira/browse/FLINK-2569
 Project: Flink
  Issue Type: Improvement
  Components: Java API
Affects Versions: 0.9
Reporter: Greg Hogan
Priority: Minor


From the Flink Programming Guide section on Data Sources: readCsvFile(path) / 
CsvInputFormat - Parses files of comma (or another char) delimited fields. 
Returns a DataSet of tuples or POJOs. Supports the basic java types and their 
Value counterparts as field types.

When specifying a ValueType, i.e.

CsvReader csvReader = env.readCsvFile(filename);
csvReader.types(IntValue.class, IntValue.class);

the following error occurs as BasicTypeInfo is specifically requested in 
CsvReader.types(...).

org.apache.flink.client.program.ProgramInvocationException: The main method 
caused an error.
at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:452)
at 
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:353)
at org.apache.flink.client.program.Client.run(Client.java:327)
at 
org.apache.flink.client.CliFrontend.executeProgram(CliFrontend.java:608)
at org.apache.flink.client.CliFrontend.run(CliFrontend.java:296)
at 
org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:927)
at org.apache.flink.client.CliFrontend.main(CliFrontend.java:977)
Caused by: java.lang.IllegalArgumentException: Type at position 0 is not a 
basic type.
at 
org.apache.flink.api.java.typeutils.TupleTypeInfo.getBasicTupleTypeInfo(TupleTypeInfo.java:177)
at org.apache.flink.api.java.io.CsvReader.types(CsvReader.java:393)
at Driver.main(Driver.java:105)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:437)
... 6 more




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2909) Gelly Graph Generators

2015-10-23 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2909:
-

 Summary: Gelly Graph Generators
 Key: FLINK-2909
 URL: https://issues.apache.org/jira/browse/FLINK-2909
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Include a selection of graph generators in Gelly. Generated graphs will be 
useful for performing scalability, stress, and regression testing as well as 
benchmarking and comparing algorithms, for both Flink users and developers. 
Generated data is infinitely scalable yet described by a few simple parameters 
and can often substitute for user data or sharing large files when reporting 
issues.

There are at multiple categories of graphs as documented by 
[NetworkX|https://networkx.github.io/documentation/latest/reference/generators.html]
 and elsewhere.

Graphs may be a well-defined, i.e. the [Chvátal 
graph|https://en.wikipedia.org/wiki/Chv%C3%A1tal_graph]. These may be 
sufficiently small to populate locally.

Graphs may be scalable, i.e. complete and star graphs. These should use Flink's 
distributed parallelism.

Graphs may be stochastic, i.e. [RMat 
graphs|http://snap.stanford.edu/class/cs224w-readings/chakrabarti04rmat.pdf] . 
A key consideration is that the graphs should source randomness from a seedable 
PRNG and generate the same Graph regardless of parallelism.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2908) Web interface redraw web plan when browser resized

2015-10-23 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2908:
-

 Summary: Web interface redraw web plan when browser resized
 Key: FLINK-2908
 URL: https://issues.apache.org/jira/browse/FLINK-2908
 Project: Flink
  Issue Type: Improvement
  Components: Webfrontend
Affects Versions: 0.10
Reporter: Greg Hogan
Priority: Trivial


The job plan graph does not resize when the user expands the browser window 
(only a change in width matters).

To reproduce: 1) open the plan tab of a running or completed job in a 
non-maximized browser window (not full width), 2) maximize the browser window.

Workaround: refresh the web page.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2907) Bloom filter for Join

2015-10-23 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2907:
-

 Summary: Bloom filter for Join
 Key: FLINK-2907
 URL: https://issues.apache.org/jira/browse/FLINK-2907
 Project: Flink
  Issue Type: New Feature
  Components: Java API, Scala API
Affects Versions: 1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


A bloom filter can be a chainable operation for probe side Join elements. An 
element not matched by the bloom filter will not be serialized, shipped, 
deserialized, and processed.

Generating the bloom filter is a chainable operation over hash side elements. 
The bloom filter created on each TaskManager must be the same size to allow 
combining by xor. The most efficient means to distribute the bloom filter is to 
assign each TaskManager an equal partition that it will receive from all other 
TaskManagers. This will be broadcast once all local elements (by hashing) and 
remote partitions (by xor) have been processed into that part of the bloom 
filter.

An example with numbers: triangle listing/counting joining 2B edges on 149B 
two-paths resulting in 21B triangles (this is using the optimal algorithm). At 
8 bits per element the bloom filter will have a false-positive rate of ~2% and 
require a 2 GB bloom filter (stored once and shared per TaskManager). Each 
TaskManager both sends and receives data equivalent to the size of the bloom 
filter (minus the local partition, the size of which trends towards zero as the 
number of TaskManagers increases). The number of matched elements is 21B (true 
positive) + ~0.02*(149B-21B) = 23.5B, a reduction of 84% or 1.5 TB (at 12 bytes 
per element). With 4 TaskManagers only 12 GB of bloom filter would be 
transmitted, a savings of 99.2%.

Key issues are determining the size of the bloom filter (dependent on the count 
of hash side elements, the available memory segments, and the error rate) and 
whether this can be integrated with Join or must be a separate operator. This 
also depends on dynamic memory allocation as spilling to disk would perform the 
serialization, write, read, and deserialization we are looking to avoid.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2903) Web interface numeric localization

2015-10-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2903:
-

 Summary: Web interface numeric localization
 Key: FLINK-2903
 URL: https://issues.apache.org/jira/browse/FLINK-2903
 Project: Flink
  Issue Type: Improvement
  Components: Webfrontend
Affects Versions: 0.10
Reporter: Greg Hogan
Priority: Minor


It would be nice to localize numbers in the web interface as 10+ digits is 
difficult to parse without separators.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2902) Web interface sort tasks newest first

2015-10-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2902:
-

 Summary: Web interface sort tasks newest first
 Key: FLINK-2902
 URL: https://issues.apache.org/jira/browse/FLINK-2902
 Project: Flink
  Issue Type: Improvement
  Components: Webfrontend
Affects Versions: 0.10
Reporter: Greg Hogan
Priority: Minor


Sort completed jobs in reverse order so the most recently finished (?) are at 
the top of the list. With a long list of completed jobs the user must scroll 
down to view recently completed jobs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2897) Use distinct initial indices for OutputEmitter round-robin

2015-10-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2897:
-

 Summary: Use distinct initial indices for OutputEmitter round-robin
 Key: FLINK-2897
 URL: https://issues.apache.org/jira/browse/FLINK-2897
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 0.10
Reporter: Greg Hogan
Assignee: Greg Hogan


Currently, when performing a round-robin partitioning each task will 
sequentially partition starting with partition "1". This is fine in the usual 
case where the number of partitioned objects greatly exceeds the number of 
channels. However, in the case where the number of objects is relatively few 
(each, perhaps, requiring a large computation or access to an external system) 
it would be much better to begin partitioning at distinct indices (the task 
index).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2895) Duplicate immutable object creation

2015-10-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2895:
-

 Summary: Duplicate immutable object creation
 Key: FLINK-2895
 URL: https://issues.apache.org/jira/browse/FLINK-2895
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 0.10
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Inverse of FLINK-2724. When object reuse is disabled a few operators are 
creating and passing objects locally. In the case of immutable objects these 
will be discarded by the {{TypeSerializer}} when deserializing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2898) Invert Travis CI build order

2015-10-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2898:
-

 Summary: Invert Travis CI build order
 Key: FLINK-2898
 URL: https://issues.apache.org/jira/browse/FLINK-2898
 Project: Flink
  Issue Type: Improvement
  Components: Build System
Affects Versions: 0.10
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial


The Travis CI builds generally perform fastest to slowest. When running 
additional, concurrent Travis CI builds it would be preferable to have the 
slowest tasks begin first.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2834) Global round-robin for temporary directories

2015-10-08 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2834:
-

 Summary: Global round-robin for temporary directories
 Key: FLINK-2834
 URL: https://issues.apache.org/jira/browse/FLINK-2834
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 0.10
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Currently each {{FileIOChannel}} performs a local round-robin among temporary 
directories. Initially every writer will be concurrently spilling to the same 
first directory, then the same second directory, etc. Even when evenly 
dispersed this effect will naturally occur due to the bunching effect.

One solution is to use a global counter when selecting the temporary path.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2865) OutOfMemory error (Direct buffer memory)

2015-10-18 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2865:
-

 Summary: OutOfMemory error (Direct buffer memory)
 Key: FLINK-2865
 URL: https://issues.apache.org/jira/browse/FLINK-2865
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Affects Versions: 0.10
Reporter: Greg Hogan


I see the following TaskManager error when using off-heap memory and a 
relatively high number of network buffers. Setting 
{{taskmanager.memory.off-heap: false}} or halving the number of network buffers 
(6 GB instead of 12 GB) results in a successful start.

{noformat}
18:17:25,912 WARN  org.apache.hadoop.util.NativeCodeLoader  
 - Unable to load native-hadoop library for your platform... using builtin-java 
classes where applicable
18:17:26,024 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - 

18:17:26,024 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  Starting TaskManager (Version: 0.10-SNAPSHOT, Rev:d047ddb, Date:18.10.2015 
@ 08:54:59 UTC)
18:17:26,025 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  Current user: ec2-user
18:17:26,025 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  JVM: Java HotSpot(TM) 64-Bit Server VM - Oracle Corporation - 1.8/25.60-b23
18:17:26,025 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  Maximum heap size: 5104 MiBytes
18:17:26,025 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  JAVA_HOME: /usr/java/latest
18:17:26,026 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  Hadoop version: 2.3.0
18:17:26,026 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  JVM Options:
18:17:26,026 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Xms5325M
18:17:26,026 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Xmx5325M
18:17:26,026 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -XX:MaxDirectMemorySize=53248M
18:17:26,026 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - 
-Dlog.file=/home/ec2-user/flink/log/flink-ec2-user-taskmanager-0-ip-10-0-98-3.log
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Dlog4j.configuration=file:/home/ec2-user/flink/conf/log4j.properties
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Dlogback.configurationFile=file:/home/ec2-user/flink/conf/logback.xml
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 -  Program Arguments:
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - --configDir
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - /home/ec2-user/flink/conf
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - --streamingMode
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - batch
18:17:26,027 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - 

18:17:26,033 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Maximum number of open file descriptors is 1048576
18:17:26,051 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Loading configuration from /home/ec2-user/flink/conf
18:17:26,079 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Security is not enabled. Starting non-authenticated TaskManager.
18:17:26,094 INFO  org.apache.flink.runtime.util.LeaderRetrievalUtils   
 - Trying to select the network interface and address to use by connecting to 
the leading JobManager.
18:17:26,094 INFO  org.apache.flink.runtime.util.LeaderRetrievalUtils   
 - TaskManager will try to connect for 1 milliseconds before falling back 
to heuristics
18:17:26,097 INFO  org.apache.flink.runtime.net.ConnectionUtils 
 - Retrieved new target address /127.0.0.1:6123.
18:17:26,461 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - TaskManager will use hostname/address 'ip-10-0-98-3' (10.0.98.3) for 
communication.
18:17:26,462 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Starting TaskManager in streaming mode BATCH_ONLY
18:17:26,462 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Starting TaskManager actor system at 10.0.98.3:0
18:17:26,735 INFO  akka.event.slf4j.Slf4jLogger 
 - Slf4jLogger started
18:17:26,767 INFO  Remoting 
 - Starting remoting
18:17:26,877 INFO  Remoting   

[jira] [Created] (FLINK-2876) Minutiae

2015-10-20 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2876:
-

 Summary: Minutiae
 Key: FLINK-2876
 URL: https://issues.apache.org/jira/browse/FLINK-2876
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 0.10
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial


A collection of small documentation and grammar updates.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2881) WebRuntimeMonitor overly restrictive file patterns

2015-10-20 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2881:
-

 Summary: WebRuntimeMonitor overly restrictive file patterns
 Key: FLINK-2881
 URL: https://issues.apache.org/jira/browse/FLINK-2881
 Project: Flink
  Issue Type: Bug
  Components: Webfrontend
Affects Versions: 0.10
Reporter: Greg Hogan
Priority: Blocker


{{WebRuntimeMonitor}} verifies the log and stdout directory by checking that 
files matching the patterns {noformat}.*jobmanager[^\\.]*\\.log{noformat} and 
{noformat}.*jobmanager[^\\.]*\\.out{noformat} were created. The filenames use 
the system hostname which can contain periods, which are excluded by the file 
pattern and prevent the web monitor from starting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2882) Improve performance of string conversions

2015-10-20 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2882:
-

 Summary: Improve performance of string conversions
 Key: FLINK-2882
 URL: https://issues.apache.org/jira/browse/FLINK-2882
 Project: Flink
  Issue Type: Improvement
  Components: Core
Affects Versions: 0.10
Reporter: Greg Hogan
Assignee: Greg Hogan


{{AbstractID.toString()}} and {{AbstractID.toShortString()}} call 
{{StringUtils.byteToHexString(...)}} which uses a StringBuilder to convert from 
binary to hex. This is a hotspot when scaling the number of workers.

While testing on my single node with parallelism=512 jvisualvm reports 600,000 
calls taking 13.4 seconds. Improving {{StringUtils.byteToHexString(...)}} 
reduces the time to 1.3 seconds. Additionally memoizing the string values in 
{{AbstractID}} reduce the time to 350 ms and the number of calls to 
{{StringUtils.byteToHexString(...)}} to ~1000.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2625) Configuration not passed to JobGraphGenerator

2015-09-05 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2625:
-

 Summary: Configuration not passed to JobGraphGenerator
 Key: FLINK-2625
 URL: https://issues.apache.org/jira/browse/FLINK-2625
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime, Local Runtime
Affects Versions: master
Reporter: Greg Hogan
Priority: Minor


LocalExecutor and Client fail to pass their Configuration to JobGraphGenerator, 
so the following parameters were ignored:

  taskmanager.runtime.max-fan
  taskmanager.runtime.sort-spilling-threshold



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2655) Minimize intermediate merging of spilled buffers

2015-09-10 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2655:
-

 Summary: Minimize intermediate merging of spilled buffers
 Key: FLINK-2655
 URL: https://issues.apache.org/jira/browse/FLINK-2655
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: master
Reporter: Greg Hogan


If the number of spilled buffers exceeds taskmanager.runtime.max-fan then the 
number of files must reduced with an intermediate merge by reading, merging, 
and spilling into a single, larger file.

The current implementation performs an intermediate merge on all files. An 
optimal implementation minimizes the amount of merged data by performing 
partial merges first.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2698) Add trailing newline to flink-conf.yaml

2015-09-17 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2698:
-

 Summary: Add trailing newline to flink-conf.yaml
 Key: FLINK-2698
 URL: https://issues.apache.org/jira/browse/FLINK-2698
 Project: Flink
  Issue Type: Improvement
Affects Versions: master
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


The distributed flink-conf.yaml does not contain a trailing newline. This 
interferes with 
[bdutil|https://github.com/GoogleCloudPlatform/bdutil/blob/master/extensions/flink/install_flink.sh#L64]
 which appends extra/override configuration parameters with a heredoc.

There are many other files without trailing newlines, but this looks to be the 
only detrimental effect.

{code}
for i in $(find * -type f) ; do if diff /dev/null "$i" | tail -1 | grep '^\\ No 
newline' > /dev/null; then  echo $i; fi; done
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2668) ProjectOperator method to close projection

2015-09-14 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2668:
-

 Summary: ProjectOperator method to close projection
 Key: FLINK-2668
 URL: https://issues.apache.org/jira/browse/FLINK-2668
 Project: Flink
  Issue Type: Improvement
  Components: Java API
Affects Versions: master
Reporter: Greg Hogan
Priority: Minor


I have come across an issue in my code where I called 
{noformat}project(...){noformat} on a DataSet which was already a 
{noformat}ProjectOperator{noformat}. Instead of reducing the number of fields 
from 2 to 1 this instead increased the number of fields from 2 to 3 resulting 
in {noformat}org.apache.flink.api.common.functions.InvalidTypesException: Input 
mismatch: Tuple arity '3' expected but was '1'.{noformat} when processing the 
next operator.

This can be resolved by adding an optional explicit call to conclude the 
projection, perhaps {noformat}ProjectOperator.closeProjection(){noformat}. Can 
this be done without creating a new no-op operator?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2820) Configuration not passed to JobGraphGenerator

2015-10-05 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2820:
-

 Summary: Configuration not passed to JobGraphGenerator
 Key: FLINK-2820
 URL: https://issues.apache.org/jira/browse/FLINK-2820
 Project: Flink
  Issue Type: Bug
  Components: Command-line client
Affects Versions: master
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


This was previously reported as FLINK-2625 (commit 
8a84937215ea575fa94a00d11c2517902d252756). The Client class was concurrently 
refactored with FLINK-2097 (commit 71bf2f570861daae53b24bfcf1d06aedb85311b9).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2716) Checksum method for DataSet and Graph

2015-09-20 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2716:
-

 Summary: Checksum method for DataSet and Graph
 Key: FLINK-2716
 URL: https://issues.apache.org/jira/browse/FLINK-2716
 Project: Flink
  Issue Type: Improvement
  Components: Gelly, Java API, Scala API
Affects Versions: master
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


{{DataSet.count()}}, {{Graph.numberOfVertices()}}, and 
{{Graph.numberOfEdges()}} provide measures of the number of distributed data 
elements. New {{DataSet.checksum()}} and {{Graph.checksum()}} methods will 
summarize the content of data elements and support algorithm validation, 
integration testing, and benchmarking.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-2723) CopyableValue method to copy into new instance

2015-09-21 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-2723:
-

 Summary: CopyableValue method to copy into new instance
 Key: FLINK-2723
 URL: https://issues.apache.org/jira/browse/FLINK-2723
 Project: Flink
  Issue Type: New Feature
  Components: Core
Affects Versions: master
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Provide a method for generic user-defined functions to clone a 
{{CopyableValue}}. A common use case is a {{GroupReduceFunction}} that needs to 
store multiple objects. With object reuse we need to make a deep copy and with 
type erasure we cannot call new.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3160) Aggregate operator statistics by TaskManager

2015-12-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3160:
-

 Summary: Aggregate operator statistics by TaskManager
 Key: FLINK-3160
 URL: https://issues.apache.org/jira/browse/FLINK-3160
 Project: Flink
  Issue Type: Improvement
  Components: Webfrontend
Affects Versions: 1.0.0
Reporter: Greg Hogan


The web client job info page presents a table of the following per task 
statistics: start time, end time, duration, bytes received, records received, 
bytes sent, records sent, attempt, host, status.

Flink supports clusters with thousands of slots and a job setting a high 
parallelism renders this job info page unwieldy and difficult to analyze in 
real-time.

It would be helpful to optionally or automatically aggregate statistics by 
TaskManager. These rows could then be expanded to reveal the current per task 
statistics.

Start time, end time, duration, and attempt are not applicable to a TaskManager 
since new tasks for repeated attempts may be started. Bytes received, records 
received, bytes sent, and records sent are summed. Any throughput metrics can 
be averaged over the total task time or time window. Status could reference the 
number of running tasks on the TaskManager or an idle state.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3161) Externalize cluster start-up and tear-down when available

2015-12-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3161:
-

 Summary: Externalize cluster start-up and tear-down when available
 Key: FLINK-3161
 URL: https://issues.apache.org/jira/browse/FLINK-3161
 Project: Flink
  Issue Type: Improvement
  Components: Start-Stop Scripts
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


I have been using pdsh, pdcp, and rpdcp to both distribute compiled Flink and 
to start and stop the TaskManagers. The current shell script initializes 
TaskManagers one-at-a-time. This is trivial to background but would be 
unthrottled.

>From pdsh's archived homepage: "uses a sliding window of threads to execute 
>remote commands, conserving socket resources while allowing some connections 
>to timeout if needed".

What other tools could be supported when available?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3162) Configure number of TaskManager slots as ratio of available processors

2015-12-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3162:
-

 Summary: Configure number of TaskManager slots as ratio of 
available processors
 Key: FLINK-3162
 URL: https://issues.apache.org/jira/browse/FLINK-3162
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan
Priority: Minor


The number of TaskManager slots is currently only configurable by explicitly 
setting {{taskmanager.numberOfTaskSlots}}. Make this configurable by a ratio of 
the number of available processors (for example, "2", for hyperthreading). This 
can work in the same way as {{taskmanager.memory.size}} and 
{{taskmanager.memory.fraction}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3164) Spread out scheduling strategy

2015-12-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3164:
-

 Summary: Spread out scheduling strategy
 Key: FLINK-3164
 URL: https://issues.apache.org/jira/browse/FLINK-3164
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime, Java API, Scala API
Affects Versions: 1.0.0
Reporter: Greg Hogan


The size of a Flink cluster is bounded by the amount of memory allocated for 
network buffers. The all-to-all distribution of data during a network shuffle 
means that doubling the number of TaskManager slots quadruples the required 
number of network buffers.

A Flink job can be configured to execute operators with lower parallelism which 
reduces the number of network buffers used across the cluster. Since the Flink 
scheduler clusters tasks the number of network buffers to be configured cannot 
be reduced.

For example, if each TaskManager has 32 slots and the cluster has 32 
TaskManagers the maximum parallelism can be set to 1024. If the preceding 
operator has a parallelism of 32 then the TaskManager fan-out is between 1*1024 
(tasks evenly distributed) and 32*1024 (executed on a single TaskManager).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3163) Configure Flink for NUMA systems

2015-12-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3163:
-

 Summary: Configure Flink for NUMA systems
 Key: FLINK-3163
 URL: https://issues.apache.org/jira/browse/FLINK-3163
 Project: Flink
  Issue Type: Improvement
  Components: Start-Stop Scripts
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan


On NUMA systems Flink can be pinned to a single physical processor ("node") 
using {{numactl --membind=$node --cpunodebind=$node }}. Commonly 
available NUMA systems include the largest AWS and Google Compute instances.

For example, on an AWS c4.8xlarge system with 36 hyperthreads the user could 
configure a single TaskManager with 36 slots or have Flink create two 
TaskManagers bound to each of the NUMA nodes, each with 18 slots.

There may be some extra overhead in transferring network buffers between 
TaskManagers on the same system, though the fraction of data shuffled in this 
manner decreases with the size of the cluster. The performance improvement from 
only accessing local memory looks to be significant though difficult to 
benchmark.

The JobManagers may fit into NUMA nodes rather than requiring full systems.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3206) Heap size for non-pre-allocated off-heap memory

2016-01-06 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3206:
-

 Summary: Heap size for non-pre-allocated off-heap memory
 Key: FLINK-3206
 URL: https://issues.apache.org/jira/browse/FLINK-3206
 Project: Flink
  Issue Type: Bug
  Components: Start-Stop Scripts
Affects Versions: 1.0.0
Reporter: Greg Hogan


In {{taskmanager.sh}} the heap size is adjusted for off-heap memory only with 
pre-allocation set to true. In {{TaskManager.scala}} the computation is 
reversed to compute the {{directMemorySize}}. The effect is the JVM heap 
settings are too high and the assumed size of direct memory is also too high.

{noformat}
taskmanager.memory.fraction: 0.9
taskmanager.memory.off-heap: true
taskmanager.heap.mb: 18000
{noformat}

With {{taskmanager.memory.preallocate: false}}
{noformat}
13:44:29,015 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Xms18000M
13:44:29,015 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Xmx18000M
13:44:30,591 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Limiting managed memory to 0.9 of the maximum memory size (161999 MB), 
memory will be allocated lazily.
{noformat}

With {{taskmanager.memory.preallocate: true}}
{noformat}
13:53:44,127 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Xms1800M
13:53:44,127 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - -Xmx1800M
13:53:45,743 INFO  org.apache.flink.runtime.taskmanager.TaskManager 
 - Using 0.9 of the maximum memory size for managed off-heap memory (15524 MB).
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3980) Remove ExecutionConfig.PARALLELISM_UNKNOWN

2016-05-26 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3980:
-

 Summary: Remove ExecutionConfig.PARALLELISM_UNKNOWN
 Key: FLINK-3980
 URL: https://issues.apache.org/jira/browse/FLINK-3980
 Project: Flink
  Issue Type: Improvement
  Components: Core
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


FLINK-3589 added {{ExecutionConfig.PARALLELISM_DEFAULT}} and 
{{ExecutionConfig.PARALLELISM_UNKNOWN}}. The former gave a name to the contant 
{{-1}}  and the latter was used as a default no-op when setting the parallelism.

It's nice to keep these intents separate but given the current implementation 
of Operator parallelism users can get by using {{PARALLELISM_DEFAULT}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3978) Add contains methods to RuntimeContext

2016-05-26 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3978:
-

 Summary: Add contains methods to RuntimeContext
 Key: FLINK-3978
 URL: https://issues.apache.org/jira/browse/FLINK-3978
 Project: Flink
  Issue Type: Improvement
  Components: Core
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


The javadocs for `RuntimeContext` state that `getAccumulator` "throws an 
exception if the accumulator does not exist or if the accumulator exists, but 
with different type", although `AbstractRuntimeUDFContext` does not throw an 
exception but will return null.

The javadocs for `getBroadcastVariable` do not mention throwing an exception. 
Currently the only way to handle a broadcast variable that that may or may not 
exist is to catch and ignore the exception. Adding a  
`containsBroadcastVariable` method to `RuntimeContext` would make this 
explicit. Likewise, `containsAccumulator`.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4003) Use intrinsics for MathUtils logarithms

2016-06-01 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4003:
-

 Summary: Use intrinsics for MathUtils logarithms
 Key: FLINK-4003
 URL: https://issues.apache.org/jira/browse/FLINK-4003
 Project: Flink
  Issue Type: Improvement
  Components: Core
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial
 Fix For: 1.1.0


{{MathUtils.log2floor}} and {{MathUtils.log2strict}} use naive loops which have 
efficient implementations in {{Integer}} that are commonly implemented as 
intrinsics [0].

[0]: 
http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/tip/src/share/vm/classfile/vmSymbols.hpp#l680



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3997) PRNG Skip-ahead

2016-05-31 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3997:
-

 Summary: PRNG Skip-ahead
 Key: FLINK-3997
 URL: https://issues.apache.org/jira/browse/FLINK-3997
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


The current sources of randomness for Gelly Graph Generators use fixed-size 
blocks of work which include an initial seed. There are two issues with this 
approach. First, the size of the collection of blocks can exceed the Akka limit 
and cause the job to silently fail. Second, as the block seeds are randomly 
chosen, the likelihood of blocks overlapping and producing the same sequence 
increases with the size of the graph.

The random generators will be reimplemented using {{SplittableIterator}} and 
PRNGs supporting skip-ahead.

This ticket will implement skip-ahead with LCGs [0]. Future work may add 
support for xorshift generators ([1], section 5 "Jumping Ahead").

[0] 
https://mit-crpg.github.io/openmc/methods/random_numbers.html#skip-ahead-capability
[1] https://arxiv.org/pdf/1404.0390.pdf



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4102) Test failure with checkpoint barriers

2016-06-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4102:
-

 Summary: Test failure with checkpoint barriers
 Key: FLINK-4102
 URL: https://issues.apache.org/jira/browse/FLINK-4102
 Project: Flink
  Issue Type: Bug
  Components: Streaming
Affects Versions: 1.1.0
Reporter: Greg Hogan
Priority: Critical
 Fix For: 1.1.0


Failed tests:

TwoInputStreamTaskTest.testCheckpointBarriers:229 Output was not correct.: 
array lengths differed, expected.length=4 actual.length=5

This test was run on Travis 
(https://travis-ci.org/greghogan/flink/jobs/139481041), and I restarted this 
task not expecting Travis to reuse IDs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4105) Restructure Gelly docs

2016-06-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4105:
-

 Summary: Restructure Gelly docs
 Key: FLINK-4105
 URL: https://issues.apache.org/jira/browse/FLINK-4105
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


The Gelly documentation has grown sufficiently long to suggest dividing into 
sub-pages. Leave "Using Gelly" on the main page and link to the following 
topics as sub-pages:
* Graph API
* Iterative Graph Processing
* Library Methods
* Graph Algorithms
* Graph Generators



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4104) Restructure Gelly docs

2016-06-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4104:
-

 Summary: Restructure Gelly docs
 Key: FLINK-4104
 URL: https://issues.apache.org/jira/browse/FLINK-4104
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


The Gelly documentation has grown sufficiently long to suggest dividing into 
sub-pages. Leave "Using Gelly" on the main page and link to the following 
topics as sub-pages:
* Graph API
* Iterative Graph Processing
* Library Methods
* Graph Algorithms
* Graph Generators



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4106) Restructure Gelly docs

2016-06-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4106:
-

 Summary: Restructure Gelly docs
 Key: FLINK-4106
 URL: https://issues.apache.org/jira/browse/FLINK-4106
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


The Gelly documentation has grown sufficiently long to suggest dividing into 
sub-pages. Leave "Using Gelly" on the main page and link to the following 
topics as sub-pages:
* Graph API
* Iterative Graph Processing
* Library Methods
* Graph Algorithms
* Graph Generators



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4107) Restructure Gelly docs

2016-06-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4107:
-

 Summary: Restructure Gelly docs
 Key: FLINK-4107
 URL: https://issues.apache.org/jira/browse/FLINK-4107
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


The Gelly documentation has grown sufficiently long to suggest dividing into 
sub-pages. Leave "Using Gelly" on the main page and link to the following 
topics as sub-pages:
* Graph API
* Iterative Graph Processing
* Library Methods
* Graph Algorithms
* Graph Generators



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4117) Wait for CuratorFramework connection to be established

2016-06-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4117:
-

 Summary: Wait for CuratorFramework connection to be established
 Key: FLINK-4117
 URL: https://issues.apache.org/jira/browse/FLINK-4117
 Project: Flink
  Issue Type: Bug
  Components: State Backends, Checkpointing
Affects Versions: 1.1.0
Reporter: Greg Hogan


Received the following error when locally running {{mvn verify}}. Searching on 
the error it looks like we are not waiting for the Zookeeper connection to be 
established as this occurs asynchronously. In ZookeeperUtils.java:98 we call 
{{CuratorFramework.start()}} and we could then call 
CuratorFramework.blockUntilConnected}} with the same timeout.

{code}
Tests run: 3, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 323.326 sec <<< 
FAILURE! - in 
org.apache.flink.runtime.checkpoint.CheckpointIDCounterTest$ZooKeeperCheckpointIDCounterITCase
testConcurrentGetAndIncrement(org.apache.flink.runtime.checkpoint.CheckpointIDCounterTest$ZooKeeperCheckpointIDCounterITCase)
  Time elapsed: 266.521 sec  <<< ERROR!
java.util.concurrent.ExecutionException: 
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = 
ConnectionLoss for /flink/checkpoint-id-counter
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at 
org.apache.flink.runtime.checkpoint.CheckpointIDCounterTest.testConcurrentGetAndIncrement(CheckpointIDCounterTest.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at 
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: 
KeeperErrorCode = ConnectionLoss for /flink/checkpoint-id-counter
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155)
at 
org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:302)
at 
org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:291)
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:107)
at 
org.apache.curator.framework.imps.GetDataBuilderImpl.pathInForeground(GetDataBuilderImpl.java:288)
at 
org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:279)
at 
org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:41)
at 

[jira] [Created] (FLINK-4113) Always copy first value in ChainedAllReduceDriver

2016-06-23 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4113:
-

 Summary: Always copy first value in ChainedAllReduceDriver
 Key: FLINK-4113
 URL: https://issues.apache.org/jira/browse/FLINK-4113
 Project: Flink
  Issue Type: Bug
  Components: Local Runtime
Affects Versions: 1.1.0, 1.0.4
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Critical
 Fix For: 1.1.0, 1.0.4


{{ChainedAllReduceDriver.collect}} must copy the first record even when object 
reuse is enabled or {{base}} may later point to the same object as {{record}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3219) Implement DataSet.count using a single operator

2016-01-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3219:
-

 Summary: Implement DataSet.count using a single operator
 Key: FLINK-3219
 URL: https://issues.apache.org/jira/browse/FLINK-3219
 Project: Flink
  Issue Type: Improvement
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


{{DataSet.count}} is currently implemented using a {{FlatMapFunction}} followed 
by a {{DiscardingOutputFormat}}. As noted by [~StephanEwen] in [FLINK-2716] 
this can be done with only a {{RichOutputFormat}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3218) Merging Hadoop configurations overrides user parameters

2016-01-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3218:
-

 Summary: Merging Hadoop configurations overrides user parameters
 Key: FLINK-3218
 URL: https://issues.apache.org/jira/browse/FLINK-3218
 Project: Flink
  Issue Type: Bug
  Components: Java API
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan


The {{HadoopUtils.mergeHadoopConf}} load the default Hadoop configuration over 
the user configuration. We should only copy parameters that do not exist in the 
user configuration.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3385) Fix outer join skipping unprobed partitions

2016-02-10 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3385:
-

 Summary: Fix outer join skipping unprobed partitions
 Key: FLINK-3385
 URL: https://issues.apache.org/jira/browse/FLINK-3385
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Reporter: Greg Hogan
Priority: Critical
 Fix For: 1.0.0


{{MutableHashTable.nextRecord}} performs three steps for a build-side outer 
join:

{code}
public boolean nextRecord() throws IOException {
if (buildSideOuterJoin) {
return processProbeIter() || 
processUnmatchedBuildIter() || prepareNextPartition();
} else {
return processProbeIter() || prepareNextPartition();
}
}
{code}

{{MutableHashTable.processUnmatchedBuildIter}} eventually calls through to 
{{MutableHashTable.moveToNextBucket}} which is unable to process spilled 
partitions:

{code}
if (p.isInMemory()) {
...
} else {
return false;
}
{code}

{{MutableHashTable.prepareNextPartition}} calls 
{{HashPartition.finalizeProbePhase}} which only spills the partition (to be 
read and processed in the next instantiation of {{MutableHashTable}}) if 
probe-side records were spilled. In an equi-join this is fine but with an outer 
join the unmatched build-side records must still be retained (though no further 
probing is necessary, so could this be short-circuited when loaded by the next 
{{MutableHashTable}}?).

{code}
if (isInMemory()) {
...
}
else if (this.probeSideRecordCounter == 0) {
// partition is empty, no spilled buffers
// return the memory buffer

freeMemory.add(this.probeSideBuffer.getCurrentSegment());

// delete the spill files
this.probeSideChannel.close();
this.buildSideChannel.deleteChannel();
this.probeSideChannel.deleteChannel();
return 0;
}
else {
// flush the last probe side buffer and register this 
partition as pending
this.probeSideBuffer.close();
this.probeSideChannel.close();
spilledPartitions.add(this);
return 1;
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3340) Fix object juggling in reduce drivers

2016-02-04 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3340:
-

 Summary: Fix object juggling in reduce drivers
 Key: FLINK-3340
 URL: https://issues.apache.org/jira/browse/FLINK-3340
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Critical


{{ReduceDriver}}, {{ReduceCombineDriver}}, and {{ChainedAllReduceDriver}} are 
not properly tracking objects for reuse.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3382) Improve clarity of object reuse in ReusingMutableToRegularIteratorWrapper

2016-02-09 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3382:
-

 Summary: Improve clarity of object reuse in 
ReusingMutableToRegularIteratorWrapper
 Key: FLINK-3382
 URL: https://issues.apache.org/jira/browse/FLINK-3382
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Object reuse in {{ReusingMutableToRegularIteratorWrapper.hasNext()} can be 
clarified by creating a single object and storing the iterator's next value 
into the second reference.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3335) DataSourceTask object reuse when disabled

2016-02-04 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3335:
-

 Summary: DataSourceTask object reuse when disabled
 Key: FLINK-3335
 URL: https://issues.apache.org/jira/browse/FLINK-3335
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan


>From {{DataSourceTask.invoke()}}:

{code}
if ((returned = format.nextRecord(serializer.createInstance())) != null) {
output.collect(returned);
}
{code}

The returned value ({{returned}}) must be copied rather than creating and 
passing in a new instance. The {{InputFormat}} interface only permits the given 
object to be used and does not require a new object to be returned otherwise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3393) ExternalProcessRunner wait to finish copying error stream

2016-02-12 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3393:
-

 Summary: ExternalProcessRunner wait to finish copying error stream
 Key: FLINK-3393
 URL: https://issues.apache.org/jira/browse/FLINK-3393
 Project: Flink
  Issue Type: Bug
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial


Travis CI reported the following error, which could be caused by 
{{ExternalProcessRunner.run}} returning before the {{PipeForwarder}} has 
finished copying standard error. Resolution is for 
{{ExternalProcessRunner.run}} to join on the {{PipeForwarder}}.

{code}
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.414 sec <<< 
FAILURE! - in org.apache.flink.util.ExternalProcessRunnerTest

testFailing(org.apache.flink.util.ExternalProcessRunnerTest)  Time elapsed: 
0.405 sec  <<< FAILURE!

java.lang.AssertionError: null

at org.junit.Assert.fail(Assert.java:86)

at org.junit.Assert.assertTrue(Assert.java:41)

at org.junit.Assert.assertTrue(Assert.java:52)

at 
org.apache.flink.util.ExternalProcessRunnerTest.testFailing(ExternalProcessRunnerTest.java:75)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3395) Polishing the web UI

2016-02-12 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3395:
-

 Summary: Polishing the web UI
 Key: FLINK-3395
 URL: https://issues.apache.org/jira/browse/FLINK-3395
 Project: Flink
  Issue Type: Improvement
  Components: Webfrontend
Reporter: Greg Hogan
 Fix For: 1.0.0


On the job properties page one must select an operator from the plan. Elsewhere 
in the UI a list of operators is displayed and clicking the table or the plan 
will reveal the requested information.

A list of operators could likewise be added to the timeline page. Also, when 
selecting an operator the subtask timelines zoom out to show "000" for 
milliseconds. It would be nice to back off to seconds, minutes, etc.

The job exceptions page should display a "No exceptions" notification as done 
elsewhere for when there is nothing to display.

In the job plan page, selecting accumulators, checkpoints, or back pressure 
deselects "Plan" from the upper tab, removing the underline and emphasis.

The job plan is not redrawn when the browser window is resized.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3337) mvn test fails on flink-runtime because curator classes not found

2016-02-04 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3337:
-

 Summary: mvn test fails on flink-runtime because curator classes 
not found
 Key: FLINK-3337
 URL: https://issues.apache.org/jira/browse/FLINK-3337
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan


This has been reported before. I am running {{mvn test}} on an AWS c4.2xlarge, 
Flink HEAD (version 69f7f6d9...) and seeing the missing curator classes. For 
example,

{code}
testMultipleLeaders(org.apache.flink.runtime.leaderelection.ZooKeeperLeaderElectionTest)
  Time elapsed: 1.042 sec  <<< ERROR!
java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at 
org.apache.flink.runtime.leaderelection.ZooKeeperLeaderElectionTest.testMultipleLeaders(ZooKeeperLeaderElectionTest.java:291)
{code}

{code}
Tests in error: 
  JobManagerLeaderElectionTest.testLeaderElection:99->createJobManagerProps:166 
NoClassDefFound
  
JobManagerLeaderElectionTest.testLeaderReelection:130->createJobManagerProps:166
 NoClassDefFound
  ZooKeeperLeaderElectionTest.testEphemeralZooKeeperNodes:444 NoClassDefFound 
or...
  ZooKeeperLeaderElectionTest.testExceptionForwarding:372 NoClassDefFound 
org/ap...
  ZooKeeperLeaderElectionTest.testMultipleLeaders:291 NoClassDefFound 
org/apache...
  ZooKeeperLeaderElectionTest.testZooKeeperLeaderElectionRetrieval:94 
NoClassDefFound
  ZooKeeperLeaderElectionTest.testZooKeeperReelection:137 » NoClassDefFound 
org/...
  ZooKeeperLeaderElectionTest.testZooKeeperReelectionWithReplacement:207 
NoClassDefFound
  
ZooKeeperLeaderRetrievalTest.testConnectingAddressRetrievalWithDelayedLeaderElection:96
 NoClassDefFound
  ZooKeeperLeaderRetrievalTest.testTimeoutOfFindConnectingAddress:187 » 
NoClassDefFound
  ZooKeeperUtilTest.testZooKeeperEnsembleConnectStringConfiguration:40 
NoClassDefFound
{code}

The issue is resolved when removing the curator excludes from 
{{flink-runtime/pom.xml}}:

{code}


org.apache.curator:curator-recipes

org.apache.curator:curator-client

org.apache.curator:curator-framework

{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3467) Remove superfluous objects from DataSourceTask.invoke

2016-02-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3467:
-

 Summary: Remove superfluous objects from DataSourceTask.invoke
 Key: FLINK-3467
 URL: https://issues.apache.org/jira/browse/FLINK-3467
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


In the object reuse case we cycle between three objects. This is a vestige of 
an earlier bug fix, but does not appear to solve any issue. In the non-reusing 
case we should not be creating a new object to immediately be reused.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3469) Fix documentation for grouping keys

2016-02-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3469:
-

 Summary: Fix documentation for grouping keys
 Key: FLINK-3469
 URL: https://issues.apache.org/jira/browse/FLINK-3469
 Project: Flink
  Issue Type: Bug
  Components: Documentation
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.0.0


The transformation documentation for "Reduce on DataSet Grouped by KeySelector 
Function" uses a field expression in the Java example.

There are four ways to specify keys and only two have named examples in the 
documentation. Expand the documentation to cover all cases.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3263) Log task statistics on TaskManager

2016-01-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3263:
-

 Summary: Log task statistics on TaskManager
 Key: FLINK-3263
 URL: https://issues.apache.org/jira/browse/FLINK-3263
 Project: Flink
  Issue Type: Improvement
  Components: TaskManager
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Similar to how memory statistics can be written to the TaskMangers' log files 
by configuring {{taskmanager.debug.memory.startLogThread}} and 
{{taskmanager.debug.memory.logIntervalMs}}, it would be useful to have 
statistics written for each task within a job.

One use case is to reconstruct progress to analyze why TaskManagers take 
different amounts of time to process the same quantity of data.

I envision this being the same statistics which are displayed on the web 
frontend.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3277) Use Value types in Gelly API

2016-01-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3277:
-

 Summary: Use Value types in Gelly API
 Key: FLINK-3277
 URL: https://issues.apache.org/jira/browse/FLINK-3277
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.0.0
Reporter: Greg Hogan


This would be a breaking change so the discussion needs to happen before the 
1.0.0 release.

I think it would benefit Flink to use {{Value}} types wherever possible. The 
{{Graph}} functions {{inDegrees}}, {{outDegrees}}, and {{getDegrees}} each 
return {{DataSet>}}. Using {{Long}} creates a new heap object 
for every serialization and deserialization. The mutable {{Value}} types do not 
suffer from this issue when object reuse is enabled.

I lean towards a preference for conciseness in documentation and performance in 
examples and APIs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3262) Remove fuzzy versioning from Bower dependencies

2016-01-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3262:
-

 Summary: Remove fuzzy versioning from Bower dependencies
 Key: FLINK-3262
 URL: https://issues.apache.org/jira/browse/FLINK-3262
 Project: Flink
  Issue Type: Improvement
  Components: Webfrontend
Affects Versions: 1.00
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial


{{bower.json}} is currently defined with fuzzy versions, i.e. {{"bootstrap": 
"~3.3.5"}}, which silently pull in patch updates. When a user compiles the web 
frontend the new versions are creating changes in the compiled Javascript and 
CSS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3279) Optionally disable DistinctOperator combiner

2016-01-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3279:
-

 Summary: Optionally disable DistinctOperator combiner
 Key: FLINK-3279
 URL: https://issues.apache.org/jira/browse/FLINK-3279
 Project: Flink
  Issue Type: New Feature
  Components: DataSet API
Affects Versions: 1.0.0
Reporter: Greg Hogan
Priority: Minor


Calling {{DataSet.distinct()}} executes {{DistinctOperator.DistinctFunction}} 
which is a combinable {{RichGroupReduceFunction}}. Sometimes we know that there 
will be few duplicate records and disabling the combine would improve 
performance.

I propose adding {{public DistinctOperator setCombinable(boolean 
combinable)}} to {{DistinctOperator}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3437) Fix UI router state for job plan

2016-02-17 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3437:
-

 Summary: Fix UI router state for job plan
 Key: FLINK-3437
 URL: https://issues.apache.org/jira/browse/FLINK-3437
 Project: Flink
  Issue Type: Sub-task
  Components: Webfrontend
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


In the job plan page, selecting accumulators, checkpoints, or back pressure 
deselects "Plan" from the upper tab, removing the underline and emphasis.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3447) Package Gelly algorithms by framework

2016-02-18 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3447:
-

 Summary: Package Gelly algorithms by framework
 Key: FLINK-3447
 URL: https://issues.apache.org/jira/browse/FLINK-3447
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Currently algorithms in the Gelly library are collected in the 
{{org.apache.flink.graph.library}} package. The gather-sum-apply class names 
are prefixed by "GSA". Gelly contains multiple frameworks as named in 
FLINK-3208.

Since algorithms can be (and are) duplicated across the multiple frameworks, we 
can move the algorithms into subpackages by the name of the framework.

- vertex-centric model: {{org.apache.flink.graph.library.pregel}}
- scatter-gather model: {{org.apache.flink.graph.library.spargel}}
- gather-sum-apply model: {{org.apache.flink.graph.library.gsa}}
- native methods: {{org.apache.flink.graph.library.asm}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3453) Fix TaskManager logs exception when sampling backpressure while task completes

2016-02-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3453:
-

 Summary: Fix TaskManager logs exception when sampling backpressure 
while task completes
 Key: FLINK-3453
 URL: https://issues.apache.org/jira/browse/FLINK-3453
 Project: Flink
  Issue Type: Bug
  Components: Distributed Runtime
Affects Versions: 1.0.0
Reporter: Greg Hogan
Priority: Minor


Backpressure sampling is interrupted when a task completes. It may be best to 
create a new response class for this case.

{noformat}
java.lang.IllegalStateException: Cannot sample task 
08f138723e8174e70f5e7ddc672f8954. Task was removed after 65 sample(s).
at 
org.apache.flink.runtime.taskmanager.TaskManager.org$apache$flink$runtime$taskmanager$TaskManager$$handleStackTraceSampleMessage(TaskManager.scala:743)
at 
org.apache.flink.runtime.taskmanager.TaskManager$$anonfun$handleMessage$1.applyOrElse(TaskManager.scala:277)
at 
scala.runtime.AbstractPartialFunction$mcVL$sp.apply$mcVL$sp(AbstractPartialFunction.scala:33)
at 
scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:33)
at 
scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:25)
at 
org.apache.flink.runtime.LeaderSessionMessageFilter$$anonfun$receive$1.applyOrElse(LeaderSessionMessageFilter.scala:44)
at 
scala.runtime.AbstractPartialFunction$mcVL$sp.apply$mcVL$sp(AbstractPartialFunction.scala:33)
at 
scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:33)
at 
scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:25)
at 
org.apache.flink.runtime.LogMessages$$anon$1.apply(LogMessages.scala:33)
at 
org.apache.flink.runtime.LogMessages$$anon$1.apply(LogMessages.scala:28)
at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:118)
at 
org.apache.flink.runtime.LogMessages$$anon$1.applyOrElse(LogMessages.scala:28)
at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
at 
org.apache.flink.runtime.taskmanager.TaskManager.aroundReceive(TaskManager.scala:119)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)
at akka.dispatch.Mailbox.run(Mailbox.scala:221)
at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at 
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at 
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at 
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
2016-02-19 09:36:52,773 ERROR 
org.apache.flink.runtime.webmonitor.BackPressureStatsTracker  - Failed to 
gather stack trace sample.
java.lang.RuntimeException: Discarded
at 
org.apache.flink.runtime.webmonitor.StackTraceSampleCoordinator$PendingStackTraceSample.discard(StackTraceSampleCoordinator.java:394)
at 
org.apache.flink.runtime.webmonitor.StackTraceSampleCoordinator.cancelStackTraceSample(StackTraceSampleCoordinator.java:249)
at 
org.apache.flink.runtime.webmonitor.StackTraceSampleCoordinator$StackTraceSampleCoordinatorActor.handleMessage(StackTraceSampleCoordinator.java:462)
at 
org.apache.flink.runtime.akka.FlinkUntypedActor.handleLeaderSessionID(FlinkUntypedActor.java:97)
at 
org.apache.flink.runtime.akka.FlinkUntypedActor.onReceive(FlinkUntypedActor.java:68)
at 
akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)
at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)
at akka.dispatch.Mailbox.run(Mailbox.scala:221)
at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at 
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at 
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at 
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.IllegalStateException: Cannot sample task 
08f138723e8174e70f5e7ddc672f8954. Task was removed after 65 sample(s).
at 
org.apache.flink.runtime.taskmanager.TaskManager.org$apache$flink$runtime$taskmanager$TaskManager$$handleStackTraceSampleMessage(TaskManager.scala:743)
at 

[jira] [Created] (FLINK-3454) Add test dependencies on packaged jars

2016-02-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3454:
-

 Summary: Add test dependencies on packaged jars
 Key: FLINK-3454
 URL: https://issues.apache.org/jira/browse/FLINK-3454
 Project: Flink
  Issue Type: Bug
  Components: Scala Shell, YARN Client
Affects Versions: 1.0.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


The following test from flink-scala-shell requires that the flink-ml jar be 
compiled.

{noformat}
Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 213.66 sec <<< 
FAILURE! - in org.apache.flink.api.scala.ScalaShellITCase

testSubmissionOfExternalLibrary(org.apache.flink.api.scala.ScalaShellITCase)  
Time elapsed: 0.028 sec  <<< FAILURE!

java.lang.AssertionError: assertion failed

at scala.Predef$.assert(Predef.scala:151)

at 
org.apache.flink.api.scala.ScalaShellITCase.testSubmissionOfExternalLibrary(ScalaShellITCase.scala:169)
{noformat}

flink-yarn-tests depends on flink-dist:

{noformat}
Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.971 sec <<< 
FAILURE! - in org.apache.flink.yarn.UtilsTest

testUberjarLocator(org.apache.flink.yarn.UtilsTest)  Time elapsed: 0.803 sec  
<<< FAILURE!

java.lang.AssertionError: null

at org.junit.Assert.fail(Assert.java:86)

at org.junit.Assert.assertTrue(Assert.java:41)

at org.junit.Assert.assertNotNull(Assert.java:621)

at org.junit.Assert.assertNotNull(Assert.java:631)

at org.apache.flink.yarn.UtilsTest.testUberjarLocator(UtilsTest.java:42)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3634) Fix documentation for DataSetUtils.zipWithUniqueId()

2016-03-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3634:
-

 Summary: Fix documentation for DataSetUtils.zipWithUniqueId()
 Key: FLINK-3634
 URL: https://issues.apache.org/jira/browse/FLINK-3634
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0, 1.0.1


Under FLINK-2590 the assignment and testing of unique IDs was improved but the 
documentation looks to still reference the old implementation.

With {{parallelism=1}} there is no difference between zipWithUniqueID and 
zipWithIndex. With greater parallelism the results of zipWithUniqueID are 
dependent on the partitioning.

The documentation should demonstrate a possible result that is different from 
the incremental sequence of zipWithIndex while noting that results are 
dependent on the parallelism and partitioning.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3623) Adjust MurmurHash algorithm

2016-03-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3623:
-

 Summary: Adjust MurmurHash algorithm
 Key: FLINK-3623
 URL: https://issues.apache.org/jira/browse/FLINK-3623
 Project: Flink
  Issue Type: Improvement
  Components: Distributed Runtime
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial


Flink's MurmurHash implementation differs from the published algorithm.

>From Flink's MathUtils.java:
{code}
code *= 0xe6546b64;
{code}

The Murmur3_32 algorithm as described by 
[Wikipedia|https://en.wikipedia.org/wiki/MurmurHash]:

{code}
m ← 5
n ← 0xe6546b64
hash ← hash × m + n
{code}

and in Guava's Murmur3_32HashFunction.java:

{code}
h1 = h1 * 5 + 0xe6546b64;
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3721) Min and max accumulators

2016-04-08 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3721:
-

 Summary: Min and max accumulators
 Key: FLINK-3721
 URL: https://issues.apache.org/jira/browse/FLINK-3721
 Project: Flink
  Issue Type: New Feature
  Components: Core
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Flink already contains {{DoubleCounter}}, {{IntCounter}}, and {{LongCounter}} 
for adding numbers. This will add equivalent accumulators for storing the 
minimum and maximum double, int, and long values.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3695) ValueArray types

2016-04-04 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3695:
-

 Summary: ValueArray types
 Key: FLINK-3695
 URL: https://issues.apache.org/jira/browse/FLINK-3695
 Project: Flink
  Issue Type: New Feature
  Components: Core
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Flink provides mutable {{Value}} type implementations of Java primitives along 
with efficient serializers and comparators. It would be useful to have 
corresponding {{ValueArray}} implementations backed by primitive rather than 
object arrays, along with an {{ArrayableValue}} interface tying a {{Value}} to 
its {{ValueArray}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3845) Gelly allows duplicate vertices in Graph.addVertices

2016-04-28 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3845:
-

 Summary: Gelly allows duplicate vertices in Graph.addVertices
 Key: FLINK-3845
 URL: https://issues.apache.org/jira/browse/FLINK-3845
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan


Gelly performs a {{DataSet}} union then calls {{distinct()}} which keeps 
vertices with the same label but different values. This should be replaced with 
one of the join operators.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3853) Reduce object creation in Gelly utility mappers

2016-04-29 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3853:
-

 Summary: Reduce object creation in Gelly utility mappers
 Key: FLINK-3853
 URL: https://issues.apache.org/jira/browse/FLINK-3853
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Gelly contains a set of {{MapFunction}} between {{Vertex}} and {{Tuple2}} and 
between {{Edge}} and {{Tuple3}}. A {{Vertex}} is a {{Tuple2}} and an {{Edge}} 
is a {{Tuple3}}, and conversion in the opposite direction can be performed with 
a single object per {{MapFunction}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3965) Delegating GraphAlgorithm

2016-05-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3965:
-

 Summary: Delegating GraphAlgorithm
 Key: FLINK-3965
 URL: https://issues.apache.org/jira/browse/FLINK-3965
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Complex and related algorithms often overlap in computation of data. Two such 
examples are:
1) the local and global clustering coefficients each use a listing of triangles
2) the local clustering coefficient joins on vertex degree, and the underlying 
triangle listing annotates edge degree which uses vertex degree

We can reuse and rewrite algorithm output by creating a {{ProxyObject}} as a 
delegate for method calls to the {{DataSet}} returned by the algorithm.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3898) Adamic-Adar Similarity

2016-05-11 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3898:
-

 Summary: Adamic-Adar Similarity
 Key: FLINK-3898
 URL: https://issues.apache.org/jira/browse/FLINK-3898
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


The implementation of Adamic-Adar Similarity [0] is very close to Jaccard 
Similarity. Whereas Jaccard Similarity counts common neighbors, Adamic-Adar 
Similarity sums the inverse logarithm of the degree of common neighbors.

Consideration will be given to the computation of the inverse logarithm, in 
particular whether to pre-compute a small array of values.

[0] http://social.cs.uiuc.edu/class/cs591kgk/friendsadamic.pdf



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3906) Global Clustering Coefficient

2016-05-13 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3906:
-

 Summary: Global Clustering Coefficient
 Key: FLINK-3906
 URL: https://issues.apache.org/jira/browse/FLINK-3906
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


The global clustering coefficient measures the ratio of triplets in a graph 
which are closed (form a triangle). Scores range from 0.0 (no triangles) to 1.0 
(complete graph).

As part of this ticket the inefficient `GSATriangleCount` will be removed and a 
new analytic will be added.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3907) Directed Clustering Coefficient

2016-05-13 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3907:
-

 Summary: Directed Clustering Coefficient
 Key: FLINK-3907
 URL: https://issues.apache.org/jira/browse/FLINK-3907
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


A directed clustering coefficient algorithm can be implemented using an 
efficient triangle listing implementation which emits not only the three vertex 
IDs forming the triangle but also a bitmask indicating which edges form the 
triangle. A triangle can be formed with a minimum of three or maximum of six 
directed edges. Directed clustering coefficient can then shatter the triangles 
and emit a score of either 1 or 2 for each vertex.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3925) GraphAlgorithm to filter by maximum degree

2016-05-18 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3925:
-

 Summary: GraphAlgorithm to filter by maximum degree
 Key: FLINK-3925
 URL: https://issues.apache.org/jira/browse/FLINK-3925
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Filtering by minimum degree is K-Core which is iterative. Filtering by maximum 
degree can be performed in constant time by filtering the set of high-degree 
vertices then doing an anti-join against the original vertex set and two 
anti-joins against the original edge set.

Two reasons to remove high-degree vertices: 1) they may simply be noise in the 
input data, and 2) speedup algorithms such as Adamic-Adar and Jaccard Index 
which run quadratic in the vertex degree.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3910) New self-join operator

2016-05-13 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3910:
-

 Summary: New self-join operator
 Key: FLINK-3910
 URL: https://issues.apache.org/jira/browse/FLINK-3910
 Project: Flink
  Issue Type: New Feature
  Components: DataSet API, Java API, Scala API
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Flink currently provides inner- and outer-joins as well as cogroup and the 
non-keyed cross. {{JoinOperator}} hints at future support for semi- and 
anti-joins.

Many Gelly algorithms perform a self-join [0]. Still pending reviews, 
FLINK-3768 performs a self-join on non-skewed data in TriangleListing.java and 
FLINK-3780 performs a self-join on skewed data in JaccardSimilarity.java. A 
{{SelfJoinHint}} will select between skewed and non-skewed implementations.

The object-reuse-disabled case can be simply handled with a new {{Operator}}. 
The object-reuse-enabled case requires either {{CopyableValue}} types (as in 
the code above) or a custom driver which has access to the serializer (or 
making the serializer accessible to rich functions, and I think there be 
dragons).

If the idea of a self-join is agreeable, I'd like to work out a rough 
implementation and go from there.

[0] https://en.wikipedia.org/wiki/Join_%28SQL%29#Self-join



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3865) ExecutionConfig NullPointerException with second execution

2016-05-03 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3865:
-

 Summary: ExecutionConfig NullPointerException with second execution
 Key: FLINK-3865
 URL: https://issues.apache.org/jira/browse/FLINK-3865
 Project: Flink
  Issue Type: Bug
  Components: Core
Affects Versions: 1.1.0
Reporter: Greg Hogan
Priority: Blocker


Following {{NullPointerException}} from pr1956 rebased to master.

After the first execution (the program calls {{DataSet.count()}}) the call to 
{{ExecutionConfig.serializeUserCode}} sets {{registeredKryoTypes}} and other 
fields to null. During the second execution (creating the actual result) access 
to this field throws a {{NullPointerException}}.

[~till.rohrmann] should {{serializeUserCode}} set the fields to a new 
{{LinkedHashSet}} and leave {{globalJobParameters}} unchanged?

{code}
org.apache.flink.client.program.ProgramInvocationException: The main method 
caused an error.
at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:520)
at 
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:403)
at org.apache.flink.client.program.Client.runBlocking(Client.java:248)
at 
org.apache.flink.client.CliFrontend.executeProgramBlocking(CliFrontend.java:860)
at org.apache.flink.client.CliFrontend.run(CliFrontend.java:327)
at 
org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:1187)
at org.apache.flink.client.CliFrontend.main(CliFrontend.java:1238)
Caused by: java.lang.NullPointerException
at 
org.apache.flink.api.common.ExecutionConfig.registerKryoType(ExecutionConfig.java:625)
at 
org.apache.flink.api.java.typeutils.runtime.kryo.Serializers.recursivelyRegisterType(Serializers.java:96)
at 
org.apache.flink.api.java.typeutils.runtime.kryo.Serializers.recursivelyRegisterType(Serializers.java:66)
at 
org.apache.flink.api.java.ExecutionEnvironment$1.preVisit(ExecutionEnvironment.java:1053)
at 
org.apache.flink.api.java.ExecutionEnvironment$1.preVisit(ExecutionEnvironment.java:1046)
at 
org.apache.flink.api.common.operators.SingleInputOperator.accept(SingleInputOperator.java:198)
at 
org.apache.flink.api.common.operators.SingleInputOperator.accept(SingleInputOperator.java:199)
at 
org.apache.flink.api.common.operators.SingleInputOperator.accept(SingleInputOperator.java:199)
at 
org.apache.flink.api.common.operators.SingleInputOperator.accept(SingleInputOperator.java:199)
at 
org.apache.flink.api.common.operators.SingleInputOperator.accept(SingleInputOperator.java:199)
at 
org.apache.flink.api.common.operators.SingleInputOperator.accept(SingleInputOperator.java:199)
at 
org.apache.flink.api.common.operators.DualInputOperator.accept(DualInputOperator.java:281)
at 
org.apache.flink.api.common.operators.GenericDataSinkBase.accept(GenericDataSinkBase.java:220)
at org.apache.flink.api.common.Plan.accept(Plan.java:333)
at 
org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:1046)
at 
org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:1004)
at 
org.apache.flink.client.program.ContextEnvironment.execute(ContextEnvironment.java:58)
at 
org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:898)
at 
org.apache.flink.api.java.utils.DataSetUtils.checksumHashCode(DataSetUtils.java:350)
at org.apache.flink.graph.examples.HITS.main(HITS.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:505)
... 6 more
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3879) Native implementation of HITS algorithm

2016-05-06 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3879:
-

 Summary: Native implementation of HITS algorithm
 Key: FLINK-3879
 URL: https://issues.apache.org/jira/browse/FLINK-3879
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Hyperlink-Induced Topic Search (HITS, also "hubs and authorities") is presented 
in [0] and described in [1].

[0] http://www.cs.cornell.edu/home/kleinber/auth.pdf
[1] https://en.wikipedia.org/wiki/HITS_algorithm



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3877) Create TranslateFunction interface for Graph translators

2016-05-04 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3877:
-

 Summary: Create TranslateFunction interface for Graph translators
 Key: FLINK-3877
 URL: https://issues.apache.org/jira/browse/FLINK-3877
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


I now recall why FLINK-3771 had a {{Translator}} interface with a {{translate}} 
method taking a field for reuse: when we translate edge ID the translator must 
be called twice.

{{TranslateFunction}} will be modeled after {{MapFunction}} and 
{{RichTranslateFunction}} will be modeled after {{RichMapFunction}}.

The unit test should have caught this but I was reusing values between fields 
which did not detect that values were overwritten.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3768) Clustering Coefficient

2016-04-15 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3768:
-

 Summary: Clustering Coefficient
 Key: FLINK-3768
 URL: https://issues.apache.org/jira/browse/FLINK-3768
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


The local clustering coefficient measures the connectedness of each vertex's 
neighborhood. Values range from 0.0 (no edges between neighbors) to 1.0 
(neighborhood is a clique).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3780) Jaccard Similarity

2016-04-18 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3780:
-

 Summary: Jaccard Similarity
 Key: FLINK-3780
 URL: https://issues.apache.org/jira/browse/FLINK-3780
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Implement a Jaccard Similarity algorithm computing all non-zero similarity 
scores. This algorithm is similar to {{TriangleListing}} but instead of joining 
two-paths against an edge list we count two-paths.

{{flink-gelly-examples}} currently has {{JaccardSimilarityMeasure}} which 
relies on {{Graph.getTriplets()}} so only computes similarity scores for 
neighbors but not neighbors-of-neighbors.

This algorithm is easily modified for other similarity scores such as 
Adamic-Adar similarity where the sum of endpoint degrees is replaced by the 
degree of the middle vertex.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3789) Overload methods which trigger program execution to allow naming job

2016-04-19 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3789:
-

 Summary: Overload methods which trigger program execution to allow 
naming job
 Key: FLINK-3789
 URL: https://issues.apache.org/jira/browse/FLINK-3789
 Project: Flink
  Issue Type: Improvement
  Components: Java API
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Overload the following functions to additionally accept a job name to pass to 
{{ExecutionEnvironment.execute(String)}}.
* {{DataSet.collect()}}
* {{DataSet.count()}}
* {{DataSetUtils.checksumHashCode(DataSet)}}
* {{GraphUtils.checksumHashCode(Graph)}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3772) Graph algorithms for vertex and edge degree

2016-04-16 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3772:
-

 Summary: Graph algorithms for vertex and edge degree
 Key: FLINK-3772
 URL: https://issues.apache.org/jira/browse/FLINK-3772
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Many graph algorithms require vertices or edges to be marked with the degree. 
This ticket provides algorithms for annotating

* vertex degree for undirected graphs
* vertex out-, in-, and out- and in-degree for directed graphs
* edge source, target, and source and target degree for undirected graphs



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3799) Graph checksum should execute single job

2016-04-21 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3799:
-

 Summary: Graph checksum should execute single job
 Key: FLINK-3799
 URL: https://issues.apache.org/jira/browse/FLINK-3799
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


{{GraphUtils.checksumHashCode()}} calls {{DataSetUtils.checksumHashCode()}} for 
both the vertex and edge {{DataSet}} which each require a separate job. Rewrite 
this to only execute a single job.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-3771) Methods for translating Graphs

2016-04-16 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-3771:
-

 Summary: Methods for translating Graphs
 Key: FLINK-3771
 URL: https://issues.apache.org/jira/browse/FLINK-3771
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Provide methods for translation of the type or value of graph labels, vertex 
values, and edge values.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4217) Gelly drivers should read CSV values as strings

2016-07-14 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4217:
-

 Summary: Gelly drivers should read CSV values as strings
 Key: FLINK-4217
 URL: https://issues.apache.org/jira/browse/FLINK-4217
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


Gelly drivers ClusteringCoefficient, HITS, JaccardIndex, and TriangleListing 
parse CSV files as {{LongValue}}. This works for anonymized data sets such as 
SNAP but should be configurable as {{StringValue}} to handle the general case.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4219) Quote PDSH opts in start-cluster.sh

2016-07-14 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4219:
-

 Summary: Quote PDSH opts in start-cluster.sh
 Key: FLINK-4219
 URL: https://issues.apache.org/jira/browse/FLINK-4219
 Project: Flink
  Issue Type: Bug
  Components: Startup Shell Scripts
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Quote {{PDSH_SSH_ARGS_APPEND=$FLINK_SSH_OPTS}} in {{start-cluster.sh}} to 
prevent word splitting if the user configures multiple SSH options.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4257) Handle delegating algorithm change of class

2016-07-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4257:
-

 Summary: Handle delegating algorithm change of class
 Key: FLINK-4257
 URL: https://issues.apache.org/jira/browse/FLINK-4257
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


A class created by {{ProxyFactory}} can intercept and reinterpret method calls 
using its {{MethodHandler}}, but is restricted in that
* the type of the proxy class cannot be changed
* method return types must be honored

We have algorithms such as {{VertexDegree}} and {{TriangleListing}} that change 
return type depending on configuration, even between single and dual input 
functions. This can be problematic, e.g. in {{OperatorTranslation}} where we 
test {{dataSet instanceof SingleInputOperator}} or {{dataSet instanceof 
TwoInputOperator}}.

Even simply changing operator can be problematic, e.g. 
{{MapOperator.translateToDataFlow}} returns {{MapOperatorBase}} whereas 
{{ReduceOperator.translateToDataFlow}} returns {{SingleInputOperator}}.

I see two ways to solve these issues. By adding a simple {{NoOpOperator}} that 
is skipped over during {{OperatorTranslation}} we could wrap all algorithm 
output and always be proxying the same class.

Alternatively, making changes only within Gelly we can append a "no-op" 
pass-through {{MapFunction}} to any algorithm output which is not a 
{{SingleInputOperator}}. And {{Delegate can also walk the superclass hierarchy 
such we are always proxying {{SingleInputOperator}}.

There is one additional issue. When we call {{DataSet.output}} the delegate's 
{{MethodHandler}} must reinterpret this call to add itself to the list of sinks.

As part of this issue I will also add manual tests to Gelly for the library 
algorithms which do not have integration tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4264) New GraphMetrics driver

2016-07-25 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4264:
-

 Summary: New GraphMetrics driver
 Key: FLINK-4264
 URL: https://issues.apache.org/jira/browse/FLINK-4264
 Project: Flink
  Issue Type: New Feature
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Gelly contains a {{GraphMetrics}} example using the {{Graph}} API. This will 
add a {{GraphMetrics}} driver using {{VertexMetrics}} and {{EdgeMetrics}}. 
Example output for the 
[Friendster|https://snap.stanford.edu/data/com-Friendster.html] graph:

{noformat}
Vertex metrics:
  vertex count: 65,608,366
  edge count: 1,806,067,135
  triplet count: 720,654,964,964
  maximum degree: 5,214
  maximum triplets: 13,590,291

Edge metrics:
  vertex count: 65,608,366
  edge count: 1,806,067,135
  triangle triplet count: 82,248,653,258
  rectangle triplet count: 284,581,272,439
  triplet count: 720,654,964,964
  maximum degree: 5,214
  maximum triangle triplets: 376,278
  maximum rectangle triplets: 1,203,750
  maximum triplets: 13,590,291
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4265) Add a NoOpOperator

2016-07-25 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4265:
-

 Summary: Add a NoOpOperator
 Key: FLINK-4265
 URL: https://issues.apache.org/jira/browse/FLINK-4265
 Project: Flink
  Issue Type: New Feature
  Components: DataSet API
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


One recent feature of Gelly is algorithms which detect duplicated or similar 
computation which can be shared. My initial implementation could only reuse a 
{{DataSet}} result. Before committing to Flink this was updated to use a 
javassist {{ProxyFactory}} allowing configuration to be merged and results to 
be replaced. There were some issues, as identified in FLINK-4257. With a 
{{NoOpOperator}} we can remove the use of {{ProxyFactory}} and resolve the 
identified issues.

This ticket adds a {{NoOpOperator}} which is unwound in 
{{OperatorTranslation.translate}}. The {{NoOpOperator}} contains a {{DataSet}} 
which is accessed by a getter and setter.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4231) Switch DistinctOperator from GroupReduceFunction to ReduceFunction

2016-07-18 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4231:
-

 Summary: Switch DistinctOperator from GroupReduceFunction to 
ReduceFunction
 Key: FLINK-4231
 URL: https://issues.apache.org/jira/browse/FLINK-4231
 Project: Flink
  Issue Type: Improvement
  Components: Java API
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan


As discussed in FLINK-3279, rewriting {{DistinctOperator}} to a 
{{ReduceFunction}} rather than the current {{GroupReduceFunction}} allows the 
user to set the {{CombineHint}} and choose a hash-based, sort-based, or no 
combiner.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4129) HITSAlgorithm should test for element-wise convergence

2016-06-28 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4129:
-

 Summary: HITSAlgorithm should test for element-wise convergence
 Key: FLINK-4129
 URL: https://issues.apache.org/jira/browse/FLINK-4129
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Priority: Minor


{{HITSAlgorithm}} tests for convergence by summing the difference of each 
authority score minus the average score. This is simply comparing the sum of 
scores against the previous sum of scores which is not a good test for 
convergence.

{code}
// count the diff value of sum of authority scores
diffSumAggregator.aggregate(previousAuthAverage - newAuthorityValue.getValue());
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4172) Don't proxy a ProxiedObject

2016-07-07 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4172:
-

 Summary: Don't proxy a ProxiedObject
 Key: FLINK-4172
 URL: https://issues.apache.org/jira/browse/FLINK-4172
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.1.0


Some graph algorithms pass through a DataSet unmodified (at least, until we 
have VertexSet and EdgeSet). We need to prevent a DataSet from being proxied 
twice. Allowing two methods to own a single object sounds brittle, so we can 
instead provide access to the original DataSet which can be wrapped in a new 
proxy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4135) Replace ChecksumHashCode as GraphAnalytic

2016-06-30 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4135:
-

 Summary: Replace ChecksumHashCode as GraphAnalytic
 Key: FLINK-4135
 URL: https://issues.apache.org/jira/browse/FLINK-4135
 Project: Flink
  Issue Type: Improvement
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial
 Fix For: 1.1.0


Create a {{GraphAnalytic}} to replace {{GraphUtils.checksumHashCode}} as there 
is nothing special about this computation and we can remove this function from 
the API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-4132) Fix boxed comparison in CommunityDetection algorithm

2016-06-29 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-4132:
-

 Summary: Fix boxed comparison in CommunityDetection algorithm
 Key: FLINK-4132
 URL: https://issues.apache.org/jira/browse/FLINK-4132
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.1.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor
 Fix For: 1.1.0


IntelliJ notes that testing boxed primitives for equality will compare pointer 
values. We should be using primitives types.

{code}
if (maxScoreLabel != vertex.getValue().f0) {
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-5733) Link to Bahir connectors

2017-02-07 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5733:
-

 Summary: Link to Bahir connectors
 Key: FLINK-5733
 URL: https://issues.apache.org/jira/browse/FLINK-5733
 Project: Flink
  Issue Type: Improvement
  Components: Documentation, Project Website
Affects Versions: 1.3.0, 1.2.1
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Minor


The [ecosystem|https://flink.apache.org/ecosystem.html] page lists and links to 
connectors included in the Flink distribution. Add to this list the connectors 
in [bahir-flink|https://github.com/apache/bahir-flink].

Also add Bahir connectors to the 
[connectors|https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/connectors/index.html]
 documentation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5680) Document env.ssh.opts

2017-01-27 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5680:
-

 Summary: Document env.ssh.opts
 Key: FLINK-5680
 URL: https://issues.apache.org/jira/browse/FLINK-5680
 Project: Flink
  Issue Type: Improvement
  Components: Documentation
Affects Versions: 1.2.0, 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial
 Fix For: 1.3.0, 1.2.1


Document {{env.ssh.opts}} in {{setup/config.html}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FLINK-5890) GatherSumApply broken when object reuse enabled

2017-02-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5890:
-

 Summary: GatherSumApply broken when object reuse enabled
 Key: FLINK-5890
 URL: https://issues.apache.org/jira/browse/FLINK-5890
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan
 Fix For: 1.3.0


{{GatherSumApplyIteration.SumUdf.reduce}} can store a value from {{arg1}} in 
the new {{Tuple2}} which can be overwritten in {{ReduceDriver}}. We need to 
swap {{arg0.f1}} and {{arg1.f1}} when this happens (as done in {{ReduceDriver}} 
for the returned results).

{code}
@Override
public Tuple2 reduce(Tuple2 arg0, Tuple2 arg1) throws 
Exception {
K key = arg0.f0;
M result = this.sumFunction.sum(arg0.f1, arg1.f1);
return new Tuple2<>(key, result);
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5891) ConnectedComponents is broken when object reuse enabled

2017-02-22 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5891:
-

 Summary: ConnectedComponents is broken when object reuse enabled
 Key: FLINK-5891
 URL: https://issues.apache.org/jira/browse/FLINK-5891
 Project: Flink
  Issue Type: Bug
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan


{{org.apache.flink.graph.library.ConnectedComponents.CCUpdater#updateVertex}} 
is storing a value from its iterator.

{{GSAConnectedComponents}} does not have this limitation.

{code}
public static final class CCUpdater
extends GatherFunction {

@Override
public void updateVertex(Vertex vertex, 
MessageIterator messages) throws Exception {
VV current = vertex.getValue();
VV min = current;

for (VV msg : messages) {
if (msg.compareTo(min) < 0) {
min = msg;
}
}

if (!min.equals(current)) {
setNewVertexValue(min);
}
}
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5913) Example drivers

2017-02-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5913:
-

 Summary: Example drivers
 Key: FLINK-5913
 URL: https://issues.apache.org/jira/browse/FLINK-5913
 Project: Flink
  Issue Type: Sub-task
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Replace existing and create new algorithm {{Driver}} implementations for each 
of the library methods.

Replace the existing {{Usage.java}} (which only displays class names) with a 
new {{Runner.java}} allowing users to select and configure an input, algorithm, 
and output.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5909) Interface for GraphAlgorithm results

2017-02-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5909:
-

 Summary: Interface for GraphAlgorithm results
 Key: FLINK-5909
 URL: https://issues.apache.org/jira/browse/FLINK-5909
 Project: Flink
  Issue Type: Sub-task
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Create {{AlgorithmResult}} and {{AnalyticResult}} interfaces for library 
algorithms to implement. This flattens algorithm results to a single tuple.

Also create interfaces for {{UnaryResult}}, {{BinaryResult}}, and 
{TertiaryResult}} implementing methods to access the 0th, 1st, and 2nd vertices.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5910) Framework for Gelly examples

2017-02-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5910:
-

 Summary: Framework for Gelly examples
 Key: FLINK-5910
 URL: https://issues.apache.org/jira/browse/FLINK-5910
 Project: Flink
  Issue Type: Sub-task
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Driver jobs are composed of an input, an algorithm, and an output. Create the 
interfaces for inputs, algorithms, and outputs.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5912) Inputs for CSV and graph generators

2017-02-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5912:
-

 Summary: Inputs for CSV and graph generators
 Key: FLINK-5912
 URL: https://issues.apache.org/jira/browse/FLINK-5912
 Project: Flink
  Issue Type: Sub-task
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Create {{Input}} classes for reading graphs from CSV as well as for each of the 
graph generators.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5911) Command-line parameters

2017-02-24 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5911:
-

 Summary: Command-line parameters
 Key: FLINK-5911
 URL: https://issues.apache.org/jira/browse/FLINK-5911
 Project: Flink
  Issue Type: Sub-task
  Components: Gelly
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan


Create interface for parsing command-line parameters using {{ParameterTool}} 
and generic implementations for boolean, long, double, string, choice.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (FLINK-5838) Fix jobmanager.sh usage

2017-02-17 Thread Greg Hogan (JIRA)
Greg Hogan created FLINK-5838:
-

 Summary: Fix jobmanager.sh usage
 Key: FLINK-5838
 URL: https://issues.apache.org/jira/browse/FLINK-5838
 Project: Flink
  Issue Type: Bug
  Components: Startup Shell Scripts
Affects Versions: 1.3.0
Reporter: Greg Hogan
Assignee: Greg Hogan
Priority: Trivial
 Fix For: 1.3.0


{code}
$ ./bin/jobmanager.sh 
Unknown daemon ''. Usage: flink-daemon.sh (start|stop|stop-all) 
(jobmanager|taskmanager|zookeeper) [args].
{code}

The arguments in {{jobmanager.sh}}'s call to {{flink-daemon.sh}} are misaligned 
when {{$STARTSTOP}} is the null string.

{code}
"${FLINK_BIN_DIR}"/flink-daemon.sh $STARTSTOP jobmanager "${args[@]}"
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


  1   2   >