• Kirill Smelkov's avatar
    X Split IStorage -> IStorage, IStorageDriver · 0abecd63
    Kirill Smelkov authored
    - IStorageDriver implements only raw access to a particular storage
    - Prefetching logic + other common bits are implemented byt zodb package
      infrastructure (e.g. Prefetch() and URL()) and access to them is
      provided by IStorage.
    
    It currently regresses plain load speed:
    
    name                           old time/object  new time/object  delta
    dataset:wczblk1-8
    deco/fs1/zhash.py                  15.4µs ± 4%      15.2µs ± 2%      ~     (p=0.159 n=4+5)
    deco/fs1/zhash.py-P16               116µs ±17%       121µs ±21%      ~     (p=0.407 n=16+16)
    deco/fs1/zhash.go                  1.50µs ± 0%      5.30µs ± 0%  +253.33%  (p=0.016 n=5+4)
    deco/fs1/zhash.go+prefetch128      4.08µs ± 5%      4.20µs ± 2%      ~     (p=0.143 n=5+5)
    deco/fs1/zhash.go-P16             4.77µs ±179%     33.85µs ±54%  +610.14%  (p=0.000 n=15+16)
    dataset:prod1-1024
    deco/fs1/zhash.py                  12.2µs ± 1%      12.4µs ± 4%      ~     (p=0.540 n=4+5)
    deco/fs1/zhash.py-P16               102µs ±12%       101µs ±16%      ~     (p=0.802 n=16+16)
    deco/fs1/zhash.go                  1.10µs ± 0%      2.66µs ± 2%  +141.82%  (p=0.008 n=5+5)
    deco/fs1/zhash.go+prefetch128      2.70µs ± 0%      2.67µs ± 3%      ~     (p=1.000 n=4+4)
    deco/fs1/zhash.go-P16             3.20µs ±138%     17.25µs ±42%  +439.06%  (p=0.000 n=16+16)
    
    will try to investigate what is going on inside.
    0abecd63
storage.go 16.9 KB