kelindar / column

High-performance, columnar, in-memory store with bitmap indexing in Go
MIT License
1.44k stars 57 forks source link

Fixed point read latch #26

Closed kelindar closed 3 years ago

kelindar commented 3 years ago

Fixed the latch of point read (SelectAt()) on both collection and the transaction. Transaction point read semantics were different, which is confusing. Now they are both essentially the same. I also removed completely lock contention from the benchmark, now using an interation number instead of atomic.

With this change, the point read now scales quite well.

   WORK  PROCS          READ RATE          WRITE RATE
100%-0%      1   17,320,162 txn/s             0 txn/s
100%-0%      2   27,678,524 txn/s             0 txn/s
100%-0%      4   37,998,651 txn/s             0 txn/s
100%-0%      8   52,135,263 txn/s             0 txn/s
100%-0%     16   39,878,285 txn/s             0 txn/s
100%-0%     32   31,037,293 txn/s             0 txn/s
100%-0%     64   27,923,347 txn/s             0 txn/s
100%-0%    128   27,015,623 txn/s             0 txn/s
100%-0%    256   27,004,417 txn/s             0 txn/s
100%-0%    512   27,025,849 txn/s             0 txn/s