BF-Shared-Hashing

所属分类:数学计算
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2021-07-23 05:15:12
上 传 者sh-1993
说明:  BF共享哈希,,
(BF-Shared-Hashing,,)

文件列表:
BF_bit.cpp (5492, 2021-07-22)
BF_bit.h (1130, 2021-07-22)
FastLocalBF.h (4687, 2021-07-22)
LegacyBF.h (6521, 2021-07-22)
Makefile (544, 2021-07-22)
args.hxx (141949, 2021-07-22)
bloom_impl.h (21542, 2021-07-22)
db.cpp (29108, 2021-07-22)
db.h (3272, 2021-07-22)
exp.py (3415, 2021-07-22)
hash/ (0, 2021-07-22)
hash/Crc32.cpp (71351, 2021-07-22)
hash/Crc32.h (3185, 2021-07-22)
hash/city.cc (19256, 2021-07-22)
hash/city.h (4898, 2021-07-22)
hash/citycrc.h (1862, 2021-07-22)
hash/md5.cpp (9317, 2021-07-22)
hash/md5.h (2078, 2021-07-22)
hash/murmurhash.cc (3090, 2021-07-22)
hash/murmurhash.h (169, 2021-07-22)
hash/port/ (0, 2021-07-22)
hash/port/lang.h (536, 2021-07-22)
hash/rocksdb_hash.cc (2938, 2021-07-22)
hash/rocksdb_hash.h (4532, 2021-07-22)
hash/sha-256.c (7196, 2021-07-22)
hash/sha-256.h (68, 2021-07-22)
hash/xxh3p.h (58878, 2021-07-22)
hash/xxhash.cc (40150, 2021-07-22)
hash/xxhash.h (27798, 2021-07-22)
hash_benchmark/ (0, 2021-07-22)
hash_benchmark/Makefile (410, 2021-07-22)
hash_benchmark/test.cpp (4285, 2021-07-22)
lsm-emulation.cpp (3756, 2021-07-22)
micro/ (0, 2021-07-22)
micro/Makefile (830, 2021-07-22)
micro/exp.py (2850, 2021-07-22)
micro/micro1.cpp (5620, 2021-07-22)
micro/micro2.cpp (6971, 2021-07-22)
... ...

LSM-Tree Emulation

This repository contains an LSM emulator that was used to run the experiments for our latest work: ["Reducing Bloom Filter CPU Overhead in LSM-Trees on Modern Storage Devices"](http://cs-people.bu.edu/mathan/publications/damon21-zhu.pdf). In this work, we observe that as we move to faster storage devices, hashing for BFs in LSM-trees becomes a key performance bottleneck. We address this by decoupling the hashing overhead from the number of distinct levels in the tree (and, as a result, the data size), by sharing a single hash digest across different levels. Our technique reduces the fraction of time spent on hashing during lookups and leads to performance benefits varying from 10% for our PCIe SSD to more than 40% for an emulated NVM. T --- Run `make` and you can execute lsm-emu which receives parameters as follows: OPTIONS: This group is all exclusive: -l[log], --log=[log] path for log files -p[path], --path=[path] path for writing the DB and all the metadata files -i[insert_workload], --insert_workload=[insert_workload] path for insert workload files -q[query_workload], --query_workload=[query_workload] path for query workload files -T[T], --size_ratio=[T] The size ratio of two adjacent levels [def: 2] -P[P], --buffer_size_in_pageas=[P] The number of pages that can fit into a buffer [def: 1024] -B[B], --entries_per_page=[B] The number of entries that fit into a page [def: 128] -E[E], --entry_size=[E] The size of a key-value pair inserted into DB [def: 64 B] -K[K], --key_size=[K] The size of a key inserted into DB [def: 16 B] -b[bits_per_key], --bits_per_key=[bits_per_key] The number of bits per key assigned to Bloom filter [def: 10] --elastic, --enable_elastic_filters Enable elastic filters. --FLBF, --enable_fast_local_filters Enable FastLocal Bloom filters. [def: false] --HT=[Hash Type], --hash_type=[Hash Type] Hash type MM64, XXHash, CRC or CITY [def: MM64] --num_funit=[num_funit], --num_filter_units=[num_funit] The number of filter units for elastic filter. [def: 2] --lvl_share_hash, --enable_leveled_shared_hashing Enable sharing hash across levels --funits_share_hash, --enable_filter_units_shared_hashing Enable sharing hash across filter units --dd, --destroy_db Delete the exsiting DB. --tries=[number_of_tries] #Tries to run the experiment (measured statistics would be averaged across #tries [def: 5] -D[delay], --delay=[delay] Read delay (nanos) added by human[def: 0] --DIO, --direct_IO Enable direct IO (DO NOT Enable this using RAM disk!)

近期下载者

相关文件


收藏者