Repository navigation
Remove Onyx and release 2.1.0 - #92
Merged
Merged
Conversation
Every compute now runs on the thread-pool engine, so Onyx goes: the twelve Onyx namespaces, the clojask.engine / CLOJASK_ENGINE switch, shutdown-test, and the dependencies only Onyx needed (the Onyx fork, timbre, clojure-heap; with them nippy, lz4, Aeron, ZooKeeper and curator). The --add-opens and --enable-native-access JVM flags and the ZooKeeper/Aeron port and directory settings are no longer needed. enable-debug and disable-debug no longer change a log level. The :order option of compute is still accepted and has no effect: output is in input order, group-by and outer joins in group order. The last functions that def'd globals at run time are gone: join's defn-join and sort's comparator, so a sort no longer redefines clojask-compare. engine-test now compares each of its 41 cases with the output recorded from Onyx before the removal (correct_outputs/engine.edn); the thread-pool engine wrote the same for every case. regression-test gains the first test of sort. Release: version 2.1.0, Clojure 1.12.6, externalsortinginjava 0.6.6, the unused data.csv dropped; CI on actions/checkout v7, setup-java v6, cache v6 and Leiningen 2.13.0. README and documentation drop the JVM flags, the port settings and the Onyx log, and describe the engine.
Leiningen's 2.13.0 release ships a bin/lein whose LEIN_VERSION is 2.12.1-SNAPSHOT, so setup-clojure fails to download its jar.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
clojask 2.1.0 no longer uses Onyx. Every
computeruns on a plain thread pool in your JVM: one thread reads the input in batches,num-workerthreads apply the operations and filters, and the calling thread writes the output.Upgrading from 2.0.x
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMEDand--enable-native-access=ALL-UNNAMED.clojask.zookeeper.port,clojask.aeron.port,clojask.aeron.dirproperties andCLOJASK_*variables are gone, along with the.clojask/clojask.logOnyx log. Several clojask processes can share a machine without any settings, as long as each has its own working directory (.clojask/holds temporary files).:orderis still accepted and has no effect.enable-debugstill turns off the preview check of new operations anddisable-debugturns it back on; neither changes a log level any more.ExecutionExceptionwith a stage in the message; the cause is now the original exception.Changes since 2.0.6
compute, behind a flag.def'd globals at run time (defn-join, sort's comparator) are gone; docs updated.Performance
Synthetic Compustat-like CSV, 1.8M rows / 160 MB, 4 workers, JDK 25, seconds. Measured during the migration (#88, #89, #91), while both engines were in the tree; outputs matched apart from row order and the last digits of group means (see below).
With
-Xmx96mthe full compute finishes correctly in 9.8 s; 2.0.6 ran out of memory inside ZooKeeper and stalled. Group means can differ from 2.0.6 in the last digits (relative 4e-15): rows now reach the aggregate in input order instead of an arbitrary order.Tests
engine-testcompares 41 cases (compute, aggregate, group-by, every join kind, on disk and in memory, with and without:select) with the output recorded from Onyx before its removal (test/clojask/correct_outputs/engine.edn); the new engine wrote the same for each.regression-testgains the first test ofsort, run on externalsortinginjava 0.6.0 and 0.6.6. Suite: 55 tests / 273 assertions in about 8 seconds (was about 3 minutes), green locally on JDK 25 and a JDK 27 early-access build. CI moves to actions/checkout v7, setup-java v6 and cache v6; Leiningen stays at 2.12.0, since the 2.13.0 release'sbin/leinreports 2.12.1-SNAPSHOT and cannot be installed.Not changed: concurrent computes in one working directory are still unsafe, since they share the temporary files under
.clojask/.