Commit graph

1401 commits

Author SHA1 Message Date
Patrik Nordwall
f017f6a90a Optimize TCP stream writes, #23919 (#23920)
* This is an optimization of TcpStreamLogic to accumulating bytes in a buffer while waiting for
  acknoledgment of pending write. This improves throughput for small messages (frames)
  without sacrificing latency. While waiting for the ack the stage will eagerly pull
  from upstream until the buffer limit is exceeded. Accumulated bytes are written
  immediately when ack is received.
* Noticed 20x throughput improvement with Artery MaxThroughputSpec thanks to this buffer
  when working on the Artery TCP implementation. The small message (100 bytes) benchmark
  improved from 30k msg/s to 600k msg/s.
2017-11-07 11:07:29 +09:00
James Roper
2e71b751bf Provide meaningful name for SubSource.out/SubSink.in (#23922)
Fixes #23921

Ensures that when an erroneous invocation of a method on `SubSink` or
`SubSource` (eg, push when not allowed), that the source of the
invocation can more easily be identified. Since the invocations on these
are generally through async callbacks, the stack trace can't be used to
help, hence why the name of the inlet/outlet (which will be included in
the error message) is so important.
2017-11-06 19:30:12 +09:00
Richard Imaoka
a50df1c575 Add combinedMat method to Source (#23809)
* Add combinedMat method to Source

* Fix formatting
2017-11-02 10:34:40 +09:00
Richard Imaoka
c05a3e0e26 Fix Scaladoc for recoverWithRetries (#23762) (#23763) 2017-10-30 16:21:44 +01:00
Christopher Batey
2ee51c602a Compression level for gzip flow (#23845)
Excluded binary compay check of Compressors as they are InternalApis
2017-10-30 22:40:20 +09:00
Martynas Mickevičius
82ca8a2cc7 Port build to SBT 1.x (#23850)
* Port build to SBT 1.x

* Fix multinode tests, always enable genjavadoc bootstrap
2017-10-30 10:13:13 +09:00
Konrad `ktoso` Malawski
2e5f6bebc0 =str mark overflow strategies with DoNotInherit
Since they are `sealed` but could still be extended by in java, so calling this out via annotation that they're not intended to be extended.
2017-10-23 18:49:07 +09:00
Arnout Engelen
b1df13d4d4 Update scalariform (#23778) (#23783) 2017-10-06 10:30:28 +02:00
Alexander Golubev
d706d5344b +str add java Compression.gzip and deflate (#23779) 2017-10-05 22:33:07 -07:00
Johan Andrén
b03b777040 Fail ignore sink matval on abrupt termination #23726 (#23728) 2017-10-04 09:29:19 +02:00
Aleksey Nikiforov
df77df4b02 SharedKillSwitch memory leak fix #23622 2017-10-04 09:02:16 +02:00
Christopher Batey
4a2b6b23e5 Remove structural type that relies on runtime type in sun.nio #23400, #23403 2017-09-26 08:43:52 +02:00
Patrik Nordwall
cd4ee59cc8 Add parameter eagerClose to Flow.interleave #22710 (#23718)
* overloaded methods added for binary compatibility
* Doc improve: remove unnecessary example, reword eagerClose description
* Test eagerClose = true when other stream closed
2017-09-25 23:26:54 +09:00
Cause Chung
5892c2a569 Add more doc for framing on tcp streaming #23325 2017-09-23 12:09:05 +02:00
Arnout Engelen
699a11144e Avoid side effect in ActorGraphInterpreter#toString #23656 2017-09-20 14:27:29 +02:00
Konrad `ktoso` Malawski
349a5f749a =jdk9,str JDK9 ready classes, in special directories (#23650)
* =jdk9,str JDK9 ready classes, in special directories

* =str,jdk9 prepare for releasing using JDK9 (needs sbt 1.0+ though)

* =str,jdk9 passing TCK spec touching some JDK9 types internally

* make sure to include linting options
2017-09-20 21:06:49 +09:00
Konrad `ktoso` Malawski
9965fc592b =act small compilation fixes for JDK9 (#23658) 2017-09-20 16:24:29 +09:00
Johannes Rudolph
3307b3522c =str hide deprecated lazy vals behind def in FanInShape et al (#23655)
To avoid genjavadoc issue https://github.com/typesafehub/genjavadoc/issues/85.
2017-09-19 15:38:12 +02:00
Johannes Rudolph
839442a118 Further stream shape cleanups (#23633)
* =str move non-boilerplaty shapes out of templates

This will improve code navigation for those classes.

 - FanInShape, FanInShape1N, UniformFanInShape
 - FanOutShape, UniformFanOutShape

* =str deprecate FanInShape1N

It was not tested, used or documented anywhere. With one input of type T0,
n inputs of type T1 and one output of type O, it is also arguably not
particularly generic to warrant its inclusion.

* !str remove unnecessary copyFromPorts implementation in Fan{In,Out}Shape

Strictly speaking this is a binary incompatible change. It would only affect
users that explicitly called `copyFromPorts` (but for what reason?).

* =str #23636 fix deprecation message not to use backticks

Backticks break genjavadoc / unidoc.

Fixes #23636.
2017-09-18 15:38:46 +02:00
Nadav Wiener
54d408b1c5 deprecate Source.combine instance method #22452 2017-09-18 08:48:57 +02:00
Patrik Nordwall
120e248e6f Merge pull request #23626 from akka/wip-21732-rewrite-filesource-with-java-nio-patriknw
=str 21732 rewrite file souce with NIO and GraphStagу
2017-09-12 16:30:48 +02:00
László van den Hoek
63d9ec1c87 More consistency between UniformFanInShape and UniformFanOutShape (#23321)
* add+use UniformFanOutShape#outSeq for consistency

UniformFanInShape has inSeq, whereas UniformFanOutShape has outArray.
There's probably no good reason for this discrepancy.

* 2.5.3 is gold, deprecation would start in 2.5.4

* specialize in/outlets where possible

* review comments, binary compatibility

* optimize imports

* use Array copy internally

* give FanInShape1N the deprecation treatment

also, s/T\d/I\d/g

* delete ignored file

* process additional review comments

* make inArray fully private everywhere

* add benchmark heavy on the use of FanInShape.in()

* benchmark says: do not use Array for most n

* add JavaDoc to un-final'ed defs to not override

* change deprecated val to def; do not use it

* process patriknw's review comments
2017-09-12 16:14:20 +02:00
Alexander Golubev
000ed93576 =str 21732 rewrite file souce with NIO and GraphStagу
add MiMa excludes and additional test

add benchmark and move eclusions to 2.5.4

add future completion on stream termination
2017-09-12 14:54:41 +02:00
Patrik Nordwall
510bf9e13d Merge pull request #23509 from agolubev/23480-fix-fail-future-case-in-QueueSourceSpec
23480 fix fail future case in queue source spec
2017-09-11 16:43:47 +02:00
Konrad `ktoso` Malawski
721e486fdb +str #23392 AbstractGraphStageWithMaterializedValue for Java users (#23394)
(no need to use Tuple2, can be Pair)
2017-09-11 16:35:35 +02:00
Johan Andrén
ddf3e8e150 =str #23536 Complete and fail ByteStringParser eagerly (#23594)
* Complete and fail ByteStringParser eagerly #23536

* Check that the buffer is empty first
2017-09-11 14:19:46 +02:00
Konrad `ktoso` Malawski
a40826e1cb =str #22881 test also resume case for throwing mid-stream mapAsync (#22915)
* =str #22880 fix mapAsync racy failure handling

* =str #22881 test also resume case for throwing mid-stream mapAsync

* address review feedback, the handle calls must be exactly like that
2017-09-11 14:17:13 +02:00
Johan Andrén
8344443d55 Materialized value injected per materialization #23577 2017-09-08 15:45:45 +02:00
Martynas Mickevičius
fed123befb #23484 Guard against double pull (#23560) 2017-08-25 14:17:30 +02:00
Patrik Nordwall
da7fb98d86 Merge pull request #23522 from akka/wip-23485-throttle-send-patriknw
clarify sender of throttle example, #23485
2017-08-22 18:12:11 +02:00
Patrik Nordwall
3637340e11 clarify sender of throttle example, #23485
* and use noSender in ActorRefSinkActor
2017-08-22 16:04:01 +02:00
Alexander Golubev
1ba5b27158 =str add latch to ManualProbe to popagate events only when subscription is done (#23365) 2017-08-21 11:26:29 +02:00
Alexander Golubev
eff6c409d1 +str fix for "fail offer future when stream is completed" QueueSource/SinkSpec 2017-08-19 23:25:18 -04:00
Andrea Peruffo
c2ff4f74fc removing ThreadLocalRandom import (#23540) 2017-08-17 21:32:40 +09:00
Patrik Nordwall
945ade245e Add PartitonHub, #21880
* FixedSizePartitionHub in Artery
* expose consumer queue size
2017-08-09 17:00:35 +02:00
Patrik Nordwall
3ba093d27e Merge pull request #23417 from francisdb/issue23416
fix #23416 instantiate exceptions at right time
2017-08-09 16:35:08 +02:00
Gilad Hoch
0bcf32fccb =str #23398 groupedWeightedWithin zero cost bugfix (#23399)
* added a failing test to demonstrate a bug in groupedWeightedWithin with zero cost function

* fixed the bug by adding a flag indicating if there are elements in buffer, and using it instead of totalWeight in case onTimer is called
2017-08-08 13:30:32 +02:00
Jimin Hsieh
f623d10522 Rename addr to address in non-public API #21874 2017-08-08 13:18:56 +02:00
Manu Zhang
5be1a527b1 Fix #23385, Update ExtendedActorMaterializer doc (#23431) 2017-08-02 10:53:14 +02:00
Nafer Sanabria
2d42fedb9a =str update reference FlowMaterializer to ActorMaterializer (#23457) 2017-07-31 16:06:29 +09:00
Martynas Mickevičius
bc0f2ee26d Load MiMa filters from file (#23083) 2017-07-27 12:33:14 +02:00
Johan Andrén
407131cb4e Stream supervision doc clarification #23376 2017-07-26 16:23:46 +02:00
Jan Ypma
7b7749cd7b Fix #23165: Update StreamConverters.fromInputStream docs to reflect reality 2017-07-26 12:08:17 +02:00
Francis De Brabandere
f353cc2768 fix #23416 instantiate exceptions at right time 2017-07-25 16:33:32 +02:00
James Roper
c60d20af32 Restart Flow/Source/Sink #19950 2017-07-20 15:02:34 +02:00
Martynas Mickevičius
57dc2763be #23118 Fail SourceQueue completion future in postStop 2017-07-13 08:57:55 +01:00
Jim Riordan
c7ac498520 Fix documentation for Unzip class (#23333) (#23334) 2017-07-11 05:30:52 -07:00
Kirill Yankov
3a90820d68 Custom frame size computation support in Framing #22129 (#22837)
* added complex frame size support in framing #22129

* Returned Int where needed
2017-07-07 13:48:24 +02:00
Johan Andrén
2b2923f1b6 MaybeSource rewritten as GraphStage #22789 2017-07-05 12:55:28 +01:00
Den Kovalevsky
bf8bbd2807 JsonObjectParser escape sequence processing fix #23292 2017-07-05 10:11:17 +01:00