Commit Graph

415 Commits

Author SHA1 Message Date
andi a5c401c722 scroll proposal into view 2018-04-14 10:34:25 +02:00
andi 19a08558e3 Chrome uses double for height/width of elements
This caused a NumberFormatExeption when trying to convert the string
representation of a double to an int.
Fixed by floor'ing the value.
2018-04-14 10:08:55 +02:00
andi 23e16ff61d ignore null values in tags 2018-04-14 09:58:51 +02:00
andi 7018a11ab3 add links to current settings and to current image 2018-04-10 19:59:09 +02:00
andi fe29b0d738 remove obsolete variables from model 2018-04-08 19:43:47 +02:00
andi 12e766bd60 label was not correctly linked to drop-down 2018-04-08 19:34:35 +02:00
andi 8f69be3b66 read initial values from URI and provide permanent link 2018-04-08 19:28:19 +02:00
andi 1eabd4aa96 update jquery and remove obsolete js/css files 2018-04-08 17:44:03 +02:00
andi 59fb35d7d8 show waiting game 2018-04-08 17:13:01 +02:00
andi 1755562a84 do not move the cursor to the end when applying a proposal 2018-04-08 14:06:13 +02:00
andi 68ee88bce0 rewrite autocomplete in vue.js 2018-04-08 08:44:28 +02:00
andi 5e53e667fe use vue.js for the UI 2018-04-02 09:18:41 +02:00
andi 22c99f8517 fix null pointer exception
filename were generated without '$', but the parsing code expected
the '$'.
2018-03-28 19:34:48 +02:00
andi 9f37243ba3 Reduce memory consumption of Tags by 50%
by storing only the bytes instead of the string.
2018-03-28 19:08:53 +02:00
andi 81711d551f fix performance regression
The last improvement of memory usage introduced a performance
regression. The ingestion performance dropped by 50%-80%, because
for every inserted entry the Tags were created inefficient.
2018-03-27 19:30:18 +02:00
andi de0f8412bd show proposals for empty terminals 2018-03-25 19:17:49 +02:00
andi 2cd32805d9 show better error message when there are too many parallel requests 2018-03-25 18:03:20 +02:00
andi 540b6c79f4 restart waiting game 2018-03-25 17:59:51 +02:00
andi c581e352e4 add method that returns a string representation of the tags in Tags 2018-03-19 19:29:22 +01:00
andi 5343c0d427 reduce memory usage
Reduce memory usage by storing the filename as string instead of
individual tags.
2018-03-19 19:21:57 +01:00
ahr 181fce805d do not run a gc after creating a plot
the gc often takes a second or more, which slows down the rendering a
lot
2018-03-11 16:25:52 +01:00
ahr caf400343e remove time measurements
For each entry we executed two calls to System.nanoTime().
The resulting numbers aren't very reliable and calling nanoTime
that often (160k - 300k per second) is quite expensive.
2018-03-09 08:46:09 +01:00
ahr 3387ebc134 use epoch millis instead of creating a date object
We only have to check if one timestamp is newer than another.
We don't have to create an expensive date object to do that.
2018-03-09 08:43:37 +01:00
ahr 829fddf88c merge key and value arrays
we have several hundred thousand of those MiniMaps and this reduces
the memory requirement by 8 bytes per instance
2018-03-09 08:40:12 +01:00
ahr 7e5b762c0d pre-compute firstByteMaxValue
this operation is executed very often during ingestion
2018-03-09 08:38:58 +01:00
ahr 5a9aae70af handle corrupt json
Entries must be separated by a newline. This allows
us to handle corrupt json entries, because we know
that entries only start at a line beginning.
2018-03-03 09:58:50 +01:00
ahr 9d4eb660a5 update gradle and spring
gradle to 4.6
spring to 1.5.10.RELEASE
2018-03-03 08:34:38 +01:00
ahr 6b60fd542c add percentile plots 2018-03-03 08:19:26 +01:00
andi b4a0514267 draw points and percentile lines with the same color 2018-01-21 14:09:34 +01:00
andi bb7701e7c4 use enum for line type instead of string 2018-01-21 11:01:30 +01:00
andi 8f15aba0d5 replace individual percentile aggregates with a single one for all 2018-01-21 10:54:13 +01:00
andi b439c9d79a update third-party libs
antlr4: 4.7 -> 4.7.1
commons-lang3: 3.6 -> 3.7
2018-01-21 08:44:30 +01:00
andi 469dc20411 add gradle plugin: gradle-versions-plugin 2018-01-21 08:43:45 +01:00
andi 9f45eb24ca add trace logging for creation of new writer 2018-01-21 08:36:40 +01:00
ahr 740cb1cb2d print metrics every 10 seconds, not every 10.001 seconds 2018-01-14 09:52:08 +01:00
ahr d98c45e8bd add index for tags-to-documents
Now we can find writer much faster, because we don't have to execute
a query for documents that match the tags. We can just look up the 
documents in the map.
Speedup: 2-4ms -> 0.002-0.01ms
2018-01-14 09:51:37 +01:00
ahr 64613ce43c add metric logging for getWriter 2018-01-13 10:32:03 +01:00
ahr 0f2fcc3c9c extract long_to_string converter 2018-01-06 08:40:58 +01:00
ahr c5c7c03c66 add example logger 2017-12-30 10:09:19 +01:00
ahr bcc30f0f3f add trace logging and make set of proposals synchronized
I checked if computing the proposals with a parallel stream would be
beneficial. Turns out the stream uses several threads, but the overall
computation is not faster, because each individual computation is
slower.
2017-12-30 10:08:54 +01:00
ahr 3cc512f73d update third party libs
testng 6.11 -> 6.13.1
jackson-databind 2.9.1 -> 2.9.3
guava 23.0 -> 23.6-jre
2017-12-30 10:06:57 +01:00
ahr fc30ffd928 sort IntLists in DataStore
The IntLists were no longer sorted since we made the initialization run
in parallel. Therefore a much slower implementation for
intersection/union was used.
2017-12-30 09:45:50 +01:00
ahr 5617547d63 add percentile plots 2017-12-30 09:15:26 +01:00
ahr 9b9554552d Extract interface for DataSeries
This will make it possible to have DataSeries that do not require a csv
file on disk.
2017-12-29 09:15:29 +01:00
ahr cc70f45c12 add different plot types
Step 1: 
Added PlotType enum and a drop down to the UI.
Extracted the code for scatter plots.
2017-12-29 08:57:34 +01:00
ahr 2df66c7b2f update primitiveCollections
This fixes a performance issue where the IntLists were not sorted and
therefore slow union/intersection algorithms were chosen.
2017-12-29 08:20:52 +01:00
ahr e060e9761d cleanup 2017-12-23 10:06:52 +01:00
ahr 8037212145 synchronize docIdToDoc list
When we parallelized the initialization we forgot to
synchronize the docIdToDoc list.
Luckily there is a high probability, that queries return
results, that are obviously wrong.
2017-12-23 10:06:45 +01:00
ahr 888d25f7ea trim docIdToDoc list
This reduces memory usage by 1 or 2 MB.
33% of an ArrayList can be free. If the list is 1 million entries long,
then the list wastes 2.6 MB.
The Doc objects in the list are much bigger.
2017-12-23 09:42:08 +01:00
ahr e59caa0f02 parallelize initialization of DataStore
When the files are already in the OS cache, then the initialization time
for 750k files went down from 35 seconds to 15 seconds.
2017-12-23 08:58:42 +01:00