Commit Graph

867 Commits

Author SHA1 Message Date
0e9e2cd53a remove dependency to Guava 2019-09-01 15:44:36 +02:00
8579974051 performance improvement
Queries like "firstname=John and lastname=???" were slightly
inefficient.
They fetched all firstnames, filtered to those that matched the prefix
(e.g. John or Jonathan is this example) and then iterated over all those
values and return the lastnames.
Fixed by having two implementations. One for the case that only a few
of the values in fieldA match and one for the case that many match.
2019-08-31 19:30:54 +02:00
d8a114dbaf handle globlike patterns in in-expressions 2019-08-31 17:34:17 +02:00
f8e859fb6d cleanup and javadoc 2019-08-31 16:52:13 +02:00
0eee012798 allow 'not' for negation in addition to '!' 2019-08-31 08:30:13 +02:00
4161cd7f98 only field prefixes returned instead of full values
When using autocomplete to return field values I
missed, that autocomplete had the feature that cut
values at dots. So instead of returning full field
values only the prefix up to the first dot was
returned.
Fixed by making the cut-at-dot feature optional.
2019-08-27 20:37:07 +02:00
a174ec21ad increase contrast between scatter and cumulative distribution 2019-08-26 20:38:57 +02:00
79c28f2f9e hide tics in gallery view 2019-08-25 18:56:08 +02:00
2f35978184 fetch available values for gallery via autocomplete method
We had a method that returned the values of a field
with respect to a query. That method was inefficient,
because it executed the query, fetched all Docs
and collected the values.
The autocomplete method we introduced a while back
can answer the same question but much more efficiently.
2019-08-25 18:52:05 +02:00
4f61d91c79 draw tic for max value on y-axis only if it makes sense 2019-08-25 15:40:20 +02:00
a905c608aa increase maximal allowed duration for 'parallel requests' plot 2019-08-25 10:47:23 +02:00
da97a13ed8 add new ranges for date picker 2019-08-25 10:40:05 +02:00
2cd0d71dde fix compile error in Eclipse
Eclipse marked this as an error. A Gradle build had
no issue.
2019-08-25 10:26:39 +02:00
5b57417f75 make the tics on the y-axis easier readable
People are having trouble to understand durations like
100000 or 2.7E+6 milliseconds. Therefore we are
hanging the labels on the y-axis to include the unit
in the tic's label. We also use multiples of seconds,
minutes, hours and days instead of multiples of 10.
2019-08-25 10:25:47 +02:00
4e9b556ea9 update third-party libs 2019-08-24 19:59:06 +02:00
3a7688d1ae remember next eviction time and skip eviction 2019-08-24 19:39:59 +02:00
6eaf4e10fc add maxSize parameter to HotEntryCache 2019-08-24 19:24:20 +02:00
00c20dae6b use long instead of Instant for time
Working with longs is faster and requires less
cache. The space in L123 caches is precious.
2019-08-19 18:58:24 +02:00
feda901f6d remove event types
We only have removal events. The additional complexity
of having a generic interface for many different event
types does not pay off.
2019-08-18 20:30:25 +02:00
4d9ea6d2a8 switch back to my own HotEntryCache implementation
Guava's cache does not evict elements reliably by
time. Configure a cache to have a lifetime of n
seconds, then you cannot expect that an element is
actually evicted after n seconds with Guava.
2019-08-18 20:14:14 +02:00
0dc908c79c show the removal listener of HotEntryCache is not called on expire 2019-08-18 09:27:18 +02:00
3252fcf42d improve trace logging
- Add filename for trace logs for read/write operations.
2019-08-18 09:25:49 +02:00
16bf0933e7 update to spring-boot 2.1.7 2019-08-12 08:36:09 +02:00
0b3eb97b96 Fix to string for maps with values of type Empty
The MAX_KEY inserted into the tree had a value of one byte. This
triggered an assertion for maps with values of type Empty, because they
expected values to be empty.
Fixed by using an empty array for the value of the MAX_KEY.
2019-08-12 08:35:40 +02:00
427d7818bf update gradle and commons-collections 2019-08-01 18:54:52 +02:00
574a9c9cc4 update jquery to 3.4.1 2019-07-04 19:12:54 +02:00
a8d77562c9 update daterangepicker to 3.0.5 2019-07-04 19:11:00 +02:00
2cb81e5acd make it possible to ignore columns using the csv ingestor 2019-07-04 09:51:33 +02:00
3a39f66e22 update 3rd party libs 2019-07-04 09:06:06 +02:00
58f988f378 update gradle to 5.5 2019-07-04 09:01:39 +02:00
4f57a29c3b increase cache of stringified longs
This should improve the csv generation a little bit.
2019-05-25 17:55:14 +02:00
1be57dce0c update spring and jackson 2019-05-25 17:53:54 +02:00
2eb2a69c17 rename 'percentile' plots to 'cumulative distribution' 2019-05-12 14:30:16 +02:00
1f144846db update 3rd party libs and gradle 2019-04-28 14:40:43 +02:00
9fb1a136c8 cache last used date prefix
The 99.9999% use case is to ingest data
from the same month.
2019-04-22 09:51:44 +02:00
dfe9579726 use DateTimeRange.max() instead of arbitrary relative range 2019-04-20 20:36:26 +02:00
d82b33c60e update js libraries 2019-04-20 20:31:51 +02:00
7277670b8b update 3rd party libs 2019-04-20 20:19:24 +02:00
9525ee22a0 add access restrictions for a few unwelcome classes 2019-04-20 20:12:45 +02:00
56085061ed do not return anything if the field/value does not exist
The computation of proposals is done by searching for values in a
combined index. If one of the values didn't exist, then the algorithm
returned all values. Fixed by checking that we query only existing
field/values from the combined index.
2019-04-20 19:48:51 +02:00
dbe0e02517 rename cluster to partition
We are not clustering the indices, we
are partitioning them.
2019-04-14 10:10:16 +02:00
2a1885a77f cluster the indices 2019-03-31 09:01:55 +02:00
95f2f26966 handle IOExceptions earlier 2019-03-17 11:13:46 +01:00
5d0ceb112e add clustering for DiskStore 2019-03-17 10:53:02 +01:00
b5e2d0a217 introduce clustering for query completion indices 2019-03-16 10:19:28 +01:00
fb9f8592ac make ClusteredPersistentMap easier to use 2019-02-24 19:20:44 +01:00
59aea1a15f introduce index clustering (part 1)
In order to prevent files from getting too big and
make it easier to implement retention policies, we
are splitting all files into chunks. Each chunk
contains the data for a time interval (1 month per
default).
This first changeset introduces the ClusteredPersistentMap
that implements this for PersistentMap. It is used
for a couple (not all) of indices.
2019-02-24 16:50:57 +01:00
372a073b6d PdbWriter is no longer in the API of DataStore 2019-02-16 16:24:14 +01:00
92a47d9b56 remove TagsToFile
Remove one layer of abstraction by moving the code into the DataStore.
2019-02-16 16:06:46 +01:00
117ef4ea34 use guava's cache as implementation for the HotEntryCache
My own implementation was faster, but was not able to
implement a size limitation.
2019-02-16 10:23:52 +01:00