https://github.com/Netflix/atlas

sort by:
Revision Author Date Message Commit Date
d7eac10 misc build cleanup (#404) 30 July 2016, 21:36:24 UTC
cff596e fix unused import and parens warnings 30 July 2016, 21:26:18 UTC
136943f store creds before doing snapshot build Update snapshot make target to store the credentials first before doing the publish build. This is necessary because if the creds file does not exist when the build starts the bintray plugin will no longer be enabled. 30 July 2016, 21:14:30 UTC
e2036dc fix storeBintrayCredentials task Fixes the storeBintrayCredentials to work when the bintray plugin is disabled. This allows us to generate the file needed by the bintray plugin using the environment variables available in the travis build. 30 July 2016, 21:11:55 UTC
c44b865 reduce repetition across sub-projects 30 July 2016, 20:53:04 UTC
b4a61dc disable bintray unless credentials are present Disables the bintray plugin unless the credentials file is present. This avoids many regular warnings such as: ``` Missing bintray credentials /Users/brharrington/.bintray/.credentials. Some bintray features depend on this. [warn] Credentials file /Users/brharrington/.bintray/.credentials does not exist ``` 30 July 2016, 20:40:04 UTC
d1dd88e fix "wrong forward reference" warnings 30 July 2016, 20:05:43 UTC
9235297 add jsr305 dependency This gets rid of the warnings like: ``` Class javax.annotation.CheckForNull not found - continuing with a stub. ``` This dependency can be removed after we update to scala 2.12. For details see: https://issues.scala-lang.org/browse/SI-9673 30 July 2016, 17:28:24 UTC
b166659 switch from Build.scala to build.sbt Support for Build.scala is going away in future versions. See discussion for more details: https://groups.google.com/forum/#!searchin/sbt-dev/build.scala%7Csort:relevance/sbt-dev/S-pr2nZQ3KY/YhUtksKf5PoJ Migration was surprisingly painless: just rename, delete some of the scaffolding (imports and build object), and cleanup whitespace (`%s/^ //`). 30 July 2016, 17:04:48 UTC
117764b sbt-dependency-graph 0.8.2 30 July 2016, 16:53:28 UTC
50ffd7b remove unnecessary whitespace for plugins 30 July 2016, 16:48:37 UTC
2894903 make it easier to reuse access logging (#403) Splits out a helper class for doing the access logging based on the spray http classes. Makes it easier to reuse in other contexts, in particular, for use with clients. 30 July 2016, 02:33:02 UTC
0e5b51f fix #401, add scala version to artifact id (#402) Makes it easier to automatically detect for tools that want to index scala libraries. 25 July 2016, 23:27:02 UTC
4c360d3 move appender setup to log4j config (#400) For more details see: http://netflix.github.io/spectator/en/latest/ext/log4j2/ Which is a bit out of date, with the change below the ordering issues are no longer a problem when using the appender via the config: https://github.com/Netflix/spectator/commit/33825db0b96e3337f68b85e9ecbc78567071aecc#diff-9bc272482ec3aa21411ff595a1f4225f 21 July 2016, 16:27:13 UTC
4188e3b remove diff helper, can be done with lib if needed (#399) 21 July 2016, 16:14:25 UTC
857888c create module packages for akka/webapi (#398) Pulls the setup logic in standalone into modules that we can just include in other projects. We don't use the standalone jar internally it is just for simple testing. This change allows us to further reduce deviation from oss and internal. 21 July 2016, 16:14:09 UTC
59024bb inject config and actor system (#396) Updates the akka helpers to be more DI friendly. In particular, it removes the dependency on `atlas-config` and injects the `Config` as well as the `ActorSystem`. A helper setting `atlas.akka.actors` is now available in the config to configure an actor to load into the system. 21 July 2016, 04:42:08 UTC
0331af8 remove aws lib (#397) Replaced by [iep-module-aws](https://github.com/Netflix/iep/tree/master/iep-module-aws). 21 July 2016, 03:25:47 UTC
b9dc6d5 update dependencies (#395) 19 July 2016, 12:49:39 UTC
42232fc update jmh plugin (#394) Newer version has convenient option for profiling with flight recorder: `-prof jmh.extras.JFR`. 19 July 2016, 12:41:52 UTC
f21cd0e aws-java-sdk 1.11.18 19 July 2016, 12:36:51 UTC
8cd5bef akka 2.4.8 19 July 2016, 12:36:16 UTC
992668f equalsverifier 2.1.3 19 July 2016, 12:35:35 UTC
4d1d769 log4j 2.6.2 19 July 2016, 12:34:17 UTC
a8e3711 fix #392, use random port for server in MainSuite (#393) 15 July 2016, 21:12:07 UTC
198bfd7 make set load factor consistent with map (#391) See #390 for further details. Deployments with the map changes look good overnight. Changing set to be consistent. 10 July 2016, 15:21:46 UTC
7e015e8 adjust load factor for primitive maps (#390) Changes the primitive maps to resize at 50% full rather than 70%. The 70% factor was originally chosen to keep the memory use lower and for the primary use-cases we didn't see much performance degradation at the time. Rolling it out to more systems though we have started seeing cases where it performs quite badly and 50% does an order of magnitude better. JMH test with a simple example included. ``` 0.7 [info] Benchmark Mode Cnt Score Error Units [info] IntIntMap.testIntIntHashMap800 thrpt 10 10374.640 ± 782.568 ops/s [info] IntIntMap.testIntIntHashMap8k thrpt 10 589.537 ± 8.124 ops/s [info] IntIntMap.testJavaHashMap800 thrpt 10 4051.768 ± 499.362 ops/s [info] IntIntMap.testJavaHashMap8k thrpt 10 2846.103 ± 14.858 ops/s 0.5 [info] Benchmark Mode Cnt Score Error Units [info] IntIntMap.testIntIntHashMap800 thrpt 10 11713.871 ± 271.158 ops/s [info] IntIntMap.testIntIntHashMap8k thrpt 10 3963.805 ± 59.359 ops/s [info] IntIntMap.testJavaHashMap800 thrpt 10 4371.380 ± 93.346 ops/s [info] IntIntMap.testJavaHashMap8k thrpt 10 2709.591 ± 71.376 ops/s ``` 09 July 2016, 19:38:44 UTC
0c0fb6c cleanup state management for expressions (#389) For future work, we will want to render the internal state to JSON or similar. This change set adds a side object for OnlineDes and OnlineSlidingDes which is a simple case class, easily rendered to JSON. This state class is used in the :des and :sdes operators to store and restore internal state, which allows this to be rendered to JSON as well. Additionally, the state passed into StatefulExpression eval() methods is not modified in any expression. 08 July 2016, 20:37:42 UTC
2bafcbc Merge pull request #388 from brharrington/rm-println remove println statements in trend test 07 July 2016, 04:09:51 UTC
f119955 remove println statements in trend test 07 July 2016, 03:57:21 UTC
02e014a Merge pull request #387 from brharrington/docs docs: update multi-y palette docs (#386) 07 July 2016, 03:32:27 UTC
2632a2e docs: add desc for :line, :area, and :stack 07 July 2016, 03:21:03 UTC
fbc1267 docs: update description for :ls 07 July 2016, 03:07:59 UTC
0b473c7 docs: update description and expample for :vspan 07 July 2016, 02:54:52 UTC
936a5f5 docs: update multi-y palette docs (#386) 07 July 2016, 02:23:13 UTC
60b2c8f Merge pull request #386 from brharrington/multi-y-palette use color per line by default in multi-y 07 July 2016, 01:43:22 UTC
7152047 Merge pull request #385 from brharrington/dependency-updates iep 0.4.4 07 July 2016, 01:37:48 UTC
bacebe7 use color per line by default in multi-y Previously, multi-y would enable a mode where there would be one color use per axis by default. This is to discourage creating confusing graphs where it is difficult or impossible to figure out which axis a line corresponds with. It is still recommended to avoid using more that one line per axis when using multi-y. This change modifies the behavior of the palette so that by default each line will take the next color from the main palette. This behavior seems to be less confusing to most users, though it doesn't help to discourage the anti-pattern of creating confusing charts where the lines cannot be accurately associated with an axis. The behavior if an explicit palette is specified for a given axis is not changed. 07 July 2016, 01:16:47 UTC
9feb2ed equalsverifier 2.1.2 06 July 2016, 23:38:21 UTC
c73af35 aws-java-sdk 1.11.14 06 July 2016, 23:37:51 UTC
ffd07ae iep 0.4.4 06 July 2016, 23:36:45 UTC
df0bf3d Merge pull request #384 from skandragon/trend-streaming add a test case for Trend streaming 05 July 2016, 18:04:53 UTC
275501a add a test case for Trend streaming 05 July 2016, 17:52:05 UTC
7e8db84 fix :sdes to handle streaming updates Refactors the `:sdes` operator to properly handle evaluation with incremental updates. Before the `pos` was never getting updated, so the first value would get set to `NaN` and all others would not be modified. As part of this change the code was refactored a bit so that the `OnlineSlidingDes` instance is now part of the state object. This means that the state passed in to eval will get modified. For now that is ok, but the plan is to clean it up in future commits as part of making the state serializable. 05 July 2016, 17:30:19 UTC
ed361fb Merge pull request #380 from brharrington/legend-decode hex decoding for legend values (bug 1271) 18 June 2016, 22:49:08 UTC
0661cc4 Merge pull request #379 from brharrington/dep-updates refresh dependencies 18 June 2016, 22:39:24 UTC
d42af89 hex decoding for legend values (bug 1271) Provides a style operator, `:decode`, that can be used to perform hex decoding of the legend text. Background: internally we restrict input to simple alpha-numeric characters, `.`, `-`, and `_`. if characters are used the data will get dropped as invalid. If using the servo-atlas module, then it will convert invalid characters to `_`. Most commonly that was done for spaces. The restriction is to ensure that it is easy and safe to craft the query expressions and include them as part of the URI in a variety of contexts. Precise linkability is extremely important and should not be compromised. Some users do their own url encoding and the `%` then gets converted to an `_`. This allows them to undo the restriction and get the original characters back. With this change that decoding can now be specified as part of the expression. There are quite a few misgivings about this feature. In my view this feature encourages bad behavior such as trying to encode structural information into tag values or trying to abuse it as a more general purpose data store. The compromise for now is supporting the decode with a clear warning in the docs and we'll see how it goes. 18 June 2016, 22:15:31 UTC
4fcacad update launcher version 18 June 2016, 20:23:19 UTC
a62d7f0 iep 0.4.3 18 June 2016, 20:21:19 UTC
10ba7c8 aws-java-sdk 1.11.8 18 June 2016, 20:19:20 UTC
3f8a19c spectator 0.40.0 18 June 2016, 20:18:30 UTC
d273399 log4j 2.6.1 18 June 2016, 20:17:39 UTC
59f56d1 caffeine 2.3.1 18 June 2016, 20:17:01 UTC
3e00f4a equalsverifier 2.1.1 18 June 2016, 20:16:28 UTC
d6aed41 guice 4.1.0 18 June 2016, 20:08:59 UTC
4aec834 Merge pull request #378 from brharrington/query-idx-memuse reduce memory use for query index 13 June 2016, 15:58:50 UTC
7fe80d9 improve performance of misses with SmallHashMap The default apply will create a map with the exact size of the input to optimize for memory use. This results in terrible performance for lookups of items that are not in the map because the entire array has to be scanned. In this case we use the builder and give 2x the size of the input so there will be 50% unused entries. Since we expect many misses this gives us better performance and memory overhead isn't too bad. It is still much lower than default immutable map since we don't need entry objects. **Performance Using Default Map** ``` [info] Benchmark Mode Cnt Score Error Units [info] QueryIndexMatching.index_100 thrpt 10 1495308.867 ± 54215.813 ops/s [info] QueryIndexMatching.index_1000 thrpt 10 1447373.235 ± 60491.960 ops/s [info] QueryIndexMatching.index_10000 thrpt 10 1343245.217 ± 82847.803 ops/s [info] QueryIndexMatching.index_100000 thrpt 10 1290678.687 ± 68877.756 ops/s [info] QueryIndexMatching.loop_100 thrpt 10 734350.577 ± 57604.617 ops/s [info] QueryIndexMatching.loop_1000 thrpt 10 65103.998 ± 3152.273 ops/s [info] QueryIndexMatching.loop_10000 thrpt 10 3895.021 ± 406.819 ops/s [info] QueryIndexMatching.loop_100000 thrpt 10 385.435 ± 14.239 ops/s ``` **Performance Before Change with SmallHashMap** ``` [info] Benchmark Mode Cnt Score Error Units [info] QueryIndexMatching.index_100 thrpt 10 77343.378 ± 16091.544 ops/s [info] QueryIndexMatching.index_1000 thrpt 10 7452.957 ± 131.788 ops/s [info] QueryIndexMatching.index_10000 thrpt 10 938.720 ± 22.593 ops/s [info] QueryIndexMatching.index_100000 thrpt 10 51.562 ± 4.846 ops/s [info] QueryIndexMatching.loop_100 thrpt 10 739149.328 ± 38309.430 ops/s [info] QueryIndexMatching.loop_1000 thrpt 10 73096.869 ± 4677.274 ops/s [info] QueryIndexMatching.loop_10000 thrpt 10 4290.191 ± 496.381 ops/s [info] QueryIndexMatching.loop_100000 thrpt 10 344.407 ± 56.982 ops/s ``` **Performance After Change with SmallHashMap** ``` [info] Benchmark Mode Cnt Score Error Units [info] QueryIndexMatching.index_100 thrpt 10 1386693.379 ± 52800.430 ops/s [info] QueryIndexMatching.index_1000 thrpt 10 1275380.749 ± 34382.363 ops/s [info] QueryIndexMatching.index_10000 thrpt 10 1346079.349 ± 37157.088 ops/s [info] QueryIndexMatching.index_100000 thrpt 10 1281227.628 ± 24131.273 ops/s [info] QueryIndexMatching.loop_100 thrpt 10 738372.264 ± 49134.852 ops/s [info] QueryIndexMatching.loop_1000 thrpt 10 69248.131 ± 1878.153 ops/s [info] QueryIndexMatching.loop_10000 thrpt 10 6038.581 ± 2779.993 ops/s [info] QueryIndexMatching.loop_100000 thrpt 10 404.772 ± 35.624 ops/s ``` **Memory Usage** Memmory use for 100 queries from logs: ``` Object Size (bytes) ------------------------------------------- Query index default map 466,632 Query index small before 246,568 Query index small after 241,064 ``` Note that the reduction here is because there are many small maps with less than 5 items. These now keep the special cased default maps for those sizes. So we see a bit of a reduction overall even though the size of the actual SmallHashMap intances will be larger. 11 June 2016, 23:03:41 UTC
6a5761b use SmallHashMap for children of QueryIndex The small hash map class uses quite a bit less memory than the default immutable map in scala. For a sample dataset of 100 queries pulled from logs the index size is reduced by about 50%: ``` Object Size (bytes) ------------------------------------------- Query index default Map 466,632 Query index SmallHashMap 246,568 ``` 11 June 2016, 21:45:04 UTC
e5900e7 reuse common sub-indexes The query index was just recursively building the query index tree resulting in many common sub-trees. This is wasteful for both computation and memory use. This change adds a simple map to lookup if a sub-index has already been computed. For the naive test query set it doesn't result in all that big of a reduction: ``` Object Size (bytes) ------------------------------------------- Input queries 22,896 Query index 27,560 Query index w/ reuse 24,968 ``` Subtracting out the size of the input queries: ``` Object Size (bytes) ------------------------------------------- Query index 4,664 Query index w/ reuse 2,072 ``` Around 50% reduction in overhead for the index. Looking at a real dataset of 100 queries pulled from logs we see a much bigger reduction: ``` Object Size (bytes) ------------------------------------------- Input queries 27,256 Query index 65,700,776 Query index w/ reuse 466,632 ``` Footprint for query index before change: ``` com.netflix.atlas.core.index.QueryIndex@28194a50d footprint: COUNT AVG SUM DESCRIPTION 150 50 7584 [C 2 48 96 [I 23991 43 1050512 [Lscala.collection.immutable.HashMap; 1092317 24 26215608 com.netflix.atlas.core.index.QueryIndex 168 24 4032 com.netflix.atlas.core.index.QueryIndex$Entry 270 24 6480 com.netflix.atlas.core.model.Query$And 140 24 3360 com.netflix.atlas.core.model.Query$Equal 5 24 120 com.netflix.atlas.core.model.Query$In 2 16 32 com.netflix.atlas.core.model.Query$Not 5 24 120 com.netflix.atlas.core.model.Query$Or 5 24 120 com.netflix.atlas.core.model.Query$Regex 1 16 16 com.netflix.atlas.core.model.Query$True$ 2 24 48 com.netflix.atlas.core.util.StringMatcher$Regex 2 24 48 com.netflix.atlas.core.util.StringMatcher$Regex$$anon$1 3 24 72 com.netflix.atlas.core.util.StringMatcher$StartsWith 150 24 3600 java.lang.String 2 72 144 java.util.regex.Pattern 2 16 32 java.util.regex.Pattern$Begin 1 32 32 java.util.regex.Pattern$Curly 1 16 16 java.util.regex.Pattern$Dot 1 16 16 java.util.regex.Pattern$LastNode 1 16 16 java.util.regex.Pattern$Node 2 24 48 java.util.regex.Pattern$Slice 1 16 16 scala.None$ 3 16 48 scala.Some 149671 24 3592104 scala.Tuple2 503625 24 12087000 scala.collection.immutable.$colon$colon 149671 32 4789472 scala.collection.immutable.HashMap$HashMap1 23991 24 575784 scala.collection.immutable.HashMap$HashTrieMap 1 16 16 scala.collection.immutable.Map$EmptyMap$ 375497 24 9011928 scala.collection.immutable.Map$Map1 164983 32 5279456 scala.collection.immutable.Map$Map2 56618 40 2264720 scala.collection.immutable.Map$Map3 16832 48 807936 scala.collection.immutable.Map$Map4 1 16 16 scala.collection.immutable.Nil$ 4 24 96 scala.collection.immutable.Set$Set2 1 32 32 scala.collection.immutable.Set$Set4 2558122 65700776 (total) ``` Footprint for query index after change: ``` com.netflix.atlas.core.index.QueryIndex@50f6ac94d footprint: COUNT AVG SUM DESCRIPTION 150 50 7584 [C 2 48 96 [I 1006 37 37824 [Lscala.collection.immutable.HashMap; 2274 24 54576 com.netflix.atlas.core.index.QueryIndex 141 24 3384 com.netflix.atlas.core.index.QueryIndex$Entry 270 24 6480 com.netflix.atlas.core.model.Query$And 140 24 3360 com.netflix.atlas.core.model.Query$Equal 5 24 120 com.netflix.atlas.core.model.Query$In 2 16 32 com.netflix.atlas.core.model.Query$Not 5 24 120 com.netflix.atlas.core.model.Query$Or 5 24 120 com.netflix.atlas.core.model.Query$Regex 1 16 16 com.netflix.atlas.core.model.Query$True$ 2 24 48 com.netflix.atlas.core.util.StringMatcher$Regex 2 24 48 com.netflix.atlas.core.util.StringMatcher$Regex$$anon$1 3 24 72 com.netflix.atlas.core.util.StringMatcher$StartsWith 150 24 3600 java.lang.String 2 72 144 java.util.regex.Pattern 2 16 32 java.util.regex.Pattern$Begin 1 32 32 java.util.regex.Pattern$Curly 1 16 16 java.util.regex.Pattern$Dot 1 16 16 java.util.regex.Pattern$LastNode 1 16 16 java.util.regex.Pattern$Node 2 24 48 java.util.regex.Pattern$Slice 1 16 16 scala.None$ 3 16 48 scala.Some 4647 24 111528 scala.Tuple2 153 24 3672 scala.collection.immutable.$colon$colon 4647 32 148704 scala.collection.immutable.HashMap$HashMap1 1006 24 24144 scala.collection.immutable.HashMap$HashTrieMap 1 16 16 scala.collection.immutable.Map$EmptyMap$ 250 24 6000 scala.collection.immutable.Map$Map1 446 32 14272 scala.collection.immutable.Map$Map2 530 40 21200 scala.collection.immutable.Map$Map3 398 48 19104 scala.collection.immutable.Map$Map4 1 16 16 scala.collection.immutable.Nil$ 4 24 96 scala.collection.immutable.Set$Set2 1 32 32 scala.collection.immutable.Set$Set4 16256 466632 (total) ``` 11 June 2016, 21:21:34 UTC
0bc717b intern query objects and strings while parsing The biggest chunk of memory usage for the test query set is coming from the query objects themselves. Sizes: ``` Object Size (bytes) ------------------------------------------- Input queries 71,976 Query index 76,640 Input queries w/ interning 22,896 ``` This is just an example as part of the test. It was needed so we could test larger data sets without getting an OOM exception. It is not being rolled into the query index because it would likely need to be done earlier while processing input queries. The mechanism can be copied from the test case for now if it is needed. If a more generic utility is found to be generally useful going forward, then we'll revisit. 11 June 2016, 20:48:28 UTC
8ee678a add test case showing memory use of query index 11 June 2016, 20:37:53 UTC
6d3ad5e Merge pull request #377 from brharrington/issue-373 fixes #373 - return 400 status code for bad object 10 June 2016, 15:31:16 UTC
a3acd37 Merge pull request #375 from brharrington/deprecated-spectator-sandbox move off deprecated BucketCounter 10 June 2016, 15:15:44 UTC
78f913d fixes #373 - return 400 status code for bad object 10 June 2016, 15:13:53 UTC
34642be move off deprecated BucketCounter 10 June 2016, 13:17:33 UTC
12e9803 Merge pull request #372 from brharrington/v2-json-axis-color always add the axis color 08 June 2016, 04:11:13 UTC
ca52496 always add the axis color For the v2.json format always be explicit about the axis color. Before it was optional, but this makes it easier for dynamic rendering without having to worry about the rules the backend uses to assign the color based on the lines. 08 June 2016, 04:00:18 UTC
a5dceef Merge pull request #371 from brharrington/rm-request-id remove legacy request id class 07 June 2016, 14:58:22 UTC
c75bbaf Merge pull request #370 from brharrington/v2-json-plot-ref lines should explicitly refer to axis 07 June 2016, 14:45:07 UTC
31e5597 Merge pull request #368 from brharrington/jackson-2.7.4 jackson 2.7.4 07 June 2016, 14:42:00 UTC
b7fb16e Merge pull request #369 from brharrington/trusty use trusty build environment 07 June 2016, 14:41:37 UTC
bf15345 remove legacy request id class 07 June 2016, 14:40:33 UTC
0a25825 lines should explicitly refer to axis For the experimental v2.json format this changes the output so that all plot metadata will be emitted first and then the lines will explicitly refer to the axis. Before the metadata for a plot would be emitted followed by all lines on that plot. That would be repeated for each plot. The problem with this is that format becomes cumbersome for a streaming evaluation where we only have data for a single time interval at a time. With this change the same format can be used for the normal evaluation or a streaming evaluation. 07 June 2016, 14:31:03 UTC
2c97fd1 use trusty build environment https://docs.travis-ci.com/user/trusty-ci-environment/ 07 June 2016, 12:49:21 UTC
4aa8a62 aws sdk 1.11.6 07 June 2016, 12:36:19 UTC
7d9ece1 akka 2.4.7 07 June 2016, 12:34:57 UTC
ca028dd jackson 2.7.4 Note, scala Option now behaves more like java 8 Optional. The include setting has been changed from NON_NULL to NON_ABSENT. 07 June 2016, 12:28:39 UTC
c4b6baf Updated Bintray API key 28 May 2016, 01:05:25 UTC
46b6b15 Merge pull request #362 from brharrington/des-stream-eval fix incremental des evaluation 23 May 2016, 18:20:09 UTC
ecaf3d3 fix incremental des evaluation Incremental DES evaluation should match a global evaluation with all data available in advance. The pos was being updated such that values after the first datapoint were getting ignored. There is still a problem with `:sdes`, but for now this change just adds a test to illustrate it. We'll look at fixing `:sdes` later. 23 May 2016, 18:02:07 UTC
7a62618 Merge pull request #361 from brharrington/fix-doc-links docs: fix links to spectator wiki 21 May 2016, 03:33:06 UTC
4ce583a docs: fix links to spectator wiki Spectator docs moved off of github wiki. Fix links that were broken with that change. 20 May 2016, 22:48:21 UTC
68d3ad7 Merge pull request #360 from brharrington/putifabsent add putIfAbsent to RefIntHashMap 20 May 2016, 02:30:21 UTC
d9dd98f add putIfAbsent to RefIntHashMap 20 May 2016, 02:18:11 UTC
654b698 Merge pull request #359 from brharrington/dep-updates update akka and aws deps 19 May 2016, 19:43:25 UTC
a9dcfd6 update akka and aws deps 19 May 2016, 17:36:46 UTC
13f542e Merge pull request #358 from brharrington/file-logging logging config to split out access log 14 May 2016, 16:15:43 UTC
010283f logging config to split out access log Add helper logging configuration that writes the data to files instead of stdout and splits out the access log to separate files. 14 May 2016, 14:28:15 UTC
1958df5 Merge pull request #357 from brharrington/remove-trove-dependency remove dependency on trove4j 09 May 2016, 01:37:54 UTC
38e17ed remove dependency on trove 09 May 2016, 01:20:45 UTC
177f6dc add RefIntHashMap using open addressing 09 May 2016, 01:20:31 UTC
6252a57 fix increment signature for DoubleIntHashMap Fix increment on DoubleIntHashMap to take a Double instead of a Long. Improves test coverage for all the primitive collections. 09 May 2016, 01:20:15 UTC
0ec6b66 add DoubleIntHashMap based on LongIntHashMap 09 May 2016, 01:19:58 UTC
820a50d add IntIntHashMap using open addressing 09 May 2016, 01:19:44 UTC
ecdfec1 fix size of set for dedup The size was always getting incremented, even if the item was already present in the set. Now it will only get incremented if it is new. 09 May 2016, 01:19:27 UTC
7d19648 add IntHashSet util for building index Trying to simplify and reduce the dependencies needed by the core project. This change replaces the trove TIntHashSet with a simple open addressing hash set that does just enough for what we need: dedup and extract the final set. Performance and memory overhead are comparable: For a small set (5 items): ``` com.netflix.atlas.core.util.IntHashSet@33afa13bd footprint: COUNT AVG SUM DESCRIPTION 1 64 64 [I 1 32 32 com.netflix.atlas.core.util.IntHashSet 2 96 (total) java.util.HashSet@3590fc5bd footprint: COUNT AVG SUM DESCRIPTION 1 80 80 [Ljava.util.HashMap$Node; 5 16 80 java.lang.Integer 1 16 16 java.lang.Object 1 48 48 java.util.HashMap 5 32 160 java.util.HashMap$Node 1 16 16 java.util.HashSet 14 400 (total) gnu.trove.set.hash.TIntHashSet@62379589d footprint: COUNT AVG SUM DESCRIPTION 1 40 40 [B 1 112 112 [I 1 56 56 gnu.trove.set.hash.TIntHashSet 3 208 (total) ``` For a larger set with 10k values: ``` com.netflix.atlas.core.util.IntHashSet@33afa13bd footprint: COUNT AVG SUM DESCRIPTION 1 102888 102888 [I 1 32 32 com.netflix.atlas.core.util.IntHashSet 2 102920 (total) java.util.HashSet@3590fc5bd footprint: COUNT AVG SUM DESCRIPTION 1 65552 65552 [Ljava.util.HashMap$Node; 10000 16 160000 java.lang.Integer 1 16 16 java.lang.Object 1 48 48 java.util.HashMap 10000 32 320000 java.util.HashMap$Node 1 16 16 java.util.HashSet 20004 545632 (total) gnu.trove.set.hash.TIntHashSet@4c79ca55d footprint: COUNT AVG SUM DESCRIPTION 1 25736 25736 [B 1 102888 102888 [I 1 56 56 gnu.trove.set.hash.TIntHashSet 3 128680 (total) ``` 09 May 2016, 01:12:38 UTC
b3f547a Merge pull request #355 from brharrington/config-classloader work-around for null context classloader 06 May 2016, 03:52:42 UTC
878d393 work-around for null context classloader In some cases we are seeing: ``` Thread.currentThread().getContextClassLoader() == null ``` With this change we'll log a warning and try the classloader for a given class. 06 May 2016, 03:39:00 UTC
5d6f47b Merge pull request #354 from brharrington/caffeine switch from guava to caffeine for cache 03 May 2016, 16:13:34 UTC
2152d6f remove jsr305 dependency 03 May 2016, 16:04:15 UTC
back to top