Commit 2a96485
Andrei Popescu
Optimize reading data from leveldb with iterator. (#862)
When reading data from leveldb::Get() we need to use a string which
is poorly initialized and data is copied slowly and inefficient to it
which then again is memcpy-ied to a shared vector which adds another
layer of memcpy and slow initialization. The overhead for frequent data
reads is more then enough to consider an alternative.
This alternative consist in reading the data directly from the DB into
the resulting shared vector without any intermediate steps by using
iterators. The leveldb iterator gives us the possibility to access the
raw DB data and size without passing it into a inefficient string
before, and gives a huge performance bump.
Relates-To: OLPEDGE-1983
Signed-off-by: Andrei Popescu <[email protected]>1 parent d5a9c2a commit 2a96485
File tree
5 files changed
+110
-62
lines changed- olp-cpp-sdk-core
- src/cache
- tests/cache
5 files changed
+110
-62
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
| |||
231 | 234 | | |
232 | 235 | | |
233 | 236 | | |
234 | | - | |
235 | 237 | | |
236 | 238 | | |
237 | 239 | | |
238 | 240 | | |
239 | 241 | | |
240 | 242 | | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
| 243 | + | |
| 244 | + | |
247 | 245 | | |
| 246 | + | |
| 247 | + | |
248 | 248 | | |
249 | | - | |
| 249 | + | |
250 | 250 | | |
251 | | - | |
| 251 | + | |
| 252 | + | |
252 | 253 | | |
253 | 254 | | |
254 | 255 | | |
| |||
515 | 516 | | |
516 | 517 | | |
517 | 518 | | |
518 | | - | |
519 | | - | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
520 | 526 | | |
521 | | - | |
522 | | - | |
523 | | - | |
524 | | - | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
525 | 530 | | |
526 | 531 | | |
527 | 532 | | |
528 | 533 | | |
529 | 534 | | |
530 | | - | |
531 | | - | |
532 | | - | |
533 | | - | |
534 | | - | |
535 | | - | |
536 | | - | |
| 535 | + | |
| 536 | + | |
537 | 537 | | |
538 | 538 | | |
539 | | - | |
540 | | - | |
541 | | - | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
542 | 542 | | |
543 | 543 | | |
544 | | - | |
545 | | - | |
546 | | - | |
547 | | - | |
| 544 | + | |
| 545 | + | |
548 | 546 | | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
549 | 565 | | |
| 566 | + | |
550 | 567 | | |
551 | 568 | | |
552 | 569 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
24 | 28 | | |
25 | 29 | | |
26 | 30 | | |
| |||
52 | 56 | | |
53 | 57 | | |
54 | 58 | | |
55 | | - | |
| 59 | + | |
56 | 60 | | |
57 | 61 | | |
58 | 62 | | |
59 | 63 | | |
60 | 64 | | |
61 | 65 | | |
62 | | - | |
| 66 | + | |
63 | 67 | | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
67 | | - | |
| 71 | + | |
68 | 72 | | |
69 | 73 | | |
70 | 74 | | |
71 | 75 | | |
72 | | - | |
| 76 | + | |
73 | 77 | | |
74 | 78 | | |
75 | 79 | | |
| |||
99 | 103 | | |
100 | 104 | | |
101 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
102 | 109 | | |
103 | 110 | | |
104 | 111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
272 | 273 | | |
273 | 274 | | |
274 | 275 | | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
275 | 300 | | |
276 | 301 | | |
277 | 302 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
110 | 112 | | |
111 | 113 | | |
112 | 114 | | |
| 115 | + | |
| 116 | + | |
113 | 117 | | |
114 | 118 | | |
| 119 | + | |
| 120 | + | |
115 | 121 | | |
116 | 122 | | |
117 | 123 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | | - | |
31 | | - | |
| 30 | + | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | | - | |
| 117 | + | |
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
| |||
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
173 | | - | |
| 173 | + | |
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
| |||
340 | 340 | | |
341 | 341 | | |
342 | 342 | | |
343 | | - | |
| 343 | + | |
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
348 | | - | |
349 | | - | |
350 | | - | |
| 348 | + | |
| 349 | + | |
351 | 350 | | |
352 | 351 | | |
353 | 352 | | |
354 | 353 | | |
355 | | - | |
356 | | - | |
| 354 | + | |
357 | 355 | | |
358 | 356 | | |
359 | 357 | | |
| |||
363 | 361 | | |
364 | 362 | | |
365 | 363 | | |
366 | | - | |
| 364 | + | |
367 | 365 | | |
368 | 366 | | |
369 | 367 | | |
| |||
388 | 386 | | |
389 | 387 | | |
390 | 388 | | |
391 | | - | |
392 | | - | |
393 | | - | |
| 389 | + | |
| 390 | + | |
394 | 391 | | |
395 | 392 | | |
396 | 393 | | |
| |||
407 | 404 | | |
408 | 405 | | |
409 | 406 | | |
410 | | - | |
411 | | - | |
| 407 | + | |
412 | 408 | | |
413 | 409 | | |
414 | 410 | | |
| |||
426 | 422 | | |
427 | 423 | | |
428 | 424 | | |
429 | | - | |
430 | | - | |
| 425 | + | |
431 | 426 | | |
432 | 427 | | |
433 | 428 | | |
| |||
445 | 440 | | |
446 | 441 | | |
447 | 442 | | |
448 | | - | |
449 | | - | |
| 443 | + | |
450 | 444 | | |
451 | 445 | | |
452 | 446 | | |
| |||
459 | 453 | | |
460 | 454 | | |
461 | 455 | | |
462 | | - | |
| 456 | + | |
463 | 457 | | |
464 | 458 | | |
465 | 459 | | |
466 | 460 | | |
467 | 461 | | |
468 | | - | |
469 | | - | |
470 | | - | |
| 462 | + | |
| 463 | + | |
471 | 464 | | |
472 | 465 | | |
473 | 466 | | |
| |||
487 | 480 | | |
488 | 481 | | |
489 | 482 | | |
490 | | - | |
| 483 | + | |
491 | 484 | | |
492 | 485 | | |
493 | 486 | | |
| |||
543 | 536 | | |
544 | 537 | | |
545 | 538 | | |
546 | | - | |
| 539 | + | |
547 | 540 | | |
548 | 541 | | |
549 | 542 | | |
| |||
590 | 583 | | |
591 | 584 | | |
592 | 585 | | |
593 | | - | |
| 586 | + | |
594 | 587 | | |
595 | 588 | | |
596 | 589 | | |
| |||
0 commit comments