Commit Graph

241 Commits

Author SHA1 Message Date
cc49a8cf2a open PdbReaders only when reading
We used to open all PdbReaders in a search result and then interate over
them. This used a lot of heap space (> 8GB) for 400k files.
Now the PdbReaders are only opened while they are used. Heap usage was
less than 550 while reading more than 400k files.
2017-11-18 10:12:22 +01:00
a636f2b9bd update primitive collections to 0.1.20171007100354 2017-11-18 10:09:47 +01:00
0555691864 update gradle to 4.3.2 and spring boot to 1.5.8 2017-11-18 09:32:49 +01:00
995558588a add median and 90% percentile 2017-11-18 09:28:41 +01:00
ahr
f8c03c434e print thousand delimiter (of whatever they are called) 2017-11-06 17:21:45 +01:00
ahr
78671a2d8c use linespoints instead of line and make linewidth 2 instead of 1 2017-11-06 17:04:56 +01:00
ahr
64db4c48a2 add plots for percentiles 2017-11-06 16:57:22 +01:00
ahr
92dde94443 preparation to add plots for percentiles 2017-11-05 09:21:34 +01:00
ahr
870ff492d9 enable logging of metrics 2017-11-05 08:52:33 +01:00
ahr
27db9f934d increase entry buffer 2017-11-05 08:52:10 +01:00
11b3610971 make invaders better
add kill count
do not move all invaders at once
2017-10-01 19:08:59 +02:00
08f1961f51 replace spinner with a little game 2017-10-01 17:23:59 +02:00
386f211377 make it possible to draw the legend outside of the plot area 2017-09-30 17:51:33 +02:00
d4fd25dc4c replace LinkedHashMap with a more memory efficient implementation
This saves approximately 50MB of heap space.
2017-09-30 17:51:02 +02:00
7e00594382 add helper class that returns the size of objects 2017-09-30 17:49:21 +02:00
e0655f66fa skip invalid entries 2017-09-24 17:21:20 +02:00
a7cd918fc6 skip empty files 2017-09-24 17:12:17 +02:00
dc8262c37e replace deprecated API 2017-09-24 17:00:08 +02:00
4b53baacae add scrollbar for proposals, again 2017-09-24 13:32:51 +02:00
35500e387a add vertical marker lines that show which area will be used after
zooming
2017-09-24 12:52:44 +02:00
8b74992e66 reduce memory allocations by 25% with a cache of formatted longs 2017-09-24 09:53:25 +02:00
37eb05aebf use unix timestamps in the CSVs used by gnuplot
This is faster by factor 4, because we don't have to format the date.
2017-09-24 09:38:08 +02:00
955127dc4a use buffered writer
despite my previous test, writing the csv is a little bit faster with
a buffered writer (~ 10-15%)
2017-09-23 20:22:15 +02:00
9d66c9e0da zoom in/out 2017-09-23 20:20:56 +02:00
70e586b7e9 limit by max/min value 2017-09-23 18:56:02 +02:00
347f1fdc74 update 3rd-party libraries 2017-09-23 18:24:51 +02:00
c9ff8b5586 only propose value if the existing prefix is a real prefix 2017-09-23 13:31:34 +02:00
4360944683 remove keyhandler for enter key again
It didn't work with autocomplete.js when selecting a proposal.
2017-09-23 13:27:53 +02:00
d797a3c9ec send form when pressing enter 2017-09-23 12:56:32 +02:00
79d860cee7 make computation of mean value optional 2017-09-23 12:42:22 +02:00
adbde57d95 add hours as valid time range 2017-09-23 10:55:40 +02:00
38873300c8 print last inserted entry during ingestion 2017-09-23 10:55:03 +02:00
b7dc22275d trigger garbage collection periodically
This reduces the memory usage, because the old generation can be made
smaller and we don't have to wait until max heap usage has been reached.
2017-09-23 10:54:28 +02:00
9e3dd27eb0 use a default date of seven days ago instead of last year 2017-09-23 10:52:33 +02:00
c2ee632f76 plot exactly the selected time frame
Before gnuplot would only plot the range with values.
But that is not really helpful, when you navigate with the new
navigation buttons.
2017-04-22 11:23:13 +02:00
c783fd2830 add aria-hidden="true" to some icons 2017-04-22 10:49:19 +02:00
c758cee428 add validation pattern for the date offset 2017-04-22 10:47:23 +02:00
8ed64a4c0e add navigation buttons
Added buttons to shift left/right, so that you do not have to
edit the date offset.
I decided to replace icons.css with font-awesome.min.css,
because I am too lazy to add the CSS for the icons every
time I use a new icon.
2017-04-22 10:34:43 +02:00
87858a79c1 compute proposals for blank strings
Before we would only provide proposals for empty strings.
But blank and empty is not that different.
2017-04-20 19:05:21 +02:00
fb40139d75 use available space for image 2017-04-20 19:03:17 +02:00
0ebd657b99 add placeholder into the search box
The placeholder should help a little bit with the syntax.
2017-04-19 20:20:11 +02:00
5ab6309fc5 reduce size of x-axis labels 2017-04-19 20:02:02 +02:00
dc716f8ac4 log more information in a more predictable manner when inserting entries 2017-04-19 19:32:23 +02:00
a99f6a276e fix missing/wrong logging
1. Log the exception in PdbFileIterator with a logger instead
   of just printing it to stderr.
2. Increase log level for exceptions when inserting entries.
3. Log exception when creation of entry failed in TcpIngestor.
2017-04-17 18:27:25 +02:00
c58e7baf69 make sure there is an exception if the file is corrupt 2017-04-17 17:52:11 +02:00
bcb2e6ca83 add query completion
We are using ANTLR listeners to find out where in the
query the cursor is. Then we generate a list of keys/values
that might fit at that position. With that information we
can generate new queries and sort them by the number
of results they yield.
2017-04-17 16:25:14 +02:00
f6a9fc2394 propose for an empty query 2017-04-16 10:39:17 +02:00
44f30aafee add a new facade in front of DataStore
This is done in preparation for the proposal API.
In order to compute proposals we need to consume the
API of the DataStore, but the code does not need to
be in the DataStore. 
Extracting the API allows us to separate these concerns.
2017-04-16 10:11:46 +02:00
43d6eba7b7 skip entries if we cannot search for the pdb file
Happened when the project was 'http:'.
2017-04-16 09:49:21 +02:00
ac1ee20046 replace ludb with data-store
LuDB has a few disadvantages. 
  1. Most notably disk space. H2 wastes a lot of valuable disk space.
     For my test data set with 44 million entries it is 14 MB 
     (sometimes a lot more; depends on H2 internal cleanup). With 
     data-store it is 15 KB.
     Overall I could reduce the disk space from 231 MB to 200 MB (13.4 %
     in this example). That is an average of 4.6 bytes per entry.
  2. Speed:
     a) Liquibase is slow. The first time it takes approx. three seconds
     b) Query and insertion. with data-store we can insert entries 
        up to 1.6 times faster.

Data-store uses a few tricks to save disk space:
  1. We encode the tags into the file names.
  2. To keep them short we translate the key/value of the tag into 
     shorter numbers. For example "foo" -> 12 and "bar" to 47. So the
     tag "foo"/"bar" would be 12/47. 
     We then translate this number into a numeral system of base 62
     (a-zA-Z0-9), so it can be used for file names and it is shorter.
     That way we only have to store the mapping of string to int.
  3. We do that in a simple tab separated file.
2017-04-16 09:07:28 +02:00