Commit graph

37 commits

Author SHA1 Message Date
Patrik Nordwall
c015f22824 !peq #19324 update persistence-query to stream 2.0.1 2016-01-11 18:27:35 +01:00
Patrik Nordwall
0cdd9af3c4 +per #18485 Add cluster sharding data removal utility 2015-09-17 14:07:08 +02:00
Patrik Nordwall
cce3690c72 =pro #18408 Update to Scala 2.11.7 2015-09-08 14:38:09 +02:00
Roland Kuhn
c3ecb87a65 =all #13783 replace protobuf dependency by embedded version
- created new subproject akka-protobuf (and added COPYING and LICENSE)
- renamed com.google.protobuf -> akka.protobuf everywhere
- also added such renaming step to the results of protoc compilation in
  project/Protobuf.scala
- had to include transcriptions of Netty’s ProtobufEncoder/Decoder to
  make multi-node-testkit compile again
2015-09-04 09:06:50 +02:00
Patrik Nordwall
009d80dd35 +per #18190 leveldb impl of EventsByPersistenceId query
* also changed EventsByPersistenceId query type to return
Source[EventEnvelope]
2015-08-19 18:58:58 +02:00
Patrik Nordwall
9a90f36d98 =clm #17768 Silence stacktrace in cluster sample
It works, but the stack trace is very annoying since it will always be printed by Sigar itself
(so stupid of such a library to use stderr and stdout).

    [error] org.hyperic.sigar.SigarException: no libsigar-universal64-macosx.dylib in java.library.path
    [error]     at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:174)
    [error]     at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:102)

A workaround is to run with `-Djava.library.path=./target/native`, then it will only print
the stack trace when it is not provisioned and next time it's silent.

Also updated to latest sigar-loader, but that did not make
any difference for this issue
2015-08-18 14:55:10 +02:00
Patrik Nordwall
2bde9a6820 =pro Remove 2.12.0-M2 from cross 2015-08-14 15:21:34 +02:00
Patrik Nordwall
720dd56270 =pro Scala 2.12.0-M2 2015-08-14 14:31:56 +02:00
Konrad Malawski
5a6ee8bd49 Merge pull request #18051 from akka/wip-16541-persistence-query
+per #16541 initial version of the Persistence Query module
2015-08-12 22:14:44 +02:00
Patrik Nordwall
63ba2ae8e7 +per #17894 Support Future(Nil) in asyncWriteMessages
Future.successful(Nil) is an alternative way to signal all good
in the happy case, for reduced allocations.

fix test failure

benchJmh leveldb dependency

revert leveldb change
2015-08-12 13:54:29 +02:00
Patrik Nordwall & Konrad Malawski
f849793f36 +per #16541 initial version of the Persistence Query module 2015-08-11 16:35:28 +02:00
Patrik Nordwall
e13a2d9560 Revert "=pro remove cross scala 2.12.0-M1"
This reverts commit bf485353f0.
2015-06-26 17:21:35 +02:00
Patrik Nordwall
bf485353f0 =pro remove cross scala 2.12.0-M1 2015-06-26 16:49:50 +02:00
Konrad Malawski
7e86dac542 +per #17579 #17617 Introduces EventAdapter
+ per plugin scoped adapters
+ could be swapped during runtime
+per EventAdapter now has manifest and is configurable ai la serializers
+ json examples in docs
+ including "completely manual" example in case one wants to add
  metadata TO the persisted event
+ better error reporting when misconfigured bindings
+ manifest is handled by in memory plugin
- did not check if it works with LevelDB plugin yet
> TODO: json example uses Gson, as that's simplest to do, can we use
+per allows 1:n adapters, multiple adapters can be bound to 1 class
2015-06-23 16:57:43 +02:00
Patrik Nordwall
cbe5dd2cf5 +cdd #16799 Add Distributed Data module
Previously know as [patriknw/akka-data-replication](https://github.com/patriknw/akka-data-replication),
which was originally inspired by [jboner/akka-crdt](https://github.com/jboner/akka-crdt).

The functionality is very similar to akka-data-replication 0.11.

Here is a list of the most important changes:

* The package name changed to `akka.cluster.ddata`
* The extension was renamed to `DistributedData`
* The keys changed from strings to classes with unique identifiers and type information of the data values,
  e.g. `ORSetKey[Int]("set2")`
* The optional read consistency parameter was removed from the `Update` message. If you need to read from
  other replicas before performing the update you have to first send a `Get` message and then continue with
  the ``Update`` when the ``GetSuccess`` is received.
* `BigInt` is used in `GCounter` and `PNCounter` instead of `Long`
* Improvements of java api
* Better documentation
2015-06-18 15:58:22 +02:00
Roland Kuhn
5dc25fbb44 add crosscompilation for 2.12.0-M1 2015-05-21 21:09:30 +02:00
Konrad Malawski
0668ea5e22 =act #17071 Update typesafe-config to 1.3.0 2015-05-19 12:02:55 +02:00
Patrik Nordwall
a8687f9c4e =pro #16695 Update dependencies
io.netty:netty: 3.8.0.Final -> 3.10.3.Final
org.slf4j:slf4j-api: 1.7.7 -> 1.7.12
org.fusesource.leveldbjni:leveldbjni-all:optional;provided: 1.7 -> 1.8
org.apache.camel:camel-core: 2.13.0 -> 2.13.4

ch.qos.logback:logback-classic:test: 1.0.13 -> 1.1.3
junit:junit:test: 4.10 -> 4.12
org.scalatest:scalatest:test: 2.1.3 -> 2.2.4
org.mockito:mockito-all:test: 1.9.5 -> 1.10.19
org.scala-lang.modules:scala-xml:test: 1.0.1 -> 1.0.4
com.novocode:junit-interface:test : 0.8 -> 0.11
org.slf4j:jul-to-slf4j:test: 1.7.7  -> 1.7.12
org.slf4j:log4j-over-slf4j:test: 1.7.7  -> 1.7.12
com.codahale.metrics:metrics-core:test: 3.0.1  -> 3.0.2
com.codahale.metrics:metrics-jvm:test: 3.0.1  -> 3.0.2
org.scalacheck:scalacheck:test: 1.11.3 -> 1.11.6
org.apache.commons:commons-math:test: 2.1 -> 2.2
commons-codec:commons-codec:test: 1.7 -> 1.10
2015-05-19 08:37:54 +02:00
Patrik Nordwall
10a11e415e !cls #13711 Move cluster sharding 2015-05-11 20:07:22 +02:00
Patrik Nordwall
fb72214d99 !clt #13711 Move cluster tools from contrib
* new module akka-cluster-tools containing
  cluster singleton, distributed pub-sub, and cluster client
2015-05-11 20:07:21 +02:00
Patrik Nordwall
c39e41c45b Merge pull request #17382 from akka/wip-17381-rm-scala-2.10-patriknw
!pro #17381 Remove cross build for Scala 2.10
2015-05-11 20:04:45 +02:00
Konrad Malawski
bebdb870b6 +pro Update ScalaTest in order to use tag ignoring in sbt 2015-05-08 15:40:34 +02:00
Patrik Nordwall
b0636bb013 !pro #17381 Remove cross build for Scala 2.10
* 2.12 will be added
2015-05-05 14:52:26 +02:00
Andrei Pozolotin
5c5e07ec4e !per #15884 Make LevelDB an optional dependency 2015-03-24 13:58:09 -05:00
Andrei Pozolotin
7b9f77a073 + akka-cluster-metrics: new akka module
* new akka module split from akka-cluster
* provide sigar provisioning
* fix ewma usage
* resolve #16121
* see #16354
2015-01-19 10:23:54 -06:00
Roland Kuhn
93ef92bcfb =per #16659 fix deserialization of SnapshotHeader
This needs to be done differently for Scala 2.10 and 2.11 since
scala.Option’s serialVersionUID changed between these series.
2015-01-16 14:34:59 +01:00
Roland Kuhn
239619e68f -zer #15864 remove zeromq module 2015-01-15 20:19:35 +01:00
Martynas Mickevičius
932f8a9bd7 =pro #16371 enable cross builds
* changed zeromq-scala-binding library
* modified build-release task to include distributions from cross builds
* removed tar-zip step from release script, because tgz package is not used from the website
* release script now releases for all crossScalaVersions
* dry run is the default now
2014-11-30 15:53:41 +02:00
Martynas Mickevičius
2f321d12b3 =pro load sample builds with project dependencies
* load sample builds from their definitions and replace library dependencies with project ones
* remove redefined sample build definitions
* test osgi sample by running a maven command
2014-11-13 18:56:02 +02:00
Björn Antonsson
bb75040f88 =pro Cleaner way to declare Scala Version dependent dependencies
Port of PR #15887 to master
2014-09-16 10:53:04 +02:00
Konrad 'ktoso' Malawski
90bc347607 +per #13815 akka-persistence-tck based on @krasserm's work
Original here: https://github.com/krasserm/akka-persistence-testkit

New features:
* merged martin's tests
* usable from java (junit 4)
* simple bench test, which helps checking if ordering is perserved under
  bigger workloads and simple perf checking
* does NOT include tests for already deprecated features (deleteMessages)
* docs

Resolves #13815

Conflicts:
	project/AkkaBuild.scala
2014-07-14 19:39:30 +02:00
Heiko Seeberger
ea13e6d869 Upgrade to Mockito 1.9.5 (closes #15493) 2014-07-04 09:45:35 +02:00
xuwei-k
45ff77e4f9 =act #15395 update typesafe config API URL 2014-06-20 14:45:07 +02:00
Björn Antonsson
cd7e456889 =pro #15116 Update Typesafe Config to 1.2.1 2014-05-21 10:16:24 +02:00
Konrad 'ktoso' Malawski
0ab8e2f37a =tes #15165 MetricsKit should not nullpointer on racy graphite usage
The report() call can come from multiple threads in our code,
yet it was opening/closing a shared graphite client instance in this
method, causing NPE when periodic reporting kicked in during a manual
report() call. We want to be able to do this - thus rewrite to safe impl

Removed metrics-graphite dependency, replaced by in house impl.
The previous was using discrete write() calls, which could be entangled
when called from multiple threads, and produce invalid metric lines.
Current impl is simpler and threadsafe, as the lock for write(String) to
aquired for the entire string lenght's write (unlike multiple write calls).

Resolves #15165
2014-05-20 01:22:01 +02:00
Konrad 'ktoso' Malawski
684c0279ec =act,tes Initial draft of internal MetricsKit
Note: This is NOT aimed to provide an micro-benchmarking solution.
The goal is to provide data for broad trend analysis. For techniques
that fight the inliner and other specialised techniques, refer to JMH.

+ custom console and graphite reporters
  - had to be custom because it's not possible to add custom metric
    types to the existing reporters
+ initial hdr.Histogram histogram() provider, see
  http://latencyutils.github.io/LatencyUtils/
+ Not using timers provided by Metrics, instead use the above histogram
+ Added average Actor size measurement
+ Measuring the "blocking time" when an actor is created, before we fire
  of the async part of this process; Measures in loop and will fluctuate
  a lot. Times are in `us` -- System.nanoTime should provide good enough
  resolution.
+ Measuring total actor creation time by using
  `KnownOpsInTimespanTimer`, which given a known number of ops, in a
  large amount of time, roughtly estimates time per one operation.
  // Yes, we are aware of the possibility of GC pauses and other horrors
+ All classes are `private[akka]`, we should not encourage people to use
  this yet
+ Counters use Java 8's `LongAdder`, which is metric's private;
  The new trend in Java land will be copy paste-ing this class ;)
+ Metrics are logged to Graphite, so we can long-term analyse these
+ Reporters are configurable using typesafe-config

! I'm not very happy about how I work around Metrics not being too open
  for adding additional custom metrics. Seems like a hack at places.
  I will consider removing the Metrics dependency all together.
  numbers

Example output:

```
-- KnownOpsInTimespanTimer-------------------------------------------
  actor-creation.total.creating-100000-actors.Props|new-EmptyArgsActor|…||-same
               ops = 100000
              time = 1.969 s
             ops/s = 50782.22
               avg = 19.69 μs

-- AveragingGauge---------------------------------------------------
  actor-creation.Props|new-EmptyArgsActor|…||-same.avg-mem-per-actor
                avg = 439.67
```
2014-05-08 14:52:39 +02:00
Martynas Mickevicius
ee5ea5e13f =pro #15031 move build logic into separate files 2014-05-07 15:07:05 +02:00