parent
8c9b6f3608
commit
8db6362d71
14 changed files with 15 additions and 15 deletions
|
|
@ -3,7 +3,7 @@ options {
|
||||||
|
|
||||||
// If there is a firewall between you and nameservers you want
|
// If there is a firewall between you and nameservers you want
|
||||||
// to talk to, you may need to fix the firewall to allow multiple
|
// to talk to, you may need to fix the firewall to allow multiple
|
||||||
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
|
// ports to talk. See https://www.kb.cert.org/vuls/id/800113
|
||||||
|
|
||||||
// If your ISP provided one or more IP addresses for stable
|
// If your ISP provided one or more IP addresses for stable
|
||||||
// nameservers, you probably want to use them as forwarders.
|
// nameservers, you probably want to use them as forwarders.
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import akka.util.Unsafe;
|
||||||
* (Apache V2: https://github.com/plokhotnyuk/actors/blob/master/LICENSE)
|
* (Apache V2: https://github.com/plokhotnyuk/actors/blob/master/LICENSE)
|
||||||
*
|
*
|
||||||
* Dmitriy Vyukov's non-intrusive MPSC queue:
|
* Dmitriy Vyukov's non-intrusive MPSC queue:
|
||||||
* - http://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue
|
* - https://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue
|
||||||
* (Simplified BSD)
|
* (Simplified BSD)
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lock-free MPSC linked queue implementation based on Dmitriy Vyukov's non-intrusive MPSC queue:
|
* Lock-free MPSC linked queue implementation based on Dmitriy Vyukov's non-intrusive MPSC queue:
|
||||||
* http://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue
|
* https://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue
|
||||||
*
|
*
|
||||||
* This queue could be wait-free (i.e. without the spinning loops in peekNode and pollNode) if
|
* This queue could be wait-free (i.e. without the spinning loops in peekNode and pollNode) if
|
||||||
* it were permitted to return null while the queue is not quite empty anymore but the enqueued
|
* it were permitted to return null while the queue is not quite empty anymore but the enqueued
|
||||||
|
|
|
||||||
|
|
@ -326,7 +326,7 @@ private[io] abstract class TcpConnection(val tcp: TcpExt, val channel: SocketCha
|
||||||
// If peer closed first, the socket is now fully closed.
|
// If peer closed first, the socket is now fully closed.
|
||||||
// Also, if shutdownOutput threw an exception we expect this to be an indication
|
// Also, if shutdownOutput threw an exception we expect this to be an indication
|
||||||
// that the peer closed first or concurrently with this code running.
|
// that the peer closed first or concurrently with this code running.
|
||||||
// also see http://bugs.sun.com/view_bug.do?bug_id=4516760
|
// also see https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4516760
|
||||||
if (peerClosed || !safeShutdownOutput())
|
if (peerClosed || !safeShutdownOutput())
|
||||||
doCloseConnection(info.handler, closeCommander, closedEvent)
|
doCloseConnection(info.handler, closeCommander, closedEvent)
|
||||||
else context.become(closing(info, closeCommander))
|
else context.become(closing(info, closeCommander))
|
||||||
|
|
@ -365,7 +365,7 @@ private[io] abstract class TcpConnection(val tcp: TcpExt, val channel: SocketCha
|
||||||
try channel.socket.setSoLinger(true, 0) // causes the following close() to send TCP RST
|
try channel.socket.setSoLinger(true, 0) // causes the following close() to send TCP RST
|
||||||
catch {
|
catch {
|
||||||
case NonFatal(e) =>
|
case NonFatal(e) =>
|
||||||
// setSoLinger can fail due to http://bugs.sun.com/view_bug.do?bug_id=6799574
|
// setSoLinger can fail due to https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6799574
|
||||||
// (also affected: OS/X Java 1.6.0_37)
|
// (also affected: OS/X Java 1.6.0_37)
|
||||||
if (TraceLogging) log.debug("setSoLinger(true, 0) failed with [{}]", e)
|
if (TraceLogging) log.debug("setSoLinger(true, 0) failed with [{}]", e)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import akka.util.ccompat._
|
||||||
* from whom data can be received. For “unconnected” UDP mode see [[Udp]].
|
* from whom data can be received. For “unconnected” UDP mode see [[Udp]].
|
||||||
*
|
*
|
||||||
* For a full description of the design and philosophy behind this IO
|
* For a full description of the design and philosophy behind this IO
|
||||||
* implementation please refer to <a href="http://doc.akka.io/">the Akka online documentation</a>.
|
* implementation please refer to <a href="https://akka.io/docs/">the Akka online documentation</a>.
|
||||||
*
|
*
|
||||||
* The Java API for generating UDP commands is available at [[UdpConnectedMessage]].
|
* The Java API for generating UDP commands is available at [[UdpConnectedMessage]].
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/* __ *\
|
/* __ *\
|
||||||
** ________ ___ / / ___ Scala API **
|
** ________ ___ / / ___ Scala API **
|
||||||
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
|
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
|
||||||
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
|
** __\ \/ /__/ __ |/ /__/ __ | https://scala-lang.org/ **
|
||||||
** /____/\___/_/ |_/____/_/ | | **
|
** /____/\___/_/ |_/____/_/ | | **
|
||||||
** |/ **
|
** |/ **
|
||||||
\* */
|
\* */
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ object GSet {
|
||||||
* remove elements of a G-Set.
|
* remove elements of a G-Set.
|
||||||
*
|
*
|
||||||
* It is described in the paper
|
* It is described in the paper
|
||||||
* <a href="http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
* <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
||||||
*
|
*
|
||||||
* A G-Set doesn't accumulate any garbage apart from the elements themselves.
|
* A G-Set doesn't accumulate any garbage apart from the elements themselves.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ object GSet {
|
||||||
* remove elements of a G-Set.
|
* remove elements of a G-Set.
|
||||||
*
|
*
|
||||||
* It is described in the paper
|
* It is described in the paper
|
||||||
* <a href="http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
* <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
||||||
*
|
*
|
||||||
* A G-Set doesn't accumulate any garbage apart from the elements themselves.
|
* A G-Set doesn't accumulate any garbage apart from the elements themselves.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ object LWWRegister {
|
||||||
* Implements a 'Last Writer Wins Register' CRDT, also called a 'LWW-Register'.
|
* Implements a 'Last Writer Wins Register' CRDT, also called a 'LWW-Register'.
|
||||||
*
|
*
|
||||||
* It is described in the paper
|
* It is described in the paper
|
||||||
* <a href="http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
* <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
||||||
*
|
*
|
||||||
* Merge takes the register with highest timestamp. Note that this
|
* Merge takes the register with highest timestamp. Note that this
|
||||||
* relies on synchronized clocks. `LWWRegister` should only be used when the choice of
|
* relies on synchronized clocks. `LWWRegister` should only be used when the choice of
|
||||||
|
|
|
||||||
|
|
@ -265,7 +265,7 @@ object ORSet {
|
||||||
* over remove.
|
* over remove.
|
||||||
*
|
*
|
||||||
* It is not implemented as in the paper
|
* It is not implemented as in the paper
|
||||||
* <a href="http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
* <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
||||||
* This is more space efficient and doesn't accumulate garbage for removed elements.
|
* This is more space efficient and doesn't accumulate garbage for removed elements.
|
||||||
* It is described in the paper
|
* It is described in the paper
|
||||||
* <a href="https://hal.inria.fr/file/index/docid/738680/filename/RR-8083.pdf">An optimized conflict-free replicated set</a>
|
* <a href="https://hal.inria.fr/file/index/docid/738680/filename/RR-8083.pdf">An optimized conflict-free replicated set</a>
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ object PNCounter {
|
||||||
* Implements a 'Increment/Decrement Counter' CRDT, also called a 'PN-Counter'.
|
* Implements a 'Increment/Decrement Counter' CRDT, also called a 'PN-Counter'.
|
||||||
*
|
*
|
||||||
* It is described in the paper
|
* It is described in the paper
|
||||||
* <a href="http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
* <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
||||||
*
|
*
|
||||||
* PN-Counters allow the counter to be incremented by tracking the
|
* PN-Counters allow the counter to be incremented by tracking the
|
||||||
* increments (P) separate from the decrements (N). Both P and N are represented
|
* increments (P) separate from the decrements (N). Both P and N are represented
|
||||||
|
|
|
||||||
|
|
@ -250,7 +250,7 @@ object ORSet {
|
||||||
* over remove.
|
* over remove.
|
||||||
*
|
*
|
||||||
* It is not implemented as in the paper
|
* It is not implemented as in the paper
|
||||||
* <a href="http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
* <a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf">A comprehensive study of Convergent and Commutative Replicated Data Types</a>.
|
||||||
* This is more space efficient and doesn't accumulate garbage for removed elements.
|
* This is more space efficient and doesn't accumulate garbage for removed elements.
|
||||||
* It is described in the paper
|
* It is described in the paper
|
||||||
* <a href="https://hal.inria.fr/file/index/docid/738680/filename/RR-8083.pdf">An optimized conflict-free replicated set</a>
|
* <a href="https://hal.inria.fr/file/index/docid/738680/filename/RR-8083.pdf">An optimized conflict-free replicated set</a>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
# Make your edits in your application.conf in order to override these settings.
|
# Make your edits in your application.conf in order to override these settings.
|
||||||
|
|
||||||
# Directory of persistence journal and snapshot store plugins is available at the
|
# Directory of persistence journal and snapshot store plugins is available at the
|
||||||
# Akka Community Projects page http://akka.io/community/
|
# Akka Community Projects page https://akka.io/community/
|
||||||
|
|
||||||
# Default persistence extension settings.
|
# Default persistence extension settings.
|
||||||
akka.persistence {
|
akka.persistence {
|
||||||
|
|
|
||||||
|
|
@ -594,7 +594,7 @@ akka {
|
||||||
# Enables SO_REUSEADDR, which determines when an ActorSystem can open
|
# Enables SO_REUSEADDR, which determines when an ActorSystem can open
|
||||||
# the specified listen port (the meaning differs between *nix and Windows)
|
# the specified listen port (the meaning differs between *nix and Windows)
|
||||||
# Valid values are "on", "off" and "off-for-windows"
|
# Valid values are "on", "off" and "off-for-windows"
|
||||||
# due to the following Windows bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4476378
|
# due to the following Windows bug: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4476378
|
||||||
# "off-for-windows" of course means that it's "on" for all other platforms
|
# "off-for-windows" of course means that it's "on" for all other platforms
|
||||||
tcp-reuse-addr = off-for-windows
|
tcp-reuse-addr = off-for-windows
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue