Commit graph

108 commits

Author SHA1 Message Date
Martynas Mickevičius
4bb283b458 #22429 Resize connections array when needed 2017-03-13 09:49:25 +02:00
Patrik Nordwall
3554ad7243 Merge branch 'master' into wip-traversal-oriented-layout-master-patriknw 2017-03-10 18:16:44 +01:00
Konrad `ktoso` Malawski
e2a15a2a58 =str use OptionVal in Traversal building 2017-03-10 11:45:26 +01:00
Konrad `ktoso` Malawski
99705d1ccc =str #22437 replace require() with if calls to avoid fn allocs 2017-03-10 10:44:58 +01:00
Konrad `ktoso` Malawski
67fd0cc0b6 =str #22438 make use of OptionVal in materializer internals 2017-03-10 10:44:43 +01:00
Konrad `ktoso` Malawski
4c0d6ddb7a =ben,str make sure to return values in benchmarks 2017-03-10 10:29:30 +01:00
Johan Andrén
c028b550f2 Low level interpreter tests working without GraphAssembly #22423 2017-03-07 17:06:41 +01:00
Konrad `ktoso` Malawski
e47dbda154 =str #22448 rewrite Source.empty to GraphStage 2017-03-07 15:13:49 +01:00
Endre Sándor Varga
ba63c7af8d New materializer and layout 2017-03-01 16:18:55 +01:00
Konrad `ktoso` Malawski
dcd8cea32e #21475 moving compressions ownership to Decoder (#22047)
* WIP early preview of moving compressions ownership to Decoder

* Compression table created in transport, but owned by Decoder
Added test for restart of inbound stream

* =art snapshot not needed in HeavyHitters since owned by Decoder
2017-01-13 10:33:55 +01:00
Philippus Baalman
6c7085252a extended copyright into 2017 2017-01-04 17:37:15 +01:00
monkey-mas
c38d3850a2 =act improve ByteString#dropRight(...) (#21439)
#21439: =act improve ByteString#dropRight(...)
2016-12-06 15:51:11 +01:00
Björn Antonsson
8d05592e2e =rem Streamline Artery encoding of metadata to avoid allocations
* Change RemoteInstrument API to work with ByteBuffers
* Remove the MetadataMap since serialization is done in buffer
2016-12-06 10:05:27 +01:00
Björn Antonsson
913c166f88 =jmh Clean up Artery CodecBenchmark
* Make decoding release the envelope so it doesn't leak memory
* Create two different configurations, Standard and RemoteInstrument
* Create Serilaizer and RemoteInstrument that doesn't allocate memory
2016-12-06 10:05:27 +01:00
Johan Andrén
50370c69a3 ByteString.indexOf optimized to speed up framing stage #21530 2016-10-19 11:26:50 +02:00
Konrad Malawski
a6a5556a8f Remove Akka-HTTP sources from akka/akka, moving to akka/akka-http! (#21690) 2016-10-18 15:17:17 +02:00
monkey-mas
1a6fb98e78 =act add benchmark of ByteString#take(...) (#21540)
* =act add benchmark of ByteString#take(...)

Added a benchmark code to measure use-case performance.

ref. https://github.com/akka/akka/pull/21438

* Corrected benchmark code
2016-10-17 13:11:26 +02:00
monkey-mas
19dbe9a487 =act clean up ByteString#drop(...) (#21440)
* =act clean up ByteString#drop(...)

Current implementation has a good algorithm but seems a little bit complicated.

Clening-up does not suffer the performance (actually seems to have the better
performance when dropping(N-1)) where N is the length, and is easy to understand
almost the same algorithm now.

* Change private[akka] to priavte

* Rename go(...) and some variables

They should be easy for us to understand what they are.

* Add benchmark of ByteString#drop(...)
2016-10-05 09:25:34 -05:00
Johan Andrén
8ae0c9a888 Use long uid in artery remoting and cluster #20644 2016-09-26 15:34:59 +02:00
Patrik Nordwall
30603d194a log-received-messages and log-sent-messages, #21506 (#21508)
* log-received-messages and log-sent-messages, #21506

* also duplicate the trusted settings to artery section
2016-09-23 12:30:54 +02:00
Łukasz Dubiel
642a145ca1 =art Heap structure in heavy hitters 2016-09-20 15:18:48 +02:00
Patrik Nordwall
76c23a7880 fix many bugs in InboundCompressions, #21464
* comprehensive integration test that revealed many bugs
* confirmations of manifests were wrong, at two places
* using wrong tables when system is restarted, including
  originUid in the tables with checks when receiving advertisments
* close (stop scheduling) of advertisments when new incarnation,
  quarantine, or restart
* cleanup how deadLetters ref was treated, and made it more robust
* make Decoder tolerant to decompression failures, can happen in
  case of system restart before handshake completed
* give up resending advertisment after a few attempts without confirmation,
  to avoid keeping outbound association open to possible dead system
* don't advertise new table when no inbound messages,
  to avoid keeping outbound association open to possible dead system
* HeaderBuilder could use manifest field from previous message, added
  resetMessageFields
* No compression for ArteryMessage, e.g. handshake messages must go
  through without depending on compression tables being in sync
* improve debug logging, including originUid
2016-09-19 11:37:44 +02:00
Konrad Malawski
c20b6088cd =art add metadata field to the header, #20703 2016-09-16 18:13:23 +02:00
Łukasz Dubiel
211537f485 =art Count min sketch benchmark and performance improvments. (#21037) 2016-09-13 10:48:37 +02:00
drewhk
e49b11607a Merge pull request #21353 from drewhk/wip-21206-safer-afr-close-drewhk
#21206: Improve AFR resilience to write-after-close
2016-09-09 10:20:16 +02:00
Patrik Nordwall
3c779cebd4 config of send queues 2016-09-08 18:00:37 +02:00
Johan Andrén
b127f1fdcf Rename protocol from "artery" to "akka" (#21405) 2016-09-08 16:12:29 +02:00
Endre Sándor Varga
8513ac9752 #21206: Improve AFR resilience to write-after-close 2016-09-08 14:08:18 +02:00
Endre Sándor Varga
11fceb4121 21203: Cache/memoize ActorRef resolution 2016-09-08 11:41:06 +02:00
Patrik Nordwall
faf941b4c8 support for parallel lanes, #21207
* for parallel serialziation/deserialization
* MergeHub for the outbound lanes
* BroadcastHub + filter for the inbound lanes, until we
  have a PartitionHub
* simplify materialization of test stage
* add RemoteSendConsistencyWithThreeLanesSpec
2016-09-05 12:42:33 +02:00
Patrik Nordwall
0c0e3c5efd Refactoring of outbound compression, #21210
* outbound compression is now immutable, by simply using
  CompressionTable[ActorRef] and CompressionTable[String]
* immutable outbound compression will make it possible to use
  them from multiple Encoder instances, when we add several lanes
  for parallel serialization
* outbound compression tables not shared via AssociationState
* the advertised tables are sent to the Encoder stage via async
  callback, no need to reference the tables in other places than
  the Encoder stage, no more races via shared mutable state
* when outbound stream is started or restarted it can start out
  without compression, until next advertisement is received
* ensure outbound compression is cleared before handshake is signaled complete
2016-08-26 15:21:03 +02:00
Patrik Nordwall
8ab02738b7 Merge branch 'master' into wip-sync-artery-dev-2.4.9-patriknw 2016-08-23 20:14:15 +02:00
Konrad Malawski
8a1f8f27dc =htc fix JsonFraming completion bug, exposed by new Interpreter 2016-08-02 15:58:34 +02:00
Konrad Malawski
f2419f5a08 =htp framed entity streaming cleanup, renames 2016-08-02 15:27:21 +02:00
Konrad Malawski
24454f7f09 +htp #18837 JSON framing and framed entity streaming directives 2016-08-02 15:27:21 +02:00
Endre Sándor Varga
3a1a0cc4c4 Event chasing implemented 2016-08-01 11:31:14 +02:00
Endre Sándor Varga
b498347933 baseline benchmark 2016-08-01 11:30:30 +02:00
Konrad Malawski
bb701d1725 HTTP: Optimise response rendering and response parsing (#21046)
* +htp,ben HttpBlueprint benchmark

* +act bring OptionVal from artery-dev
+htc raw benchmarks

* =htc request parsing benchmark

* +htc,ben add benchmark for longer (raw) json response

* =htc optimise renderHeaders, less Option allocs

* -htc remove FastClock, not quite worth it
2016-07-28 22:32:40 +02:00
Konrad Malawski
42b27b58c0 =ben fix compilation due to stale PR being merged (#21044)
* =ben fix compilation due to stale PR being merged

* Update HttpRequestParsingBenchmark.scala
2016-07-26 22:17:14 +02:00
Johan Andrén
150511a44b =htc Byte string parser input for request target parsing (#21018)
* Avoid byte array allocation in request target parsing

* Request parsing benchmark added

* Missing copyright added
2016-07-26 12:00:24 +02:00
Konrad Malawski
5fd0654000 Jenkins benchmarking improvements (#21034)
* +htp,ben HttpBlueprint benchmark

* =htp hide http perf test behind a flag

* =htp report requests per second as well as bytes per second in perfspec
2016-07-25 18:39:52 +02:00
Konrad Malawski
210c11e85e +htp,ben HttpBlueprint benchmark (#21005) 2016-07-21 15:48:32 +02:00
Konrad Malawski
fde9d86879 ByteString optimisations of methods in HTTP parsing hot-path (#20994)
* =act #20992 prepare benchmarks for ByteString optimisations

* =act #20992 optimise common ByteString operations: drop,take,slice...

* =act,htc #15965 add ByteString.decodeString(java.nio.charsets.Charset)
2016-07-20 14:01:51 +02:00
Konrad Malawski
55e3e123b1 =act #20910 optimize ByteString#copyToBuffer (#20911) 2016-07-11 18:23:52 +02:00
Konrad Malawski
d1015c1dc6 Compression tables properly *used* for Outgoing Compression (#20874)
* =art now correctly compresses and 2 table mode working
* =art AGRESSIVELY optimising hashing, not convienved about correctness yet
* fix HandshakeShouldDropCompressionTableSpec
2016-07-04 16:48:11 +02:00
Patrik Nordwall
d2c3c3ee3b update to Aeron 0.9.9 2016-07-01 15:38:39 +02:00
Patrik Nordwall
b2089d06a7 new OutboundEnvelope
* instead of the old Send
* optional recipient, remove of dummy
* pool of OutboundEnvelope
2016-07-01 14:06:48 +02:00
Konrad Malawski
d99274a51f =art #20455 compression tables advertised as a whole "2 tables mode" (#20863)
Squashed commit of the following:

commit 6dc45364eb285338885bc8a5f1c4f293a29a53fb
Author: Konrad Malawski <konrad.malawski@project13.pl>
Date:   Fri Jun 24 19:03:58 2016 +0200

    =art moved successfuly to 2 table mode
    envelope format prepared, versioned tables

    2 table mode working

commit 517723c5d61969988a9a93b99666824bf5bccb52
Author: Konrad Malawski <konrad.malawski@project13.pl>
Date:   Fri Jun 24 10:28:02 2016 +0200

    WIP

commit 3e05a733e087e0d5bd8df9cc4fff0d4bc1314ec8
Author: Konrad Malawski <konrad.malawski@project13.pl>
Date:   Wed May 18 02:28:12 2016 +0200

commit b51f1766a94b202cd42fcc9d5402327ad0800d2d
Author: Konrad Malawski <konrad.malawski@project13.pl>
Date:   Thu Apr 28 10:56:58 2016 +0200

    +art #20455 HeavyHitters and CountMinSketch prepared for Compression
2016-07-01 11:54:57 +02:00
Konrad Malawski
e818887bb2 +art #20455 HeavyHitters, CountMinSketch => ActorRef Compression
* +art #20455 HeavyHitters and CountMinSketch prepared for Compression

* +art #20455 compression tables and integration specs
2016-06-23 11:58:54 +02:00
Johan Andrén
d6c048f59a A simpler ActorRefProvider config #20649 (#20767)
* Provide shorter aliases for the ActorRefProviders #20649
* Use the new actorefprovider aliases throughout code and docs
* Cleaner alias replacement logic
2016-06-10 15:04:13 +02:00