Commit 7739a83
# Which issue does this PR close?
- Closes apache#7615
- Follow on to apache#7597
# Rationale for this change
Improve performance of `gc_string_view_batch`
```
filter: mixed_utf8view, 8192, nulls: 0, selectivity: 0.001 1.00 30.4±1.05ms ? ?/sec 1.29 39.3±0.88ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0, selectivity: 0.01 1.00 4.3±0.17ms ? ?/sec 1.20 5.2±0.15ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0, selectivity: 0.1 1.00 1805.1±25.77µs ? ?/sec 1.32 2.4±0.20ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0, selectivity: 0.8 1.00 2.6±0.12ms ? ?/sec 1.48 3.8±0.11ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0.1, selectivity: 0.001 1.00 42.5±0.48ms ? ?/sec 1.23 52.2±1.33ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0.1, selectivity: 0.01 1.00 5.8±0.12ms ? ?/sec 1.28 7.4±0.20ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0.1, selectivity: 0.1 1.00 2.2±0.02ms ? ?/sec 1.37 3.1±0.18ms ? ?/sec
filter: mixed_utf8view, 8192, nulls: 0.1, selectivity: 0.8 1.00 3.6±0.15ms ? ?/sec 1.43 5.1±0.12ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0, selectivity: 0.001 1.00 51.0±0.59ms ? ?/sec 1.38 70.3±1.11ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0, selectivity: 0.01 1.00 6.7±0.03ms ? ?/sec 1.32 8.8±0.16ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0, selectivity: 0.1 1.00 3.0±0.01ms ? ?/sec 1.41 4.3±0.09ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0, selectivity: 0.8 1.00 4.5±0.34ms ? ?/sec 1.71 7.7±0.28ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0.1, selectivity: 0.001 1.00 64.2±0.74ms ? ?/sec 1.33 85.1±1.52ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0.1, selectivity: 0.01 1.00 9.4±0.09ms ? ?/sec 1.35 12.6±0.26ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0.1, selectivity: 0.1 1.00 3.8±0.03ms ? ?/sec 1.46 5.6±0.11ms ? ?/sec
filter: single_utf8view, 8192, nulls: 0.1, selectivity: 0.8 1.00 5.7±0.28ms ? ?/sec 1.73 9.9±0.27ms ? ?/sec
```
# What changes are included in this PR?
* Avoiding recreating the views from scratch.
* Specialize concat for view types
* Takes owned RecordBatch (effect on performance is small, might be
measurable with smaller batch size / more columns).
# Are there any user-facing changes?
no
---------
Co-authored-by: Andrew Lamb <[email protected]>
1 parent 44d7194 commit 7739a83
File tree
3 files changed
+138
-55
lines changed- arrow-array/src/builder
- arrow-select/src
3 files changed
+138
-55
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
| 82 | + | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
102 | | - | |
| 102 | + | |
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | | - | |
| 204 | + | |
205 | 205 | | |
206 | 206 | | |
207 | 207 | | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
208 | 241 | | |
209 | 242 | | |
210 | 243 | | |
| |||
255 | 288 | | |
256 | 289 | | |
257 | 290 | | |
258 | | - | |
| 291 | + | |
259 | 292 | | |
260 | 293 | | |
261 | 294 | | |
| |||
287 | 320 | | |
288 | 321 | | |
289 | 322 | | |
290 | | - | |
| 323 | + | |
291 | 324 | | |
292 | 325 | | |
293 | 326 | | |
| |||
311 | 344 | | |
312 | 345 | | |
313 | 346 | | |
314 | | - | |
315 | | - | |
| 347 | + | |
316 | 348 | | |
317 | 349 | | |
318 | 350 | | |
319 | 351 | | |
320 | 352 | | |
321 | 353 | | |
322 | 354 | | |
323 | | - | |
| 355 | + | |
324 | 356 | | |
325 | 357 | | |
326 | 358 | | |
| |||
341 | 373 | | |
342 | 374 | | |
343 | 375 | | |
344 | | - | |
| 376 | + | |
345 | 377 | | |
346 | 378 | | |
347 | 379 | | |
| |||
358 | 390 | | |
359 | 391 | | |
360 | 392 | | |
361 | | - | |
| 393 | + | |
362 | 394 | | |
363 | 395 | | |
364 | 396 | | |
365 | 397 | | |
366 | 398 | | |
367 | 399 | | |
368 | | - | |
369 | | - | |
370 | 400 | | |
371 | 401 | | |
372 | 402 | | |
373 | 403 | | |
| 404 | + | |
374 | 405 | | |
375 | | - | |
| 406 | + | |
376 | 407 | | |
377 | 408 | | |
378 | 409 | | |
| |||
381 | 412 | | |
382 | 413 | | |
383 | 414 | | |
384 | | - | |
385 | | - | |
| 415 | + | |
| 416 | + | |
386 | 417 | | |
387 | 418 | | |
388 | 419 | | |
| |||
396 | 427 | | |
397 | 428 | | |
398 | 429 | | |
399 | | - | |
| 430 | + | |
400 | 431 | | |
401 | 432 | | |
402 | 433 | | |
| |||
418 | 449 | | |
419 | 450 | | |
420 | 451 | | |
421 | | - | |
| 452 | + | |
422 | 453 | | |
423 | 454 | | |
424 | 455 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
26 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
| 167 | + | |
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| |||
242 | 242 | | |
243 | 243 | | |
244 | 244 | | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
249 | 249 | | |
250 | 250 | | |
251 | 251 | | |
252 | | - | |
| 252 | + | |
253 | 253 | | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
254 | 258 | | |
255 | 259 | | |
256 | 260 | | |
| |||
264 | 268 | | |
265 | 269 | | |
266 | 270 | | |
| 271 | + | |
267 | 272 | | |
268 | 273 | | |
269 | 274 | | |
270 | 275 | | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
271 | 287 | | |
272 | 288 | | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
285 | 323 | | |
286 | 324 | | |
287 | 325 | | |
288 | | - | |
| 326 | + | |
289 | 327 | | |
290 | 328 | | |
291 | 329 | | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
| 330 | + | |
296 | 331 | | |
297 | 332 | | |
298 | 333 | | |
299 | 334 | | |
300 | 335 | | |
301 | | - | |
302 | | - | |
| 336 | + | |
| 337 | + | |
303 | 338 | | |
304 | 339 | | |
305 | 340 | | |
| |||
518 | 553 | | |
519 | 554 | | |
520 | 555 | | |
521 | | - | |
522 | | - | |
523 | | - | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
524 | 561 | | |
525 | 562 | | |
526 | 563 | | |
| |||
568 | 605 | | |
569 | 606 | | |
570 | 607 | | |
571 | | - | |
572 | | - | |
573 | | - | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
574 | 613 | | |
575 | 614 | | |
576 | 615 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
| |||
84 | 86 | | |
85 | 87 | | |
86 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
87 | 98 | | |
88 | 99 | | |
89 | 100 | | |
| |||
425 | 436 | | |
426 | 437 | | |
427 | 438 | | |
| 439 | + | |
| 440 | + | |
428 | 441 | | |
429 | 442 | | |
430 | 443 | | |
| |||
0 commit comments