belliottsmith commented on PR #6: URL: https://github.com/apache/cassandra-accord/pull/6#issuecomment-1212592507
I've pushed (a very in progress) update to my branch of your review branch, and I'm seeing the following: ``` 00:29:49.463 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=7, keys=257, total=3400)] avg 134.95ms, allocated 1907 MiB 00:30:07.839 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=7, keys=257, total=3400)] avg 427.51ms, allocated 13019 MiB 00:30:46.528 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=20, keys=344, total=11182)] avg 857.73ms, allocated 20997 MiB 00:31:43.433 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=20, keys=344, total=11182)] avg 1,344.11ms, allocated 37105 MiB 00:32:02.101 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=12, keys=326, total=6410)] avg 404.94ms, allocated 5409 MiB 00:32:35.870 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=12, keys=326, total=6410)] avg 795.45ms, allocated 24247 MiB 00:32:54.877 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=12, keys=355, total=7099)] avg 410.93ms, allocated 5316 MiB 00:33:31.908 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=12, keys=355, total=7099)] avg 870.99ms, allocated 25560 MiB 00:33:38.520 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=8, keys=256, total=2991)] avg 134.86ms, allocated 2062 MiB 00:33:55.547 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=8, keys=256, total=2991)] avg 395.47ms, allocated 12105 MiB 00:33:56.510 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=2, keys=90, total=1536)] avg 9.84ms, allocated 516 MiB 00:34:03.143 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=2, keys=90, total=1536)] avg 149.17ms, allocated 5743 MiB 00:34:35.287 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=20, keys=337, total=7961)] avg 711.37ms, allocated 10672 MiB 00:35:20.816 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=20, keys=337, total=7961)] avg 1,073.09ms, allocated 28380 MiB 00:35:28.808 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=8, keys=308, total=3777)] avg 164.52ms, allocated 2421 MiB 00:35:50.105 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=8, keys=308, total=3777)] avg 496.92ms, allocated 14291 MiB 00:35:50.682 [main] INFO accord.txn.DepsTest - Benchmark[name=merge(size=2, keys=185, total=614)] avg 3.62ms, allocated 236 MiB 00:35:52.802 [main] INFO accord.txn.DepsTest - Benchmark[name=builder forEach(size=2, keys=185, total=614)] avg 42.05ms, allocated 1829 MiB ``` This is algorithmically much simpler than the priority heap merge, but it has involved quite a bit of ugliness with factories for managing memory allocation while still using the general purpose `SortedArrays` implementations of the core procedures. I'll continue to see if there's a little more that can be done to reduce garbage, but this is probably close to good enough now. It's also still not testing the situation it should perform best for (i.e. merging lots of very similar dips) We do have to decide if we simply discard the algorithmically "better" approach, or perhaps include it with a note that it has not been reviewed, as it might be useful in future and it would be a shame to have to start from scratch. I'm not sure of a better way to park this kind of code. A branch will get lost, but perhaps that's fine. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

