Log
-
[maven-release-plugin] prepare release 0.8.0 by Caio 5 years ago
-
Remove logback dependency by Caio 5 years ago
-
Simplify IndexConfiguration by Caio 5 years ago
-
Get rid of Indexer.Builder 💬 by Caio 5 years ago
Same reasoning as in 6935ad40bbce0da7484ef239ad93b5b9d1379e05
-
Get rid of Searcher.Builder 💬 by Caio 5 years ago
Whilst the pattern is super useful for things like SearchQuery, there's zero advantages to using it here and then the type-checking loss becomes kinda inexcusable :-)
-
SearchQuery: Replace dietThreshold() with diet() 💬 by Caio 5 years ago
This patch changes the query model to only allow a single chosen diet (and its corresponding threshold). This is being done mostly to simplify usage: the only code I have that makes use of the feature is unpublished and for reporting only - The web UI only uses one and I have no plans of allowing more than one.
-
[maven-release-plugin] prepare release 0.7.1 by Caio 5 years ago
-
Speed up database loading 💬 by Caio 5 years ago
Turns out that slurping a 14MB file (offsets.sdb) during initialization added 30s to the production server startup time lol. On my development box, which has an old but real direct read-write SSD the cost of doing this is negligible. This patch simply memory maps the offsets file before reading so now we're back to reasonable startup times in production.
-
[maven-release-plugin] prepare release 0.7.0 by Caio 5 years ago
-
Bump to gula-bom 0.1.0 by Caio 5 years ago
-
Merge branch 'sdb' by Caio 5 years ago
-
Remove Util's tempDir on exit too by Caio 5 years ago
-
Cleanup temporary directories after tests 💬 by Caio 5 years ago
This patch uses Junit's `@TempDir` to replace usages of `Files.createTempDirectory(Path)` where possible. There's still one unmanaged directory in the Util class that I'll have to manually add exit handlers if I care enough.
-
Drop RecipeMetadataDatabase.findAllById(List<Long>) 💬 by Caio 5 years ago
No point in supporting this at the moment.
-
SDB: Add some basic tests by Caio 5 years ago
-
Organize the new code a little bit 💬 by Caio 5 years ago
Wrapping up for today, I'll pick the tests up next round.
-
Remove ChronicleMap mention from README by Caio 5 years ago
-
Drop ChronicleMap 💬 by Caio 5 years ago
o/
-
WIP: Simple database to replace ChronicleMap 💬 by Caio 5 years ago
The main reason I'm using ChronicleMap is because I wanted an easy Map interface with persistence and off-heap memory. Getting rid of ChronicleMap reduces complexity, increases performance (though that is negligible, db get()s are far from being the bottleneck) and allows me to push Jdk12 forward. This patch implements a working alternative which can be simplified to a flat file with one recipe serialized (as a flatbuffer) after another. In order to speed up loading I also write to an extra file which contains the total number of recipes and recipe_id to offset associations. The offset lookup table is kept in heap backed by HPCC's primitive collections. Very little validation is done and the code is totally susceptible to bad input attacks, but I have full control of it, so :shrug: A trivial benchmark such as: ``` public class MyBenchmark { @State(Scope.Benchmark) public static class MyState { RecipeMetadataDatabase chronicle; RecipeMetadataDatabase sdb; long[] ids = new long[] {289492, 707192, 1061982, 1708006, 1659287, 1653257, 901573, 1557621, 1639379}; public MyState() { var cerberusPath = System.getProperty("cerberus"); var sdbPath = System.getProperty("sdb"); this.chronicle = ChronicleRecipeMetadataDatabase.open(Path.of(cerberusPath)); this.sdb = new SimpleRecipeMetadataDatabase(Path.of(sdbPath)); } } public MyBenchmark() {} private void check(RecipeMetadataDatabase db, long[] ids) { for (long id : ids) { var recipe = db.findById(id); assert recipe.isPresent(); if (recipe.get().getRecipeId() != id) { throw new RuntimeException("oof!"); } } } @Benchmark public void getChronicle(MyState state) { check(state.chronicle, state.ids); } @Benchmark public void getSdb(MyState state) { check(state.sdb, state.ids); } } ``` Shows that at least things aren't broken. Yet. > Benchmark Mode Cnt Score Error Units > MyBenchmark.getChronicle thrpt 5 62327.352 ± 214.437 ops/s > MyBenchmark.getSdb thrpt 5 2697423.234 ± 28008.573 ops/s
-
[maven-release-plugin] prepare release 0.6.3 by Caio 5 years ago
-
Update to gula-bom 0.0.5 by Caio 5 years ago
-
[maven-release-plugin] prepare release 0.6.2 by Caio 5 years ago
-
Bump lucene to 8.1.0 by Caio 5 years ago
-
Bump chronicle-map to 3.17.2 by Caio 5 years ago