Commit c6588bb
Support Per Stream String Buffers in Stream Data (#391)
Summary:
Adds per-stream string buffer support to Nimble's StreamData infrastructure. Previously, string data buffers were managed externally. This diff introduces a `StringBuffer` class that gives each `MutableStreamData` instance ownership of its string content. By storing the raw character data and lengths directly within the stream, the chunker can now safely compact strings during compact() operations without relying on external buffer lifetimes. This enables incremental memory reclamation as chunks are written, which is particularly beneficial for string-heavy tables where the shared buffer would otherwise grow unbounded until stripe flush.
Differential Revision: D899330551 parent 18a98c5 commit c6588bb
File tree
4 files changed
+205
-106
lines changed- dwio/nimble/velox
- tests
4 files changed
+205
-106
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
44 | 66 | | |
45 | 67 | | |
46 | 68 | | |
| |||
94 | 116 | | |
95 | 117 | | |
96 | 118 | | |
| 119 | + | |
97 | 120 | | |
98 | 121 | | |
99 | 122 | | |
| |||
194 | 217 | | |
195 | 218 | | |
196 | 219 | | |
| 220 | + | |
197 | 221 | | |
198 | 222 | | |
199 | 223 | | |
200 | 224 | | |
201 | 225 | | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
218 | 250 | | |
219 | 251 | | |
220 | 252 | | |
| |||
230 | 262 | | |
231 | 263 | | |
232 | 264 | | |
| 265 | + | |
233 | 266 | | |
234 | 267 | | |
235 | 268 | | |
| |||
314 | 347 | | |
315 | 348 | | |
316 | 349 | | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | 350 | | |
325 | 351 | | |
326 | 352 | | |
| 353 | + | |
327 | 354 | | |
328 | 355 | | |
329 | 356 | | |
| |||
361 | 388 | | |
362 | 389 | | |
363 | 390 | | |
| 391 | + | |
364 | 392 | | |
365 | 393 | | |
366 | 394 | | |
| |||
461 | 489 | | |
462 | 490 | | |
463 | 491 | | |
| 492 | + | |
464 | 493 | | |
465 | 494 | | |
466 | 495 | | |
467 | 496 | | |
468 | 497 | | |
469 | 498 | | |
470 | | - | |
471 | | - | |
472 | | - | |
473 | | - | |
474 | | - | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | | - | |
485 | | - | |
486 | | - | |
487 | | - | |
488 | | - | |
489 | | - | |
490 | | - | |
491 | | - | |
492 | | - | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
493 | 521 | | |
494 | 522 | | |
495 | 523 | | |
496 | 524 | | |
| 525 | + | |
497 | 526 | | |
498 | 527 | | |
499 | 528 | | |
| |||
515 | 544 | | |
516 | 545 | | |
517 | 546 | | |
| 547 | + | |
518 | 548 | | |
519 | 549 | | |
520 | 550 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
| 58 | + | |
57 | 59 | | |
58 | 60 | | |
59 | 61 | | |
| |||
84 | 86 | | |
85 | 87 | | |
86 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
87 | 136 | | |
88 | 137 | | |
89 | 138 | | |
| |||
156 | 205 | | |
157 | 206 | | |
158 | 207 | | |
159 | | - | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
160 | 211 | | |
161 | 212 | | |
162 | 213 | | |
| |||
180 | 231 | | |
181 | 232 | | |
182 | 233 | | |
183 | | - | |
| 234 | + | |
| 235 | + | |
184 | 236 | | |
185 | 237 | | |
186 | 238 | | |
187 | 239 | | |
188 | 240 | | |
189 | 241 | | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
190 | 246 | | |
191 | 247 | | |
192 | 248 | | |
| |||
197 | 253 | | |
198 | 254 | | |
199 | 255 | | |
| 256 | + | |
200 | 257 | | |
201 | 258 | | |
202 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
203 | 266 | | |
204 | 267 | | |
| 268 | + | |
205 | 269 | | |
206 | 270 | | |
207 | 271 | | |
| |||
286 | 350 | | |
287 | 351 | | |
288 | 352 | | |
| 353 | + | |
289 | 354 | | |
290 | 355 | | |
291 | 356 | | |
| |||
298 | 363 | | |
299 | 364 | | |
300 | 365 | | |
301 | | - | |
302 | | - | |
| 366 | + | |
| 367 | + | |
303 | 368 | | |
304 | 369 | | |
305 | 370 | | |
306 | 371 | | |
307 | 372 | | |
308 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
309 | 378 | | |
310 | 379 | | |
311 | 380 | | |
| |||
317 | 386 | | |
318 | 387 | | |
319 | 388 | | |
| 389 | + | |
320 | 390 | | |
321 | 391 | | |
322 | 392 | | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
323 | 399 | | |
324 | 400 | | |
| 401 | + | |
325 | 402 | | |
326 | 403 | | |
327 | 404 | | |
| |||
0 commit comments