vinyl: incorporate tuple comparison hints into vinyl data structures
Apart from speeding up statement comparisons and hence index lookups, this is also a prerequisite for multikey indexes, which will reuse tuple comparison hints as offsets in indexed arrays. Albeit huge, this patch is pretty straightforward - all it does is replace struct tuple with struct vy_entry (which is tuple + hint pair) practically everywhere in the code. Now statements are stored and compared without hints only in a few places, primarily at the very top level. Hints are also computed at the top level so it should be pretty easy to replace them with multikey offsets when the time comes.
Showing
- src/box/vinyl.c 151 additions, 110 deletionssrc/box/vinyl.c
- src/box/vy_cache.c 125 additions, 127 deletionssrc/box/vy_cache.c
- src/box/vy_cache.h 23 additions, 23 deletionssrc/box/vy_cache.h
- src/box/vy_history.c 23 additions, 19 deletionssrc/box/vy_history.c
- src/box/vy_history.h 11 additions, 14 deletionssrc/box/vy_history.h
- src/box/vy_lsm.c 129 additions, 110 deletionssrc/box/vy_lsm.c
- src/box/vy_lsm.h 9 additions, 8 deletionssrc/box/vy_lsm.h
- src/box/vy_mem.c 107 additions, 104 deletionssrc/box/vy_mem.c
- src/box/vy_mem.h 27 additions, 29 deletionssrc/box/vy_mem.h
- src/box/vy_point_lookup.c 22 additions, 22 deletionssrc/box/vy_point_lookup.c
- src/box/vy_point_lookup.h 3 additions, 4 deletionssrc/box/vy_point_lookup.h
- src/box/vy_range.c 38 additions, 37 deletionssrc/box/vy_range.c
- src/box/vy_range.h 7 additions, 7 deletionssrc/box/vy_range.h
- src/box/vy_read_iterator.c 120 additions, 120 deletionssrc/box/vy_read_iterator.c
- src/box/vy_read_iterator.h 9 additions, 8 deletionssrc/box/vy_read_iterator.h
- src/box/vy_read_set.c 17 additions, 15 deletionssrc/box/vy_read_set.c
- src/box/vy_read_set.h 6 additions, 7 deletionssrc/box/vy_read_set.h
- src/box/vy_run.c 209 additions, 187 deletionssrc/box/vy_run.c
- src/box/vy_run.h 20 additions, 17 deletionssrc/box/vy_run.h
- src/box/vy_scheduler.c 9 additions, 8 deletionssrc/box/vy_scheduler.c
Loading
Please register or sign in to comment