parent
084e44dcf2
commit
b468efd95b
6 changed files with 9 additions and 9 deletions
|
|
@ -1185,10 +1185,10 @@ object Replicator {
|
|||
*
|
||||
* For good introduction to the CRDT subject watch the
|
||||
* <a href="http://www.ustream.tv/recorded/61448875">The Final Causal Frontier</a>
|
||||
* and <a href="http://vimeo.com/43903960">Eventually Consistent Data Structures</a>
|
||||
* and <a href="https://www.infoq.com/presentations/CRDT/">Eventually Consistent Data Structures</a>
|
||||
* talk by Sean Cribbs and and the
|
||||
* <a href="http://research.microsoft.com/apps/video/dl.aspx?id=153540">talk by Mark Shapiro</a>
|
||||
* and read the excellent paper <a href="http://hal.upmc.fr/docs/00/55/55/88/PDF/techreport.pdf">
|
||||
* <a href="https://www.microsoft.com/en-us/research/video/strong-eventual-consistency-and-conflict-free-replicated-data-types/">talk by Mark Shapiro</a>
|
||||
* and read the excellent paper <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">
|
||||
* A comprehensive study of Convergent and Commutative Replicated Data Types</a>
|
||||
* by Mark Shapiro et. al.
|
||||
*
|
||||
|
|
@ -1199,7 +1199,7 @@ object Replicator {
|
|||
* actor using the `Replicator.props`. If it is started as an ordinary actor it is important
|
||||
* that it is given the same name, started on same path, on all nodes.
|
||||
*
|
||||
* <a href="http://arxiv.org/abs/1603.01529">Delta State Replicated Data Types</a>
|
||||
* <a href="https://arxiv.org/abs/1603.01529">Delta State Replicated Data Types</a>
|
||||
* are supported. delta-CRDT is a way to reduce the need for sending the full state
|
||||
* for updates. For example adding element 'c' and 'd' to set {'a', 'b'} would
|
||||
* result in sending the delta {'c', 'd'} and merge that with the state on the
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|||
use this file except in compliance with the License. You may obtain a copy of
|
||||
the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Integration with Reactive Streams, materializes into a `org.reactivestreams.Publ
|
|||
|
||||
## Description
|
||||
|
||||
This method gives you the capability to publish the data from the `Sink` through a Reactive Streams [Publisher](http://www.reactive-streams.org/reactive-streams-1.0.3-javadoc/org/reactivestreams/Publisher.html).
|
||||
This method gives you the capability to publish the data from the `Sink` through a Reactive Streams [Publisher](https://www.reactive-streams.org/reactive-streams-1.0.3-javadoc/org/reactivestreams/Publisher.html).
|
||||
Generally, in Akka Streams a `Sink` is considered a subscriber, which consumes the data from source. To integrate with other Reactive Stream implementations `Sink.asPublisher` provides a `Publisher` materialized value when run.
|
||||
Now, the data from this publisher can be consumed by subscribing to it. We can control if we allow more than one downstream subscriber from the single running Akka stream through the `fanout` parameter.
|
||||
In Java 9, the Reactive Stream API was included in the JDK, and `Publisher` is available through [Flow.Publisher](https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.Publisher.html).
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class JavaUdpMulticastTest extends AbstractJavaTest {
|
|||
interfaceIterator.hasNext(); ) {
|
||||
NetworkInterface ipv6Iface = interfaceIterator.next();
|
||||
// host assigned link local multicast address
|
||||
// http://tools.ietf.org/html/rfc3307#section-4.3.2
|
||||
// https://www.rfc-editor.org/rfc/rfc3307#section-4.3.2
|
||||
// generate a random 32 bit multicast address with the high order bit set
|
||||
final String randomAddress =
|
||||
Long.toHexString(((long) Math.abs(new Random().nextInt())) | (1L << 31))
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class ScalaUdpMulticastSpec
|
|||
val iterator = ipv6ifaces.iterator
|
||||
while (!foundOneThatWorked && iterator.hasNext) {
|
||||
val ipv6iface = iterator.next()
|
||||
// host assigned link local multicast address http://tools.ietf.org/html/rfc3307#section-4.3.2
|
||||
// host assigned link local multicast address https://www.rfc-editor.org/rfc/rfc3307#section-4.3.2
|
||||
// generate a random 32 bit multicast address with the high order bit set
|
||||
val randomAddress: String = (Random.nextInt().abs.toLong | (1L << 31)).toHexString.toUpperCase
|
||||
val group = randomAddress.grouped(4).mkString("FF02::", ":", "")
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ object AkkaBuild {
|
|||
// increase stack size (todo why?)
|
||||
"-Xss2m",
|
||||
// ## extra memory/gc tuning
|
||||
// this breaks jstat, but could avoid costly syncs to disc see http://www.evanjones.ca/jvm-mmap-pause.html
|
||||
// this breaks jstat, but could avoid costly syncs to disc see https://www.evanjones.ca/jvm-mmap-pause.html
|
||||
"-XX:+PerfDisableSharedMem",
|
||||
// tell G1GC that we would be really happy if all GC pauses could be kept below this as higher would
|
||||
// likely start causing test failures in timing tests
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue