jnaous commented on issue #8822: optimize numeric column null value checking for low filter selectivity (more rows) URL: https://github.com/apache/incubator-druid/pull/8822#issuecomment-549866189 Thanks Clint! These /are/ really good benchmarks. I'm curious what percentage of the entire cost for processing a row a null check would be so we can have a good idea of what % overhead we're talking about. On Tue, Nov 5, 2019 at 12:36 AM Clint Wylie <[email protected]> wrote: > To follow-up on the PR description, I let the concise benchmarks finish > where nearly all of the rows are selected: > > Benchmark (bitmapType) (filterMatch) (nullDensity) (numRows) Mode Cnt Score Error Units > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.99999 0 500000 avgt 2 2438.318 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.99999 0.1 500000 avgt 2 261150067.426 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.99999 0.25 500000 avgt 2 430133586.339 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.99999 0.5 500000 avgt 2 623322588.940 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.99999 0.75 500000 avgt 2 449875260.568 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.99999 0.99 500000 avgt 2 29015358.505 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.99999 0 500000 avgt 2 2316.307 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.99999 0.1 500000 avgt 2 4158.871 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.99999 0.25 500000 avgt 2 6041.184 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.99999 0.5 500000 avgt 2 8397.707 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.99999 0.75 500000 avgt 2 6129.792 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.99999 0.99 500000 avgt 2 3511.961 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.99999 0 500000 avgt 2 2440.615 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.99999 0.1 500000 avgt 2 4431.640 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.99999 0.25 500000 avgt 2 6302.718 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.99999 0.5 500000 avgt 2 8911.671 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.99999 0.75 500000 avgt 2 6809.052 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.99999 0.99 500000 avgt 2 4995.936 us/op > > Using get with concise is just terribad. The results for 1% of rows is > similarly pretty awful, though a couple orders of magnitude less bad: > > Benchmark (bitmapType) (filterMatch) (nullDensity) (numRows) Mode Cnt Score Error Units > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.01 0 500000 avgt 2 100.110 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.01 0.1 500000 avgt 2 3878501.478 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.01 0.25 500000 avgt 2 4853693.538 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.01 0.5 500000 avgt 2 8399206.128 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.01 0.75 500000 avgt 2 5169724.280 us/op > NullHandlingBitmapGetVsIteratorBenchmark.get concise 0.01 0.99 500000 avgt 2 440739.562 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.01 0 500000 avgt 2 69.756 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.01 0.1 500000 avgt 2 1813.610 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.01 0.25 500000 avgt 2 3364.983 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.01 0.5 500000 avgt 2 3745.194 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.01 0.75 500000 avgt 2 2702.778 us/op > NullHandlingBitmapGetVsIteratorBenchmark.iterator concise 0.01 0.99 500000 avgt 2 1874.390 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.01 0 500000 avgt 2 77.929 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.01 0.1 500000 avgt 2 1592.171 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.01 0.25 500000 avgt 2 2216.227 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.01 0.5 500000 avgt 2 3535.110 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.01 0.75 500000 avgt 2 2400.203 us/op > NullHandlingBitmapGetVsIteratorBenchmark.peekableIterator concise 0.01 0.99 500000 avgt 2 436.322 us/op > > I did not plot these because it seemed to be rather pointless, concise > seems to be *only* viable when using IntIterator or PeekableIntIterator. > > — > You are receiving this because you are subscribed to this thread. > Reply to this email directly, view it on GitHub > <https://github.com/apache/incubator-druid/pull/8822?email_source=notifications&email_token=AAPSYCQ2URIZF6VEJ3SSGADQSEWAJA5CNFSM4JI4LCNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDCATDY#issuecomment-549718415>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AAPSYCV5IXHLEI6HE5RKM3DQSEWAJANCNFSM4JI4LCNA> > . > -- Jad Naous Imply | VP R&D 650-521-3425 [email protected]
---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
