Skip to content

feat(berlinmod): streaming throughput benchmark on the canonical BerlinMOD corpus (stacks on #30)#31

Open
estebanzimanyi wants to merge 5 commits into
MobilityDB:consolidate/flink-meos-integrationfrom
estebanzimanyi:consolidate/flink-benchmark
Open

feat(berlinmod): streaming throughput benchmark on the canonical BerlinMOD corpus (stacks on #30)#31
estebanzimanyi wants to merge 5 commits into
MobilityDB:consolidate/flink-meos-integrationfrom
estebanzimanyi:consolidate/flink-benchmark

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Path-B consolidation — Flink benchmark (scaffold merged · MEOS integration #30 · benchmark).

Adds the BerlinMOD streaming benchmark harness on top of #30: BerlinMODBenchmark (per Q-form throughput over the DataStream topology), docs/benchmark-results.md, and the Kafka producer script.

Canonical / regularity

The benchmark runs on the canonical BerlinMOD corpus only (--csv berlinmod_instants.csv); the invented synthetic fallback is removed.

Verification

mvn test10 tests, 0 failures (the benchmark is a main entry point, compiled but not run in CI).

This was referenced Jun 11, 2026
@estebanzimanyi estebanzimanyi force-pushed the consolidate/flink-meos-integration branch from 6d06a5f to db2e51b Compare June 11, 2026 18:04
@estebanzimanyi estebanzimanyi force-pushed the consolidate/flink-benchmark branch from 60737a5 to a803ba7 Compare June 11, 2026 18:05
… surface

Rebuild the bundled JMEOS jar from the regenerated JMEOS surface: the
hand-rolled functions.functions facade is gone, GeneratedFunctions carries the
sret-bound by-value struct returns (the *Split family) and the collation-init
fix, and the org.mobilitydb.meos MeosOps* facade is regenerated against it.

Migrate the aisdata processors off the removed functions.functions facade onto
GeneratedFunctions (meos_initialize / meos_initialize_timezone / meos_finalize);
the berlinmod package already used GeneratedFunctions + the MeosOps facade.

Verified: flink-processor compiles and its test suite is green (10 tests, 0
failures) against the refreshed jar.
…inMOD corpus

Adds the BerlinMOD streaming benchmark harness (BerlinMODBenchmark, per
Q-form throughput over the DataStream topology), the benchmark-results
document, and the Kafka producer script for feeding the corpus.

The benchmark runs on the canonical BerlinMOD corpus only (--csv
berlinmod_instants.csv); the invented synthetic fallback is gone.
@estebanzimanyi estebanzimanyi force-pushed the consolidate/flink-benchmark branch from a803ba7 to c80f17b Compare June 12, 2026 07:38
Rebuild the union JMEOS.jar against pin 14l: functions.GeneratedFunctions from
JMEOS-14l (4466 methods, 2-arg count accessors) + the org.mobilitydb.meos.MeosOps*
streaming facades regenerated from the 14l catalog/signatures. Refresh the bundled
libmeos.so to 14l.

The jar is now PURE bindings (JMEOS + generated facades). MeosSetSetJoin — the NxN
cross-stream set-set join operator (edwithin/adisjoint/tdwithin_tgeoarr_tgeoarr +
spanset_as_hexwkb) — was previously bundled as a source-less .class; it is application
logic the facade codegen deliberately leaves to the caller, so it now lives as tracked
source under org/mobilitydb/meos/ and is compiled from source against the jar.
@estebanzimanyi estebanzimanyi force-pushed the consolidate/flink-benchmark branch from 5051555 to 7de1706 Compare June 14, 2026 21:10
Rebuild the union jar via streaming-codegen/build-union-jar.sh against the JMEOS regen
off pin 15c (4466->4469 methods: + the eintersects_tpcpoint_geo / nad_tpcpoint_geo
pointcloud spatial rels) + the 58 generated MeosOps* facades. Refresh bundled libmeos to 15c.
…pin-2026-06-22a

Add tools/codegen_facades.py — the per-engine streaming-facade generator (the
Flink analogue of JMEOS' FunctionsGenerator and MobilitySpark's UDF generator)
— and the streaming-relevance baseline it classifies against. It regenerates
the org.mobilitydb.meos.MeosOps* facades as 1:1 forwarders to the JMEOS
functions.GeneratedFunctions surface, so the facades are a pure projection of
the pin and never drift from the bundled jar:

    tools/codegen_facades.py --jar flink-processor/jar/JMEOS.jar \
        --out flink-processor --engine flink

Bump flink-processor/jar/JMEOS.jar to the raw-FFI JMEOS regenerated at
ecosystem-pin-2026-06-22a (the facades no longer ship in the jar) and
flink-processor/lib/libmeos.so to the matching all-families native library, and
commit the 57 regenerated facade classes. The streaming suite (10 tests incl.
BerlinMODSetSetJoinTest and the cbuffer/pose/npoint/facade smokes) passes.
@estebanzimanyi estebanzimanyi force-pushed the consolidate/flink-benchmark branch from 03f2755 to 5697d6d Compare June 22, 2026 23:57
estebanzimanyi added a commit to estebanzimanyi/MobilityFlink that referenced this pull request Jun 25, 2026
Add tools/pin/compose-order.txt (the canonical fold manifest; MobilityDB#30 merged, MobilityDB#31
carries the facade generator + benchmark) and GENERATION.md (the per-binding
generator policy: MobilityFlink binds the JMEOS jar and generates the
org.mobilitydb.meos facades via tools/codegen_facades.py).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant