Commit graph

19244 commits

Author SHA1 Message Date
Patrik Nordwall
7e1697b6cc Merge pull request #20654 from akka/wip-artery-dispatcher-patriknw
configuration of Artery materializer and dispatcher
2016-06-01 13:40:23 +02:00
Patrik Nordwall
e3afe6107d configuration of Artery materializer and dispatcher
* also increased the parallelism-max to 4 for default-remote-dispatcher
2016-06-01 11:59:13 +02:00
Patrik Nordwall
8fb7727526 make it possible to use external Aeron media driver, #20588 (#20653)
* make it possible to use external Aeron media driver, #20588

* on my machine the MaxThroughputSpec maxed out all 8 cores completely,
  and when using external media driver it is much better and easier to
  find the actual bottlenecks

* aeron.properties for external media driver
2016-06-01 11:56:18 +02:00
Patrik Nordwall
fc6a335610 improve performance of literal encoding (#20655)
* improve performance of literal encoding

* use char array instead of getBytes
* JMH benchmark

* use Unsafe to get the char array
2016-06-01 11:55:25 +02:00
Patrik Nordwall
c6464ce493 remove async, #20562 (#20645) 2016-05-30 10:42:49 +02:00
Patrik Nordwall
9c586577a3 Merge pull request #20624 from akka/wip-20568-handshake-restart-patriknw
initiate new handshake after restart of receiving system, #20568
2016-05-27 17:48:12 +02:00
Patrik Nordwall
7505393c89 initiate new handshake after restart of receiving system, #20568
* we don't want to include the full origin address in each message,
  only the UID
* that means that the restarted receiving system can't initate a
  new handshake immediately when it sees message from unknown origin
* instead we inject HandshakeReq from the sending system once in a while
  (1 per second) which will trigger the new handshake
* any messages that arrives before the HandshakeReq are dropped, but
  that is fine since the system was just restarted anyway
* note that the injected handshake is only done for active connections,
  when a message is sent
* also changed the UID to a Long, but there are more places in old remoting
  that must be changed before we actually can use a Long value

fix lost first message, #20566

* the first message was sometimes dropped by the InboundHandshake stage
  because it came from unknown origin, i.e. the handshake had not completed
* that happended because the ordinary messagage arrived before the
  first HandshakeReq, which may happen since we sent the HandshakeReq
  over the control stream
* this changes so that HandshakeReq is sent over the same stream, not
  only on the control stream and thereby the HandshakeReq will arrive
  before any other message
* always send HandshakeReq as first message
  * also when the handshake on sender side has been completed at startup
  * moved code from preStart to onPull
2016-05-27 17:05:23 +02:00
Patrik Nordwall
92404bc470 Merge pull request #20637 from akka/wip-20324-bytebuffer-serialization-patriknw
add serialization api based on ByteBuffer, #20324
2016-05-27 16:41:18 +02:00
Patrik Nordwall
a0f8f19e86 change header to use serializer id instead of FQCN
* because FQCN can become a problem for rolling upgrade scenarios
  where you want to rename serializer classes
* also renamed classManifest to manifest because it doesn't have
  to be class names
2016-05-27 12:26:15 +02:00
Patrik Nordwall
aa2c4fe7bf handle serialization errors, #20324 2016-05-27 12:26:15 +02:00
Patrik Nordwall
e74e1da6cc optimize currentTransportInformation 2016-05-27 12:26:14 +02:00
Patrik Nordwall
d759f738ea add serialization api based on ByteBuffer, #20324
* new trait ByteBufferSerializer with fromBinary and toBinary
  methods that takes ByteBuffer, this can be mixed in to
  existing serializer without breaking compatibility
* implement the ByteBufferSerializer in the ByteArraySerializer
* minor adjustment of the class manifest cache
2016-05-27 12:26:08 +02:00
Patrik Nordwall
2ff76299c9 Merge pull request #20633 from akka/wip-artery-jmh-bench-patriknw
add JMH benchmark for encoder decoder stage
2016-05-27 12:22:27 +02:00
Patrik Nordwall
5b7c978844 add JMH benchmark for encoder decoder stage
* CodecBenchmark that tests encode, decode and combined
  encode + decode
* refactoring of codec stages to make it possible to
  run them without real ArteryTransport
* also fixed a bug in inbound stream for large messages,
  it was using wrong envelope pool
2016-05-27 12:21:30 +02:00
Patrik Nordwall
5477b4e99b Merge pull request #20557 from akka/wip-20317-giveup-patriknw
give up sending after a while, #20317
2016-05-20 14:48:10 +02:00
Patrik Nordwall
68a8a3c226 Merge pull request #20578 from akka/wip-sync-artery-with-2.4.6-patriknw
sync Artery with 2.4.6
2016-05-20 14:47:11 +02:00
Patrik Nordwall
e9e65c463f improve restart logging 2016-05-20 13:51:39 +02:00
Patrik Nordwall
c90121485f give up sending after a while, #20317 2016-05-20 13:51:39 +02:00
Patrik Nordwall
b17c4c1d9b Merge pull request #20575 from akka/wip-rename-protocol-patriknw
rename protocol to artery
2016-05-20 13:44:35 +02:00
Patrik Nordwall
6b435a5646 Merge branch 'master' into wip-sync-artery-with-2.4.6-patriknw 2016-05-20 13:20:13 +02:00
Patrik Nordwall
4b048f5c4b Merge pull request #20544 from akka/wip-20317-aeron-log-patriknw
log Aeron errors, #20317
2016-05-20 13:07:04 +02:00
Patrik Nordwall
7288107031 Merge pull request #20572 from akka/wip-serialization-perf-patriknw
improve codec performance
2016-05-20 13:06:47 +02:00
Patrik Nordwall
6603ed5236 temporary workaround for failing RemoteRestartedQuarantinedSpec 2016-05-20 12:46:29 +02:00
Johan Andrén
cd71643a91 [WIP] Large message stream for Artery (#20545)
* First stab at separate large message channel for Artery

* Full actor paths, no implicit "/user/" part

* Various small fixes after review

* Fixes to make it work after rebasing

* Use a separate EnvelopeBufferPool for the large message stream

* Docs for actorSelection not sending through large message stream
2016-05-20 12:40:56 +02:00
Patrik Nordwall
121840589b improve codec performance
* caching of actor refs in Encoder, Decoder
* dynamicAccess.getClassFor in Serialization is costly,
  so introduced a cache for the class manifests there
2016-05-20 11:40:22 +02:00
Patrik Nordwall
8859fc35e8 increase Aeron liveness timeout 2016-05-20 11:24:43 +02:00
Patrik Nordwall
23e48b1b35 rename protocol to artery 2016-05-20 11:23:46 +02:00
drewhk
2c47f1883d Merge pull request #20554 from Hawstein/hawstein-20288-pushpullstage-to-graphstage
Replace PushPullStage with GraphStage in HttpServerBluePrint
2016-05-20 10:25:19 +02:00
Hawstein
f61a67d57a make OneHundredContinueStage an object 2016-05-19 22:52:49 +08:00
drewhk
a4b996546e Merge pull request #20457 from drewhk/wip-artery-envelope-buffers-drewhk
Buffer and header parsing support
2016-05-19 15:06:11 +02:00
Endre Sándor Varga
1828a8def3 Buffer and header parsing support 2016-05-19 13:40:09 +02:00
Johan Andrén
83c60cb034 Publish akka-osgi but do not include it in dist #20548 (#20549) 2016-05-19 12:41:38 +02:00
Samuel Tardieu
e0c64f59d8 =str #20550 only accept -1 for infinite retries in recoverWithRetries (#20555) 2016-05-19 11:45:31 +02:00
Johan Andrén
acb71ac4e5 !htp Move classes from javadsl to javadsl.server to keep in release jars #20556 (#20558) 2016-05-19 11:30:59 +02:00
Hawstein
cc2e0e8d32 replace PushPullStage with GraphStage in HttpServerBluePrint 2016-05-19 03:40:02 +08:00
Ashu Gupta
e2c1638171 HTTP: Document how a type is marshalled into json #20514 2016-05-18 18:39:10 +02:00
Johan Andrén
f974ae984d Removing pidfile that got in the JavaDSL merge 2016-05-18 16:16:36 +02:00
Patrik Nordwall
76b29a35e0 log Aeron errors, #20317 2016-05-18 13:54:36 +02:00
Patrik Nordwall
e36a13d48a Merge pull request #20517 from akka/wip-20313-handshake-incarnations-patriknw
handshake and quarantine, #20313
2016-05-18 10:36:08 +02:00
Patrik Nordwall
c22d13d3a0 Merge pull request #20541 from akka/wip-merge-2.4.5-artery-patriknw
merge master (2.4.5) into artery-dev
2016-05-18 10:34:57 +02:00
Patrik Nordwall
935ab0d82e make use of auto port selection in tests 2016-05-18 09:22:22 +02:00
Patrik Nordwall
96b697d92f handle stream failures by restarting, #20317
* allow X restarts within Y seconds
* and handle handshake timeout
2016-05-18 08:13:22 +02:00
Patrik Nordwall
8e316d06e9 harden resend sys msg test
* the periodic resend kicked in too early, resending 2 before the Ack(2)
  was delivered
* also improved SystemMessageDelivery stage to not tick periodically
  when there are no messages to deliver (buffer empty)
2016-05-18 08:07:46 +02:00
Patrik Nordwall
d4c086c0ff add quarantining state and inbound quarantine check, #20313
* InboundQuarantineCheck stage sends back Quarantined control
  message if sender system is quarantined
* Ported old RemoteRestartedQuarantinedSpec
* outbound quarantine check and piercing with ActorSelectionMessage
* port of old RemoteQuarantinePiercingSpec and PiercingShouldKeepQuarantineSpec
* quarantine if sys msg buffer overflow
2016-05-18 08:07:46 +02:00
Patrik Nordwall
67325da722 init new handshake for unknown origin, receiver restarted, #20313
* handle UID incarnations, shared association state that can be swapped
  for new handshakes
* detect that message comes from unknown origin and then initiate new
  handshake (handled by InboundHandshake stage)
* simplify the OutboundHandshake stage
  * doesn't have to listen for HandshakeRsp replies, it can just listen
    to when the uniqueRemoteAddress future is completed, InboundHandshake
    stage completes the handshake when it receives HandshakeRsp
  * send the HandshakeReq via the control message ingress, instead of
    pushing it downstreams, than also means that HandshakeReq is only sent
    on the control stream, which is good
* materialization race condition
2016-05-18 08:01:46 +02:00
Patrik Nordwall
1296f9986f make control message ingress buffer bounded 2016-05-18 08:00:47 +02:00
Patrik Nordwall
d15cab71bd amend build for artery dev 2016-05-18 07:30:48 +02:00
Johan Andrén
5e3eb4bd8c Auto port selection and SunnyWeatherSpec for Artery (#20512)
* Automatic port selection when port 0 configured
* Combine remoting and artery SunnyWeatherSpec
* Default to port 0 for artery in MultiNodeSpec.nodeConfig
2016-05-17 14:17:21 +02:00
Patrik Nordwall
50ac9134b8 Merge branch 'master' into wip-merge-2.4.5-artery-patriknw 2016-05-17 13:13:13 +02:00
Johan Andrén
ebef60388f Workaround for unidoc failing to compile scaladsl.server.Rejection 2016-05-16 16:59:12 +02:00