From 32732ed72a266c9ed5d252725076ab85b385d577 Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Sun, 13 Apr 2014 21:50:50 +1000 Subject: [PATCH 1/2] upgrade to leveldb 1.15.0 --- deps/leveldb-1.15.0.tar.gz | Bin 0 -> 205691 bytes .../.gitignore | 0 .../AUTHORS | 0 .../LICENSE | 0 .../Makefile | 2 +- .../{leveldb-1.14.0 => leveldb-1.15.0}/NEWS | 0 .../{leveldb-1.14.0 => leveldb-1.15.0}/README | 0 .../{leveldb-1.14.0 => leveldb-1.15.0}/TODO | 0 .../build_detect_platform | 10 + .../db/autocompact_test.cc | 0 .../db/builder.cc | 0 .../db/builder.h | 0 .../db/c.cc | 0 .../db/c_test.c | 0 .../db/corruption_test.cc | 26 ++- .../db/db_bench.cc | 8 +- .../db/db_impl.cc | 99 ++++++---- .../db/db_impl.h | 9 +- .../db/db_iter.cc | 0 .../db/db_iter.h | 0 .../db/db_test.cc | 108 ++++++----- .../db/dbformat.cc | 0 .../db/dbformat.h | 0 .../db/dbformat_test.cc | 0 .../db/filename.cc | 0 .../db/filename.h | 0 .../db/filename_test.cc | 0 .../db/leveldb_main.cc | 0 .../db/log_format.h | 0 .../db/log_reader.cc | 0 .../db/log_reader.h | 0 .../db/log_test.cc | 0 .../db/log_writer.cc | 0 .../db/log_writer.h | 0 .../db/memtable.cc | 0 .../db/memtable.h | 0 .../db/repair.cc | 163 +++++++++++----- .../db/skiplist.h | 0 .../db/skiplist_test.cc | 0 .../db/snapshot.h | 0 .../db/table_cache.cc | 0 .../db/table_cache.h | 0 .../db/version_edit.cc | 0 .../db/version_edit.h | 0 .../db/version_edit_test.cc | 0 .../db/version_set.cc | 33 ---- .../db/version_set.h | 2 - .../db/version_set_test.cc | 0 .../db/write_batch.cc | 0 .../db/write_batch_internal.h | 0 .../db/write_batch_test.cc | 0 .../doc/bench/db_bench_sqlite3.cc | 0 .../doc/bench/db_bench_tree_db.cc | 0 .../doc/benchmark.html | 0 .../doc/doc.css | 0 .../doc/impl.html | 0 .../doc/index.html | 0 .../doc/log_format.txt | 0 .../doc/table_format.txt | 0 .../helpers/memenv/memenv.cc | 0 .../helpers/memenv/memenv.h | 0 .../helpers/memenv/memenv_test.cc | 0 .../include/leveldb/c.h | 0 .../include/leveldb/cache.h | 0 .../include/leveldb/comparator.h | 0 .../include/leveldb/db.h | 2 +- .../include/leveldb/env.h | 2 +- .../include/leveldb/filter_policy.h | 0 .../include/leveldb/iterator.h | 0 .../include/leveldb/options.h | 0 .../include/leveldb/slice.h | 0 .../include/leveldb/status.h | 0 .../include/leveldb/table.h | 0 .../include/leveldb/table_builder.h | 0 .../include/leveldb/write_batch.h | 0 .../issues/issue178_test.cc | 0 .../issues/issue200_test.cc | 0 .../port/README | 0 .../port/atomic_pointer.h | 14 +- .../port/port.h | 0 .../port/port_example.h | 0 .../port/port_posix.cc | 0 .../port/port_posix.h | 0 .../port/thread_annotations.h | 0 .../port/win/stdint.h | 0 .../table/block.cc | 0 .../table/block.h | 0 .../table/block_builder.cc | 0 .../table/block_builder.h | 0 .../table/filter_block.cc | 0 .../table/filter_block.h | 0 .../table/filter_block_test.cc | 2 +- .../table/format.cc | 0 .../table/format.h | 0 .../table/iterator.cc | 0 .../table/iterator_wrapper.h | 0 .../table/merger.cc | 0 .../table/merger.h | 0 .../table/table.cc | 0 .../table/table_builder.cc | 0 .../table/table_test.cc | 0 .../table/two_level_iterator.cc | 0 .../table/two_level_iterator.h | 0 .../util/arena.cc | 0 .../util/arena.h | 2 +- .../util/arena_test.cc | 6 +- .../util/bloom.cc | 0 .../util/bloom_test.cc | 3 +- .../util/cache.cc | 0 .../util/cache_test.cc | 0 .../util/coding.cc | 0 .../util/coding.h | 0 .../util/coding_test.cc | 8 +- .../util/comparator.cc | 0 .../util/crc32c.cc | 0 .../util/crc32c.h | 0 .../util/crc32c_test.cc | 0 .../util/env.cc | 0 .../util/env_posix.cc | 181 +++--------------- .../util/env_test.cc | 0 .../util/filter_policy.cc | 0 .../util/hash.cc | 0 .../util/hash.h | 0 .../util/histogram.cc | 0 .../util/histogram.h | 0 .../util/logging.cc | 0 .../util/logging.h | 0 .../util/mutexlock.h | 0 .../util/options.cc | 0 .../util/posix_logger.h | 0 .../util/random.h | 0 .../util/status.cc | 0 .../util/testharness.cc | 2 +- .../util/testharness.h | 0 .../util/testutil.cc | 2 +- .../util/testutil.h | 2 +- deps/leveldb/leveldb.gyp | 2 +- 137 files changed, 321 insertions(+), 367 deletions(-) create mode 100644 deps/leveldb-1.15.0.tar.gz rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/.gitignore (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/AUTHORS (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/LICENSE (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/Makefile (99%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/NEWS (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/README (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/TODO (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/build_detect_platform (95%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/autocompact_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/builder.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/builder.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/c.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/c_test.c (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/corruption_test.cc (93%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/db_bench.cc (99%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/db_impl.cc (96%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/db_impl.h (97%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/db_iter.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/db_iter.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/db_test.cc (97%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/dbformat.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/dbformat.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/dbformat_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/filename.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/filename.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/filename_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/leveldb_main.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/log_format.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/log_reader.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/log_reader.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/log_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/log_writer.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/log_writer.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/memtable.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/memtable.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/repair.cc (75%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/skiplist.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/skiplist_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/snapshot.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/table_cache.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/table_cache.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/version_edit.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/version_edit.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/version_edit_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/version_set.cc (97%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/version_set.h (99%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/version_set_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/write_batch.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/write_batch_internal.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/db/write_batch_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/bench/db_bench_sqlite3.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/bench/db_bench_tree_db.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/benchmark.html (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/doc.css (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/impl.html (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/index.html (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/log_format.txt (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/doc/table_format.txt (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/helpers/memenv/memenv.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/helpers/memenv/memenv.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/helpers/memenv/memenv_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/c.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/cache.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/comparator.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/db.h (99%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/env.h (99%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/filter_policy.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/iterator.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/options.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/slice.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/status.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/table.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/table_builder.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/include/leveldb/write_batch.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/issues/issue178_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/issues/issue200_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/README (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/atomic_pointer.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/port.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/port_example.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/port_posix.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/port_posix.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/thread_annotations.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/port/win/stdint.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/block.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/block.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/block_builder.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/block_builder.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/filter_block.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/filter_block.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/filter_block_test.cc (98%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/format.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/format.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/iterator.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/iterator_wrapper.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/merger.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/merger.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/table.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/table_builder.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/table_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/two_level_iterator.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/table/two_level_iterator.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/arena.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/arena.h (98%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/arena_test.cc (92%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/bloom.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/bloom_test.cc (97%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/cache.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/cache_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/coding.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/coding.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/coding_test.cc (96%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/comparator.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/crc32c.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/crc32c.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/crc32c_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/env.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/env_posix.cc (76%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/env_test.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/filter_policy.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/hash.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/hash.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/histogram.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/histogram.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/logging.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/logging.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/mutexlock.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/options.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/posix_logger.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/random.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/status.cc (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/testharness.cc (97%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/testharness.h (100%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/testutil.cc (95%) rename deps/leveldb/{leveldb-1.14.0 => leveldb-1.15.0}/util/testutil.h (96%) diff --git a/deps/leveldb-1.15.0.tar.gz b/deps/leveldb-1.15.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..173d3fa7e3ec3a2c66889257f4adf55d38224f84 GIT binary patch literal 205691 zcmV(xKWo%?(Eio=JH7+nNbYXG;>|A?u+c=WXzr#<_=lE`{ zj6_+sV^3+~O!TtD8ClYaa^lqPmX{(SiDQb;5TqSVZS7~jZh&veiQ{B5Teo4AZ4v|; zKQtQs02}t$E%Tgdt)Vxb>-+U5|B7oLuaoD`pX?v(H%|8P?|!3k+}M}p@%5x}aPYiw ze0;QjeDq|$anLw9d;-t^C1^@lBtk0yc;d_hKDYdP>oI@+HQ;>h%PY>mK6gWR?(=|s z!9Hk$kB^S-o&QFoQJVjw#`B{mu>S=y++{0%Ny;PZs8BdA7|~k z(`R@ixcsH#{dLGhs5#T?Df8`x77I@lx}NrD59HhRsH?R8TbGm9!?F2g`}o-UKRS9| zTK|U!N5|jR|JS&l!oXTG0b;=;&w(ie%W;?kA%}3`3YfVb1JAu-Ab3+#wSfmP43Jsw zA6DpcA6~Gf<$BaIU_!jqv~$kq*v{~6UBgC(k5RVB`;DKmrzp&XXU~A|y z3#t5uPp{^(sc!S-OU<fy9FOdG76~YT43kr3R{KyIs3j-I`lI-JG zcI)~uW^?M|h8}cB59smLoM0<5zwiaVZ@Zq$2nnCMuRJ%5U;f#X^e?%VVwdIPif zW&8NZ`ad{n9Br)s{craFt6UwvS_kfY5yGBb0i2))Oco6KBo^H^wA4z~q2+lX>j}U$ z&VpO!;L;v52iKfjYjR!t4n%?ht~bG>z-F>!>iSl&h8Yi*q6&9zxF7{We|Z#YOYXQc z*OrQ;3Rb{i#e$_9hNy&A0l#&nHd^574-waldmg`Y{W&di$E8Ms8fi-wHZ=_Zoxl0!4+Yw+- zIVL0saCAJ42VAL8>A@( z@CJF&!?Co+@2W9Pv-iK3SP5T3w{_7v$D!?ggd;d5oy&3Wf*>Os%*(bpF(#Lj9-I${ zUCC#&H-3XQ$@~fWLsK&A((F~WZfnw#9U}?k6u!p$_N8e^o*9ElZ#=#nO^o57g46pJ zxq=v5*t9E|I~>qZQAT>h@jD_)JdnJv!rRw9EFTj;C8t`%0uwpbndGZsf5^azmW>ex zz4N|t-Wzm!^ma&8-Wq1Ff>ULfRKbwl;^bqWmvYE7MTkn1w>g2W%83Ny3|iec2EmRi zEhG937PRe-4iiPrljzuW>zv&+-7C z!ljVrAXe0wnZ?IB+O)t&RX$yV1#Poi6X9Bh6E^b&Q&!zZw|mNv(2PfD)MDEe`=K)Y z(7|NNO2*Nt3QEwFW(Fs3Y$)WYecDCi@X^&La|!IdWryAxxF3&<5c}AVXHA*s;du61 zl`8DD@fX?Qy-o#3fMyt}pluUqrR)Wkgm(;$5>j2cp0dH{>o9^h98KWoQ>YCOpw=C9 zd+p0}P}ftU4I^a>sR_ALdwdnTOZN}#nJ84SpM=8v01DSrf`#GKG@8r0=x^0w7I~f= zLQSrAw6OSkPELbZFQ?oSIf4Xfo`dyN4i5n#.wZ2|(S0&*LvZz1-n%*XB>7BU;j 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

T}x=%5sizrX6)21 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℞$^XgNkU3*COrL1Ju&2y8>toV4C!h+J$=X~!J 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

`bztppjyF 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 exit 1 diff --git a/deps/leveldb/leveldb-1.14.0/db/autocompact_test.cc b/deps/leveldb/leveldb-1.15.0/db/autocompact_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/autocompact_test.cc rename to deps/leveldb/leveldb-1.15.0/db/autocompact_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/builder.cc b/deps/leveldb/leveldb-1.15.0/db/builder.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/builder.cc rename to deps/leveldb/leveldb-1.15.0/db/builder.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/builder.h b/deps/leveldb/leveldb-1.15.0/db/builder.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/builder.h rename to deps/leveldb/leveldb-1.15.0/db/builder.h diff --git a/deps/leveldb/leveldb-1.14.0/db/c.cc b/deps/leveldb/leveldb-1.15.0/db/c.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/c.cc rename to deps/leveldb/leveldb-1.15.0/db/c.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/c_test.c b/deps/leveldb/leveldb-1.15.0/db/c_test.c similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/c_test.c rename to deps/leveldb/leveldb-1.15.0/db/c_test.c diff --git a/deps/leveldb/leveldb-1.14.0/db/corruption_test.cc b/deps/leveldb/leveldb-1.15.0/db/corruption_test.cc similarity index 93% rename from deps/leveldb/leveldb-1.14.0/db/corruption_test.cc rename to deps/leveldb/leveldb-1.15.0/db/corruption_test.cc index b37ffdfe..96afc689 100644 --- a/deps/leveldb/leveldb-1.14.0/db/corruption_test.cc +++ b/deps/leveldb/leveldb-1.15.0/db/corruption_test.cc @@ -75,7 +75,13 @@ class CorruptionTest { Slice key = Key(i, &key_space); batch.Clear(); batch.Put(key, Value(i, &value_space)); - ASSERT_OK(db_->Write(WriteOptions(), &batch)); + WriteOptions options; + // Corrupt() doesn't work without this sync on windows; stat reports 0 for + // the file size. + if (i == n - 1) { + options.sync = true; + } + ASSERT_OK(db_->Write(options, &batch)); } } @@ -125,7 +131,7 @@ class CorruptionTest { FileType type; std::string fname; int picked_number = -1; - for (int i = 0; i < filenames.size(); i++) { + for (size_t i = 0; i < filenames.size(); i++) { if (ParseFileName(filenames[i], &number, &type) && type == filetype && int(number) > picked_number) { // Pick latest file @@ -238,6 +244,22 @@ TEST(CorruptionTest, TableFile) { Check(90, 99); } +TEST(CorruptionTest, TableFileRepair) { + options_.block_size = 2 * kValueSize; // Limit scope of corruption + options_.paranoid_checks = true; + Reopen(); + Build(100); + DBImpl* dbi = reinterpret_cast(db_); + dbi->TEST_CompactMemTable(); + dbi->TEST_CompactRange(0, NULL, NULL); + dbi->TEST_CompactRange(1, NULL, NULL); + + Corrupt(kTableFile, 100, 1); + RepairDB(); + Reopen(); + Check(95, 99); +} + TEST(CorruptionTest, TableFileIndexData) { Build(10000); // Enough to build multiple Tables DBImpl* dbi = reinterpret_cast(db_); diff --git a/deps/leveldb/leveldb-1.14.0/db/db_bench.cc b/deps/leveldb/leveldb-1.15.0/db/db_bench.cc similarity index 99% rename from deps/leveldb/leveldb-1.14.0/db/db_bench.cc rename to deps/leveldb/leveldb-1.15.0/db/db_bench.cc index 7abdf875..fc46d896 100644 --- a/deps/leveldb/leveldb-1.14.0/db/db_bench.cc +++ b/deps/leveldb/leveldb-1.15.0/db/db_bench.cc @@ -128,7 +128,7 @@ class RandomGenerator { pos_ = 0; } - Slice Generate(int len) { + Slice Generate(size_t len) { if (pos_ + len > data_.size()) { pos_ = 0; assert(len < data_.size()); @@ -139,11 +139,11 @@ class RandomGenerator { }; static Slice TrimSpace(Slice s) { - int start = 0; + size_t start = 0; while (start < s.size() && isspace(s[start])) { start++; } - int limit = s.size(); + size_t limit = s.size(); while (limit > start && isspace(s[limit-1])) { limit--; } @@ -399,7 +399,7 @@ class Benchmark { heap_counter_(0) { std::vector files; Env::Default()->GetChildren(FLAGS_db, &files); - for (int i = 0; i < files.size(); i++) { + for (size_t i = 0; i < files.size(); i++) { if (Slice(files[i]).starts_with("heap-")) { Env::Default()->DeleteFile(std::string(FLAGS_db) + "/" + files[i]); } diff --git a/deps/leveldb/leveldb-1.14.0/db/db_impl.cc b/deps/leveldb/leveldb-1.15.0/db/db_impl.cc similarity index 96% rename from deps/leveldb/leveldb-1.14.0/db/db_impl.cc rename to deps/leveldb/leveldb-1.15.0/db/db_impl.cc index fa135103..faf5e7d7 100644 --- a/deps/leveldb/leveldb-1.14.0/db/db_impl.cc +++ b/deps/leveldb/leveldb-1.15.0/db/db_impl.cc @@ -133,8 +133,7 @@ DBImpl::DBImpl(const Options& raw_options, const std::string& dbname) seed_(0), tmp_batch_(new WriteBatch), bg_compaction_scheduled_(false), - manual_compaction_(NULL), - consecutive_compaction_errors_(0) { + manual_compaction_(NULL) { mem_->Ref(); has_imm_.Release_Store(NULL); @@ -217,6 +216,12 @@ void DBImpl::MaybeIgnoreError(Status* s) const { } void DBImpl::DeleteObsoleteFiles() { + if (!bg_error_.ok()) { + // After a background error, we don't know whether a new version may + // or may not have been committed, so we cannot safely garbage collect. + return; + } + // Make a set of all of the live files std::set live = pending_outputs_; versions_->AddLiveFiles(&live); @@ -495,7 +500,7 @@ Status DBImpl::WriteLevel0Table(MemTable* mem, VersionEdit* edit, return s; } -Status DBImpl::CompactMemTable() { +void DBImpl::CompactMemTable() { mutex_.AssertHeld(); assert(imm_ != NULL); @@ -523,9 +528,9 @@ Status DBImpl::CompactMemTable() { imm_ = NULL; has_imm_.Release_Store(NULL); DeleteObsoleteFiles(); + } else { + RecordBackgroundError(s); } - - return s; } void DBImpl::CompactRange(const Slice* begin, const Slice* end) { @@ -568,16 +573,18 @@ void DBImpl::TEST_CompactRange(int level, const Slice* begin,const Slice* end) { } MutexLock l(&mutex_); - while (!manual.done) { - while (manual_compaction_ != NULL) { - bg_cv_.Wait(); - } - manual_compaction_ = &manual; - MaybeScheduleCompaction(); - while (manual_compaction_ == &manual) { + while (!manual.done && !shutting_down_.Acquire_Load() && bg_error_.ok()) { + if (manual_compaction_ == NULL) { // Idle + manual_compaction_ = &manual; + MaybeScheduleCompaction(); + } else { // Running either my compaction or another compaction. bg_cv_.Wait(); } } + if (manual_compaction_ == &manual) { + // Cancel my manual compaction since we aborted early for some reason. + manual_compaction_ = NULL; + } } Status DBImpl::TEST_CompactMemTable() { @@ -596,12 +603,22 @@ Status DBImpl::TEST_CompactMemTable() { return s; } +void DBImpl::RecordBackgroundError(const Status& s) { + mutex_.AssertHeld(); + if (bg_error_.ok()) { + bg_error_ = s; + bg_cv_.SignalAll(); + } +} + void DBImpl::MaybeScheduleCompaction() { mutex_.AssertHeld(); if (bg_compaction_scheduled_) { // Already scheduled } else if (shutting_down_.Acquire_Load()) { // DB is being deleted; no more background compactions + } else if (!bg_error_.ok()) { + // Already got an error; no more changes } else if (imm_ == NULL && manual_compaction_ == NULL && !versions_->NeedsCompaction()) { @@ -619,30 +636,12 @@ void DBImpl::BGWork(void* db) { void DBImpl::BackgroundCall() { MutexLock l(&mutex_); assert(bg_compaction_scheduled_); - if (!shutting_down_.Acquire_Load()) { - Status s = BackgroundCompaction(); - if (s.ok()) { - // Success - consecutive_compaction_errors_ = 0; - } else if (shutting_down_.Acquire_Load()) { - // Error most likely due to shutdown; do not wait - } else { - // Wait a little bit before retrying background compaction in - // case this is an environmental problem and we do not want to - // chew up resources for failed compactions for the duration of - // the problem. - bg_cv_.SignalAll(); // In case a waiter can proceed despite the error - Log(options_.info_log, "Waiting after background compaction error: %s", - s.ToString().c_str()); - mutex_.Unlock(); - ++consecutive_compaction_errors_; - int seconds_to_sleep = 1; - for (int i = 0; i < 3 && i < consecutive_compaction_errors_ - 1; ++i) { - seconds_to_sleep *= 2; - } - env_->SleepForMicroseconds(seconds_to_sleep * 1000000); - mutex_.Lock(); - } + if (shutting_down_.Acquire_Load()) { + // No more background work when shutting down. + } else if (!bg_error_.ok()) { + // No more background work after a background error. + } else { + BackgroundCompaction(); } bg_compaction_scheduled_ = false; @@ -653,11 +652,12 @@ void DBImpl::BackgroundCall() { bg_cv_.SignalAll(); } -Status DBImpl::BackgroundCompaction() { +void DBImpl::BackgroundCompaction() { mutex_.AssertHeld(); if (imm_ != NULL) { - return CompactMemTable(); + CompactMemTable(); + return; } Compaction* c; @@ -691,6 +691,9 @@ Status DBImpl::BackgroundCompaction() { c->edit()->AddFile(c->level() + 1, f->number, f->file_size, f->smallest, f->largest); status = versions_->LogAndApply(c->edit(), &mutex_); + if (!status.ok()) { + RecordBackgroundError(status); + } VersionSet::LevelSummaryStorage tmp; Log(options_.info_log, "Moved #%lld to level-%d %lld bytes %s: %s\n", static_cast(f->number), @@ -701,6 +704,9 @@ Status DBImpl::BackgroundCompaction() { } else { CompactionState* compact = new CompactionState(c); status = DoCompactionWork(compact); + if (!status.ok()) { + RecordBackgroundError(status); + } CleanupCompaction(compact); c->ReleaseInputs(); DeleteObsoleteFiles(); @@ -714,9 +720,6 @@ Status DBImpl::BackgroundCompaction() { } else { Log(options_.info_log, "Compaction error: %s", status.ToString().c_str()); - if (options_.paranoid_checks && bg_error_.ok()) { - bg_error_ = status; - } } if (is_manual) { @@ -732,7 +735,6 @@ Status DBImpl::BackgroundCompaction() { } manual_compaction_ = NULL; } - return status; } void DBImpl::CleanupCompaction(CompactionState* compact) { @@ -1002,6 +1004,9 @@ Status DBImpl::DoCompactionWork(CompactionState* compact) { if (status.ok()) { status = InstallCompactionResults(compact); } + if (!status.ok()) { + RecordBackgroundError(status); + } VersionSet::LevelSummaryStorage tmp; Log(options_.info_log, "compacted to: %s", versions_->LevelSummary(&tmp)); @@ -1185,13 +1190,23 @@ Status DBImpl::Write(const WriteOptions& options, WriteBatch* my_batch) { { mutex_.Unlock(); status = log_->AddRecord(WriteBatchInternal::Contents(updates)); + bool sync_error = false; if (status.ok() && options.sync) { status = logfile_->Sync(); + if (!status.ok()) { + sync_error = true; + } } if (status.ok()) { status = WriteBatchInternal::InsertInto(updates, mem_); } mutex_.Lock(); + if (sync_error) { + // The state of the log file is indeterminate: the log record we + // just added may or may not show up when the DB is re-opened. + // So we force the DB into a mode where all future writes fail. + RecordBackgroundError(status); + } } if (updates == tmp_batch_) tmp_batch_->Clear(); diff --git a/deps/leveldb/leveldb-1.14.0/db/db_impl.h b/deps/leveldb/leveldb-1.15.0/db/db_impl.h similarity index 97% rename from deps/leveldb/leveldb-1.14.0/db/db_impl.h rename to deps/leveldb/leveldb-1.15.0/db/db_impl.h index 75fd30ab..cfc99816 100644 --- a/deps/leveldb/leveldb-1.14.0/db/db_impl.h +++ b/deps/leveldb/leveldb-1.15.0/db/db_impl.h @@ -87,8 +87,8 @@ class DBImpl : public DB { // Compact the in-memory write buffer to disk. Switches to a new // log-file/memtable and writes a new descriptor iff successful. - Status CompactMemTable() - EXCLUSIVE_LOCKS_REQUIRED(mutex_); + // Errors are recorded in bg_error_. + void CompactMemTable() EXCLUSIVE_LOCKS_REQUIRED(mutex_); Status RecoverLogFile(uint64_t log_number, VersionEdit* edit, @@ -102,10 +102,12 @@ class DBImpl : public DB { EXCLUSIVE_LOCKS_REQUIRED(mutex_); WriteBatch* BuildBatchGroup(Writer** last_writer); + void RecordBackgroundError(const Status& s); + void MaybeScheduleCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_); static void BGWork(void* db); void BackgroundCall(); - Status BackgroundCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_); + void BackgroundCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_); void CleanupCompaction(CompactionState* compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_); Status DoCompactionWork(CompactionState* compact) @@ -170,7 +172,6 @@ class DBImpl : public DB { // Have we encountered a background error in paranoid mode? Status bg_error_; - int consecutive_compaction_errors_; // Per level compaction stats. stats_[level] stores the stats for // compactions that produced data for the specified "level". diff --git a/deps/leveldb/leveldb-1.14.0/db/db_iter.cc b/deps/leveldb/leveldb-1.15.0/db/db_iter.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/db_iter.cc rename to deps/leveldb/leveldb-1.15.0/db/db_iter.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/db_iter.h b/deps/leveldb/leveldb-1.15.0/db/db_iter.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/db_iter.h rename to deps/leveldb/leveldb-1.15.0/db/db_iter.h diff --git a/deps/leveldb/leveldb-1.14.0/db/db_test.cc b/deps/leveldb/leveldb-1.15.0/db/db_test.cc similarity index 97% rename from deps/leveldb/leveldb-1.14.0/db/db_test.cc rename to deps/leveldb/leveldb-1.15.0/db/db_test.cc index 848a0385..280b01c1 100644 --- a/deps/leveldb/leveldb-1.14.0/db/db_test.cc +++ b/deps/leveldb/leveldb-1.15.0/db/db_test.cc @@ -57,8 +57,11 @@ void DelayMilliseconds(int millis) { // Special Env used to delay background operations class SpecialEnv : public EnvWrapper { public: - // sstable Sync() calls are blocked while this pointer is non-NULL. - port::AtomicPointer delay_sstable_sync_; + // sstable/log Sync() calls are blocked while this pointer is non-NULL. + port::AtomicPointer delay_data_sync_; + + // sstable/log Sync() calls return an error. + port::AtomicPointer data_sync_error_; // Simulate no-space errors while this pointer is non-NULL. port::AtomicPointer no_space_; @@ -75,11 +78,9 @@ class SpecialEnv : public EnvWrapper { bool count_random_reads_; AtomicCounter random_read_counter_; - AtomicCounter sleep_counter_; - AtomicCounter sleep_time_counter_; - explicit SpecialEnv(Env* base) : EnvWrapper(base) { - delay_sstable_sync_.Release_Store(NULL); + delay_data_sync_.Release_Store(NULL); + data_sync_error_.Release_Store(NULL); no_space_.Release_Store(NULL); non_writable_.Release_Store(NULL); count_random_reads_ = false; @@ -88,17 +89,17 @@ class SpecialEnv : public EnvWrapper { } Status NewWritableFile(const std::string& f, WritableFile** r) { - class SSTableFile : public WritableFile { + class DataFile : public WritableFile { private: SpecialEnv* env_; WritableFile* base_; public: - SSTableFile(SpecialEnv* env, WritableFile* base) + DataFile(SpecialEnv* env, WritableFile* base) : env_(env), base_(base) { } - ~SSTableFile() { delete base_; } + ~DataFile() { delete base_; } Status Append(const Slice& data) { if (env_->no_space_.Acquire_Load() != NULL) { // Drop writes on the floor @@ -110,7 +111,10 @@ class SpecialEnv : public EnvWrapper { Status Close() { return base_->Close(); } Status Flush() { return base_->Flush(); } Status Sync() { - while (env_->delay_sstable_sync_.Acquire_Load() != NULL) { + if (env_->data_sync_error_.Acquire_Load() != NULL) { + return Status::IOError("simulated data sync error"); + } + while (env_->delay_data_sync_.Acquire_Load() != NULL) { DelayMilliseconds(100); } return base_->Sync(); @@ -147,8 +151,9 @@ class SpecialEnv : public EnvWrapper { Status s = target()->NewWritableFile(f, r); if (s.ok()) { - if (strstr(f.c_str(), ".ldb") != NULL) { - *r = new SSTableFile(this, *r); + if (strstr(f.c_str(), ".ldb") != NULL || + strstr(f.c_str(), ".log") != NULL) { + *r = new DataFile(this, *r); } else if (strstr(f.c_str(), "MANIFEST") != NULL) { *r = new ManifestFile(this, *r); } @@ -179,12 +184,6 @@ class SpecialEnv : public EnvWrapper { } return s; } - - virtual void SleepForMicroseconds(int micros) { - sleep_counter_.Increment(); - sleep_time_counter_.IncrementBy(micros); - } - }; class DBTest { @@ -322,7 +321,7 @@ class DBTest { } // Check reverse iteration results are the reverse of forward results - int matched = 0; + size_t matched = 0; for (iter->SeekToLast(); iter->Valid(); iter->Prev()) { ASSERT_LT(matched, forward.size()); ASSERT_EQ(IterStatus(iter), forward[forward.size() - matched - 1]); @@ -543,11 +542,11 @@ TEST(DBTest, GetFromImmutableLayer) { ASSERT_OK(Put("foo", "v1")); ASSERT_EQ("v1", Get("foo")); - env_->delay_sstable_sync_.Release_Store(env_); // Block sync calls + env_->delay_data_sync_.Release_Store(env_); // Block sync calls Put("k1", std::string(100000, 'x')); // Fill memtable Put("k2", std::string(100000, 'y')); // Trigger compaction ASSERT_EQ("v1", Get("foo")); - env_->delay_sstable_sync_.Release_Store(NULL); // Release sync calls + env_->delay_data_sync_.Release_Store(NULL); // Release sync calls } while (ChangeOptions()); } @@ -1534,41 +1533,13 @@ TEST(DBTest, NoSpace) { Compact("a", "z"); const int num_files = CountFiles(); env_->no_space_.Release_Store(env_); // Force out-of-space errors - env_->sleep_counter_.Reset(); - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 10; i++) { for (int level = 0; level < config::kNumLevels-1; level++) { dbfull()->TEST_CompactRange(level, NULL, NULL); } } env_->no_space_.Release_Store(NULL); ASSERT_LT(CountFiles(), num_files + 3); - - // Check that compaction attempts slept after errors - ASSERT_GE(env_->sleep_counter_.Read(), 5); -} - -TEST(DBTest, ExponentialBackoff) { - Options options = CurrentOptions(); - options.env = env_; - Reopen(&options); - - ASSERT_OK(Put("foo", "v1")); - ASSERT_EQ("v1", Get("foo")); - Compact("a", "z"); - env_->non_writable_.Release_Store(env_); // Force errors for new files - env_->sleep_counter_.Reset(); - env_->sleep_time_counter_.Reset(); - for (int i = 0; i < 5; i++) { - dbfull()->TEST_CompactRange(2, NULL, NULL); - } - env_->non_writable_.Release_Store(NULL); - - // Wait for compaction to finish - DelayMilliseconds(1000); - - ASSERT_GE(env_->sleep_counter_.Read(), 5); - ASSERT_LT(env_->sleep_counter_.Read(), 10); - ASSERT_GE(env_->sleep_time_counter_.Read(), 10e6); } TEST(DBTest, NonWritableFileSystem) { @@ -1591,6 +1562,37 @@ TEST(DBTest, NonWritableFileSystem) { env_->non_writable_.Release_Store(NULL); } +TEST(DBTest, WriteSyncError) { + // Check that log sync errors cause the DB to disallow future writes. + + // (a) Cause log sync calls to fail + Options options = CurrentOptions(); + options.env = env_; + Reopen(&options); + env_->data_sync_error_.Release_Store(env_); + + // (b) Normal write should succeed + WriteOptions w; + ASSERT_OK(db_->Put(w, "k1", "v1")); + ASSERT_EQ("v1", Get("k1")); + + // (c) Do a sync write; should fail + w.sync = true; + ASSERT_TRUE(!db_->Put(w, "k2", "v2").ok()); + ASSERT_EQ("v1", Get("k1")); + ASSERT_EQ("NOT_FOUND", Get("k2")); + + // (d) make sync behave normally + env_->data_sync_error_.Release_Store(NULL); + + // (e) Do a non-sync write; should fail + w.sync = false; + ASSERT_TRUE(!db_->Put(w, "k3", "v3").ok()); + ASSERT_EQ("v1", Get("k1")); + ASSERT_EQ("NOT_FOUND", Get("k2")); + ASSERT_EQ("NOT_FOUND", Get("k3")); +} + TEST(DBTest, ManifestWriteError) { // Test for the following problem: // (a) Compaction produces file F @@ -1697,7 +1699,7 @@ TEST(DBTest, BloomFilter) { dbfull()->TEST_CompactMemTable(); // Prevent auto compactions triggered by seeks - env_->delay_sstable_sync_.Release_Store(env_); + env_->delay_data_sync_.Release_Store(env_); // Lookup present keys. Should rarely read from small sstable. env_->random_read_counter_.Reset(); @@ -1718,7 +1720,7 @@ TEST(DBTest, BloomFilter) { fprintf(stderr, "%d missing => %d reads\n", N, reads); ASSERT_LE(reads, 3*N/100); - env_->delay_sstable_sync_.Release_Store(NULL); + env_->delay_data_sync_.Release_Store(NULL); Close(); delete options.block_cache; delete options.filter_policy; @@ -1778,7 +1780,7 @@ static void MTThreadBody(void* arg) { ASSERT_EQ(k, key); ASSERT_GE(w, 0); ASSERT_LT(w, kNumThreads); - ASSERT_LE(c, reinterpret_cast( + ASSERT_LE(static_cast(c), reinterpret_cast( t->state->counter[w].Acquire_Load())); } } diff --git a/deps/leveldb/leveldb-1.14.0/db/dbformat.cc b/deps/leveldb/leveldb-1.15.0/db/dbformat.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/dbformat.cc rename to deps/leveldb/leveldb-1.15.0/db/dbformat.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/dbformat.h b/deps/leveldb/leveldb-1.15.0/db/dbformat.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/dbformat.h rename to deps/leveldb/leveldb-1.15.0/db/dbformat.h diff --git a/deps/leveldb/leveldb-1.14.0/db/dbformat_test.cc b/deps/leveldb/leveldb-1.15.0/db/dbformat_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/dbformat_test.cc rename to deps/leveldb/leveldb-1.15.0/db/dbformat_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/filename.cc b/deps/leveldb/leveldb-1.15.0/db/filename.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/filename.cc rename to deps/leveldb/leveldb-1.15.0/db/filename.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/filename.h b/deps/leveldb/leveldb-1.15.0/db/filename.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/filename.h rename to deps/leveldb/leveldb-1.15.0/db/filename.h diff --git a/deps/leveldb/leveldb-1.14.0/db/filename_test.cc b/deps/leveldb/leveldb-1.15.0/db/filename_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/filename_test.cc rename to deps/leveldb/leveldb-1.15.0/db/filename_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/leveldb_main.cc b/deps/leveldb/leveldb-1.15.0/db/leveldb_main.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/leveldb_main.cc rename to deps/leveldb/leveldb-1.15.0/db/leveldb_main.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/log_format.h b/deps/leveldb/leveldb-1.15.0/db/log_format.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/log_format.h rename to deps/leveldb/leveldb-1.15.0/db/log_format.h diff --git a/deps/leveldb/leveldb-1.14.0/db/log_reader.cc b/deps/leveldb/leveldb-1.15.0/db/log_reader.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/log_reader.cc rename to deps/leveldb/leveldb-1.15.0/db/log_reader.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/log_reader.h b/deps/leveldb/leveldb-1.15.0/db/log_reader.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/log_reader.h rename to deps/leveldb/leveldb-1.15.0/db/log_reader.h diff --git a/deps/leveldb/leveldb-1.14.0/db/log_test.cc b/deps/leveldb/leveldb-1.15.0/db/log_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/log_test.cc rename to deps/leveldb/leveldb-1.15.0/db/log_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/log_writer.cc b/deps/leveldb/leveldb-1.15.0/db/log_writer.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/log_writer.cc rename to deps/leveldb/leveldb-1.15.0/db/log_writer.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/log_writer.h b/deps/leveldb/leveldb-1.15.0/db/log_writer.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/log_writer.h rename to deps/leveldb/leveldb-1.15.0/db/log_writer.h diff --git a/deps/leveldb/leveldb-1.14.0/db/memtable.cc b/deps/leveldb/leveldb-1.15.0/db/memtable.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/memtable.cc rename to deps/leveldb/leveldb-1.15.0/db/memtable.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/memtable.h b/deps/leveldb/leveldb-1.15.0/db/memtable.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/memtable.h rename to deps/leveldb/leveldb-1.15.0/db/memtable.h diff --git a/deps/leveldb/leveldb-1.14.0/db/repair.cc b/deps/leveldb/leveldb-1.15.0/db/repair.cc similarity index 75% rename from deps/leveldb/leveldb-1.14.0/db/repair.cc rename to deps/leveldb/leveldb-1.15.0/db/repair.cc index dc93fb87..96c9b37a 100644 --- a/deps/leveldb/leveldb-1.14.0/db/repair.cc +++ b/deps/leveldb/leveldb-1.15.0/db/repair.cc @@ -244,68 +244,133 @@ class Repairer { void ExtractMetaData() { std::vector kept; for (size_t i = 0; i < table_numbers_.size(); i++) { - TableInfo t; - t.meta.number = table_numbers_[i]; - Status status = ScanTable(&t); - if (!status.ok()) { - std::string fname = TableFileName(dbname_, table_numbers_[i]); - Log(options_.info_log, "Table #%llu: ignoring %s", - (unsigned long long) table_numbers_[i], - status.ToString().c_str()); - ArchiveFile(fname); - } else { - tables_.push_back(t); - } + ScanTable(table_numbers_[i]); } } - Status ScanTable(TableInfo* t) { - std::string fname = TableFileName(dbname_, t->meta.number); - int counter = 0; - Status status = env_->GetFileSize(fname, &t->meta.file_size); + Iterator* NewTableIterator(const FileMetaData& meta) { + // Same as compaction iterators: if paranoid_checks are on, turn + // on checksum verification. + ReadOptions r; + r.verify_checksums = options_.paranoid_checks; + return table_cache_->NewIterator(r, meta.number, meta.file_size); + } + + void ScanTable(uint64_t number) { + TableInfo t; + t.meta.number = number; + std::string fname = TableFileName(dbname_, number); + Status status = env_->GetFileSize(fname, &t.meta.file_size); if (!status.ok()) { - fname = SSTTableFileName(dbname_, t->meta.number); - Status s2 = env_->GetFileSize(fname, &t->meta.file_size); - if (s2.ok()) + // Try alternate file name. + fname = SSTTableFileName(dbname_, number); + Status s2 = env_->GetFileSize(fname, &t.meta.file_size); + if (s2.ok()) { status = Status::OK(); + } + } + if (!status.ok()) { + ArchiveFile(TableFileName(dbname_, number)); + ArchiveFile(SSTTableFileName(dbname_, number)); + Log(options_.info_log, "Table #%llu: dropped: %s", + (unsigned long long) t.meta.number, + status.ToString().c_str()); + return; } - if (status.ok()) { - Iterator* iter = table_cache_->NewIterator( - ReadOptions(), t->meta.number, t->meta.file_size); - bool empty = true; - ParsedInternalKey parsed; - t->max_sequence = 0; - for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { - Slice key = iter->key(); - if (!ParseInternalKey(key, &parsed)) { - Log(options_.info_log, "Table #%llu: unparsable key %s", - (unsigned long long) t->meta.number, - EscapeString(key).c_str()); - continue; - } - counter++; - if (empty) { - empty = false; - t->meta.smallest.DecodeFrom(key); - } - t->meta.largest.DecodeFrom(key); - if (parsed.sequence > t->max_sequence) { - t->max_sequence = parsed.sequence; - } + // Extract metadata by scanning through table. + int counter = 0; + Iterator* iter = NewTableIterator(t.meta); + bool empty = true; + ParsedInternalKey parsed; + t.max_sequence = 0; + for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { + Slice key = iter->key(); + if (!ParseInternalKey(key, &parsed)) { + Log(options_.info_log, "Table #%llu: unparsable key %s", + (unsigned long long) t.meta.number, + EscapeString(key).c_str()); + continue; + } + + counter++; + if (empty) { + empty = false; + t.meta.smallest.DecodeFrom(key); } - if (!iter->status().ok()) { - status = iter->status(); + t.meta.largest.DecodeFrom(key); + if (parsed.sequence > t.max_sequence) { + t.max_sequence = parsed.sequence; } - delete iter; } - // If there was trouble opening an .sst file this will report that the .ldb - // file was not found, which is kind of lame but shouldn't happen often. + if (!iter->status().ok()) { + status = iter->status(); + } + delete iter; Log(options_.info_log, "Table #%llu: %d entries %s", - (unsigned long long) t->meta.number, + (unsigned long long) t.meta.number, counter, status.ToString().c_str()); - return status; + + if (status.ok()) { + tables_.push_back(t); + } else { + RepairTable(fname, t); // RepairTable archives input file. + } + } + + void RepairTable(const std::string& src, TableInfo t) { + // We will copy src contents to a new table and then rename the + // new table over the source. + + // Create builder. + std::string copy = TableFileName(dbname_, next_file_number_++); + WritableFile* file; + Status s = env_->NewWritableFile(copy, &file); + if (!s.ok()) { + return; + } + TableBuilder* builder = new TableBuilder(options_, file); + + // Copy data. + Iterator* iter = NewTableIterator(t.meta); + int counter = 0; + for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { + builder->Add(iter->key(), iter->value()); + counter++; + } + delete iter; + + ArchiveFile(src); + if (counter == 0) { + builder->Abandon(); // Nothing to save + } else { + s = builder->Finish(); + if (s.ok()) { + t.meta.file_size = builder->FileSize(); + } + } + delete builder; + builder = NULL; + + if (s.ok()) { + s = file->Close(); + } + delete file; + file = NULL; + + if (counter > 0 && s.ok()) { + std::string orig = TableFileName(dbname_, t.meta.number); + s = env_->RenameFile(copy, orig); + if (s.ok()) { + Log(options_.info_log, "Table #%llu: %d entries repaired", + (unsigned long long) t.meta.number, counter); + tables_.push_back(t); + } + } + if (!s.ok()) { + env_->DeleteFile(copy); + } } Status WriteDescriptor() { diff --git a/deps/leveldb/leveldb-1.14.0/db/skiplist.h b/deps/leveldb/leveldb-1.15.0/db/skiplist.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/skiplist.h rename to deps/leveldb/leveldb-1.15.0/db/skiplist.h diff --git a/deps/leveldb/leveldb-1.14.0/db/skiplist_test.cc b/deps/leveldb/leveldb-1.15.0/db/skiplist_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/skiplist_test.cc rename to deps/leveldb/leveldb-1.15.0/db/skiplist_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/snapshot.h b/deps/leveldb/leveldb-1.15.0/db/snapshot.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/snapshot.h rename to deps/leveldb/leveldb-1.15.0/db/snapshot.h diff --git a/deps/leveldb/leveldb-1.14.0/db/table_cache.cc b/deps/leveldb/leveldb-1.15.0/db/table_cache.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/table_cache.cc rename to deps/leveldb/leveldb-1.15.0/db/table_cache.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/table_cache.h b/deps/leveldb/leveldb-1.15.0/db/table_cache.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/table_cache.h rename to deps/leveldb/leveldb-1.15.0/db/table_cache.h diff --git a/deps/leveldb/leveldb-1.14.0/db/version_edit.cc b/deps/leveldb/leveldb-1.15.0/db/version_edit.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/version_edit.cc rename to deps/leveldb/leveldb-1.15.0/db/version_edit.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/version_edit.h b/deps/leveldb/leveldb-1.15.0/db/version_edit.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/version_edit.h rename to deps/leveldb/leveldb-1.15.0/db/version_edit.h diff --git a/deps/leveldb/leveldb-1.14.0/db/version_edit_test.cc b/deps/leveldb/leveldb-1.15.0/db/version_edit_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/version_edit_test.cc rename to deps/leveldb/leveldb-1.15.0/db/version_edit_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/version_set.cc b/deps/leveldb/leveldb-1.15.0/db/version_set.cc similarity index 97% rename from deps/leveldb/leveldb-1.14.0/db/version_set.cc rename to deps/leveldb/leveldb-1.15.0/db/version_set.cc index 66d73be7..517edd3b 100644 --- a/deps/leveldb/leveldb-1.14.0/db/version_set.cc +++ b/deps/leveldb/leveldb-1.15.0/db/version_set.cc @@ -876,12 +876,6 @@ Status VersionSet::LogAndApply(VersionEdit* edit, port::Mutex* mu) { } if (!s.ok()) { Log(options_->info_log, "MANIFEST write: %s\n", s.ToString().c_str()); - if (ManifestContains(record)) { - Log(options_->info_log, - "MANIFEST contains log record despite error; advancing to new " - "version to prevent mismatch between in-memory and logged state"); - s = Status::OK(); - } } } @@ -889,8 +883,6 @@ Status VersionSet::LogAndApply(VersionEdit* edit, port::Mutex* mu) { // new CURRENT file that points to it. if (s.ok() && !new_manifest_file.empty()) { s = SetCurrentFile(env_, dbname_, manifest_file_number_); - // No need to double-check MANIFEST in case of error since it - // will be discarded below. } mu->Lock(); @@ -1124,31 +1116,6 @@ const char* VersionSet::LevelSummary(LevelSummaryStorage* scratch) const { return scratch->buffer; } -// Return true iff the manifest contains the specified record. -bool VersionSet::ManifestContains(const std::string& record) const { - std::string fname = DescriptorFileName(dbname_, manifest_file_number_); - Log(options_->info_log, "ManifestContains: checking %s\n", fname.c_str()); - SequentialFile* file = NULL; - Status s = env_->NewSequentialFile(fname, &file); - if (!s.ok()) { - Log(options_->info_log, "ManifestContains: %s\n", s.ToString().c_str()); - return false; - } - log::Reader reader(file, NULL, true/*checksum*/, 0); - Slice r; - std::string scratch; - bool result = false; - while (reader.ReadRecord(&r, &scratch)) { - if (r == Slice(record)) { - result = true; - break; - } - } - delete file; - Log(options_->info_log, "ManifestContains: result = %d\n", result ? 1 : 0); - return result; -} - uint64_t VersionSet::ApproximateOffsetOf(Version* v, const InternalKey& ikey) { uint64_t result = 0; for (int level = 0; level < config::kNumLevels; level++) { diff --git a/deps/leveldb/leveldb-1.14.0/db/version_set.h b/deps/leveldb/leveldb-1.15.0/db/version_set.h similarity index 99% rename from deps/leveldb/leveldb-1.14.0/db/version_set.h rename to deps/leveldb/leveldb-1.15.0/db/version_set.h index 20de0e26..8dc14b8e 100644 --- a/deps/leveldb/leveldb-1.14.0/db/version_set.h +++ b/deps/leveldb/leveldb-1.15.0/db/version_set.h @@ -292,8 +292,6 @@ class VersionSet { void AppendVersion(Version* v); - bool ManifestContains(const std::string& record) const; - Env* const env_; const std::string dbname_; const Options* const options_; diff --git a/deps/leveldb/leveldb-1.14.0/db/version_set_test.cc b/deps/leveldb/leveldb-1.15.0/db/version_set_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/version_set_test.cc rename to deps/leveldb/leveldb-1.15.0/db/version_set_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/write_batch.cc b/deps/leveldb/leveldb-1.15.0/db/write_batch.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/write_batch.cc rename to deps/leveldb/leveldb-1.15.0/db/write_batch.cc diff --git a/deps/leveldb/leveldb-1.14.0/db/write_batch_internal.h b/deps/leveldb/leveldb-1.15.0/db/write_batch_internal.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/write_batch_internal.h rename to deps/leveldb/leveldb-1.15.0/db/write_batch_internal.h diff --git a/deps/leveldb/leveldb-1.14.0/db/write_batch_test.cc b/deps/leveldb/leveldb-1.15.0/db/write_batch_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/db/write_batch_test.cc rename to deps/leveldb/leveldb-1.15.0/db/write_batch_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/doc/bench/db_bench_sqlite3.cc b/deps/leveldb/leveldb-1.15.0/doc/bench/db_bench_sqlite3.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/bench/db_bench_sqlite3.cc rename to deps/leveldb/leveldb-1.15.0/doc/bench/db_bench_sqlite3.cc diff --git a/deps/leveldb/leveldb-1.14.0/doc/bench/db_bench_tree_db.cc b/deps/leveldb/leveldb-1.15.0/doc/bench/db_bench_tree_db.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/bench/db_bench_tree_db.cc rename to deps/leveldb/leveldb-1.15.0/doc/bench/db_bench_tree_db.cc diff --git a/deps/leveldb/leveldb-1.14.0/doc/benchmark.html b/deps/leveldb/leveldb-1.15.0/doc/benchmark.html similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/benchmark.html rename to deps/leveldb/leveldb-1.15.0/doc/benchmark.html diff --git a/deps/leveldb/leveldb-1.14.0/doc/doc.css b/deps/leveldb/leveldb-1.15.0/doc/doc.css similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/doc.css rename to deps/leveldb/leveldb-1.15.0/doc/doc.css diff --git a/deps/leveldb/leveldb-1.14.0/doc/impl.html b/deps/leveldb/leveldb-1.15.0/doc/impl.html similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/impl.html rename to deps/leveldb/leveldb-1.15.0/doc/impl.html diff --git a/deps/leveldb/leveldb-1.14.0/doc/index.html b/deps/leveldb/leveldb-1.15.0/doc/index.html similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/index.html rename to deps/leveldb/leveldb-1.15.0/doc/index.html diff --git a/deps/leveldb/leveldb-1.14.0/doc/log_format.txt b/deps/leveldb/leveldb-1.15.0/doc/log_format.txt similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/log_format.txt rename to deps/leveldb/leveldb-1.15.0/doc/log_format.txt diff --git a/deps/leveldb/leveldb-1.14.0/doc/table_format.txt b/deps/leveldb/leveldb-1.15.0/doc/table_format.txt similarity index 100% rename from deps/leveldb/leveldb-1.14.0/doc/table_format.txt rename to deps/leveldb/leveldb-1.15.0/doc/table_format.txt diff --git a/deps/leveldb/leveldb-1.14.0/helpers/memenv/memenv.cc b/deps/leveldb/leveldb-1.15.0/helpers/memenv/memenv.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/helpers/memenv/memenv.cc rename to deps/leveldb/leveldb-1.15.0/helpers/memenv/memenv.cc diff --git a/deps/leveldb/leveldb-1.14.0/helpers/memenv/memenv.h b/deps/leveldb/leveldb-1.15.0/helpers/memenv/memenv.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/helpers/memenv/memenv.h rename to deps/leveldb/leveldb-1.15.0/helpers/memenv/memenv.h diff --git a/deps/leveldb/leveldb-1.14.0/helpers/memenv/memenv_test.cc b/deps/leveldb/leveldb-1.15.0/helpers/memenv/memenv_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/helpers/memenv/memenv_test.cc rename to deps/leveldb/leveldb-1.15.0/helpers/memenv/memenv_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/c.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/c.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/c.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/c.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/cache.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/cache.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/cache.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/cache.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/comparator.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/comparator.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/comparator.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/comparator.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/db.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/db.h similarity index 99% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/db.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/db.h index 259a81f4..5ffb29d5 100644 --- a/deps/leveldb/leveldb-1.14.0/include/leveldb/db.h +++ b/deps/leveldb/leveldb-1.15.0/include/leveldb/db.h @@ -14,7 +14,7 @@ namespace leveldb { // Update Makefile if you change these static const int kMajorVersion = 1; -static const int kMinorVersion = 14; +static const int kMinorVersion = 15; struct Options; struct ReadOptions; diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/env.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/env.h similarity index 99% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/env.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/env.h index fa32289f..b2072d02 100644 --- a/deps/leveldb/leveldb-1.14.0/include/leveldb/env.h +++ b/deps/leveldb/leveldb-1.15.0/include/leveldb/env.h @@ -13,9 +13,9 @@ #ifndef STORAGE_LEVELDB_INCLUDE_ENV_H_ #define STORAGE_LEVELDB_INCLUDE_ENV_H_ -#include #include #include +#include #include #include "leveldb/status.h" diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/filter_policy.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/filter_policy.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/filter_policy.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/filter_policy.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/iterator.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/iterator.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/iterator.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/iterator.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/options.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/options.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/options.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/options.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/slice.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/slice.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/slice.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/slice.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/status.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/status.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/status.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/status.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/table.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/table.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/table.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/table.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/table_builder.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/table_builder.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/table_builder.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/table_builder.h diff --git a/deps/leveldb/leveldb-1.14.0/include/leveldb/write_batch.h b/deps/leveldb/leveldb-1.15.0/include/leveldb/write_batch.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/include/leveldb/write_batch.h rename to deps/leveldb/leveldb-1.15.0/include/leveldb/write_batch.h diff --git a/deps/leveldb/leveldb-1.14.0/issues/issue178_test.cc b/deps/leveldb/leveldb-1.15.0/issues/issue178_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/issues/issue178_test.cc rename to deps/leveldb/leveldb-1.15.0/issues/issue178_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/issues/issue200_test.cc b/deps/leveldb/leveldb-1.15.0/issues/issue200_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/issues/issue200_test.cc rename to deps/leveldb/leveldb-1.15.0/issues/issue200_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/port/README b/deps/leveldb/leveldb-1.15.0/port/README similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/README rename to deps/leveldb/leveldb-1.15.0/port/README diff --git a/deps/leveldb/leveldb-1.14.0/port/atomic_pointer.h b/deps/leveldb/leveldb-1.15.0/port/atomic_pointer.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/atomic_pointer.h rename to deps/leveldb/leveldb-1.15.0/port/atomic_pointer.h index e17bf435..a9866b23 100644 --- a/deps/leveldb/leveldb-1.14.0/port/atomic_pointer.h +++ b/deps/leveldb/leveldb-1.15.0/port/atomic_pointer.h @@ -50,6 +50,13 @@ namespace port { // http://msdn.microsoft.com/en-us/library/ms684208(v=vs.85).aspx #define LEVELDB_HAVE_MEMORY_BARRIER +// Mac OS +#elif defined(OS_MACOSX) +inline void MemoryBarrier() { + OSMemoryBarrier(); +} +#define LEVELDB_HAVE_MEMORY_BARRIER + // Gcc on x86 #elif defined(ARCH_CPU_X86_FAMILY) && defined(__GNUC__) inline void MemoryBarrier() { @@ -68,13 +75,6 @@ inline void MemoryBarrier() { } #define LEVELDB_HAVE_MEMORY_BARRIER -// Mac OS -#elif defined(OS_MACOSX) -inline void MemoryBarrier() { - OSMemoryBarrier(); -} -#define LEVELDB_HAVE_MEMORY_BARRIER - // ARM Linux #elif defined(ARCH_CPU_ARM_FAMILY) && defined(__linux__) typedef void (*LinuxKernelMemoryBarrierFunc)(void); diff --git a/deps/leveldb/leveldb-1.14.0/port/port.h b/deps/leveldb/leveldb-1.15.0/port/port.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/port.h rename to deps/leveldb/leveldb-1.15.0/port/port.h diff --git a/deps/leveldb/leveldb-1.14.0/port/port_example.h b/deps/leveldb/leveldb-1.15.0/port/port_example.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/port_example.h rename to deps/leveldb/leveldb-1.15.0/port/port_example.h diff --git a/deps/leveldb/leveldb-1.14.0/port/port_posix.cc b/deps/leveldb/leveldb-1.15.0/port/port_posix.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/port_posix.cc rename to deps/leveldb/leveldb-1.15.0/port/port_posix.cc diff --git a/deps/leveldb/leveldb-1.14.0/port/port_posix.h b/deps/leveldb/leveldb-1.15.0/port/port_posix.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/port_posix.h rename to deps/leveldb/leveldb-1.15.0/port/port_posix.h diff --git a/deps/leveldb/leveldb-1.14.0/port/thread_annotations.h b/deps/leveldb/leveldb-1.15.0/port/thread_annotations.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/thread_annotations.h rename to deps/leveldb/leveldb-1.15.0/port/thread_annotations.h diff --git a/deps/leveldb/leveldb-1.14.0/port/win/stdint.h b/deps/leveldb/leveldb-1.15.0/port/win/stdint.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/port/win/stdint.h rename to deps/leveldb/leveldb-1.15.0/port/win/stdint.h diff --git a/deps/leveldb/leveldb-1.14.0/table/block.cc b/deps/leveldb/leveldb-1.15.0/table/block.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/block.cc rename to deps/leveldb/leveldb-1.15.0/table/block.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/block.h b/deps/leveldb/leveldb-1.15.0/table/block.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/block.h rename to deps/leveldb/leveldb-1.15.0/table/block.h diff --git a/deps/leveldb/leveldb-1.14.0/table/block_builder.cc b/deps/leveldb/leveldb-1.15.0/table/block_builder.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/block_builder.cc rename to deps/leveldb/leveldb-1.15.0/table/block_builder.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/block_builder.h b/deps/leveldb/leveldb-1.15.0/table/block_builder.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/block_builder.h rename to deps/leveldb/leveldb-1.15.0/table/block_builder.h diff --git a/deps/leveldb/leveldb-1.14.0/table/filter_block.cc b/deps/leveldb/leveldb-1.15.0/table/filter_block.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/filter_block.cc rename to deps/leveldb/leveldb-1.15.0/table/filter_block.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/filter_block.h b/deps/leveldb/leveldb-1.15.0/table/filter_block.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/filter_block.h rename to deps/leveldb/leveldb-1.15.0/table/filter_block.h diff --git a/deps/leveldb/leveldb-1.14.0/table/filter_block_test.cc b/deps/leveldb/leveldb-1.15.0/table/filter_block_test.cc similarity index 98% rename from deps/leveldb/leveldb-1.14.0/table/filter_block_test.cc rename to deps/leveldb/leveldb-1.15.0/table/filter_block_test.cc index 3a2a07cf..8c4a4741 100644 --- a/deps/leveldb/leveldb-1.14.0/table/filter_block_test.cc +++ b/deps/leveldb/leveldb-1.15.0/table/filter_block_test.cc @@ -29,7 +29,7 @@ class TestHashFilter : public FilterPolicy { virtual bool KeyMayMatch(const Slice& key, const Slice& filter) const { uint32_t h = Hash(key.data(), key.size(), 1); - for (int i = 0; i + 4 <= filter.size(); i += 4) { + for (size_t i = 0; i + 4 <= filter.size(); i += 4) { if (h == DecodeFixed32(filter.data() + i)) { return true; } diff --git a/deps/leveldb/leveldb-1.14.0/table/format.cc b/deps/leveldb/leveldb-1.15.0/table/format.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/format.cc rename to deps/leveldb/leveldb-1.15.0/table/format.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/format.h b/deps/leveldb/leveldb-1.15.0/table/format.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/format.h rename to deps/leveldb/leveldb-1.15.0/table/format.h diff --git a/deps/leveldb/leveldb-1.14.0/table/iterator.cc b/deps/leveldb/leveldb-1.15.0/table/iterator.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/iterator.cc rename to deps/leveldb/leveldb-1.15.0/table/iterator.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/iterator_wrapper.h b/deps/leveldb/leveldb-1.15.0/table/iterator_wrapper.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/iterator_wrapper.h rename to deps/leveldb/leveldb-1.15.0/table/iterator_wrapper.h diff --git a/deps/leveldb/leveldb-1.14.0/table/merger.cc b/deps/leveldb/leveldb-1.15.0/table/merger.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/merger.cc rename to deps/leveldb/leveldb-1.15.0/table/merger.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/merger.h b/deps/leveldb/leveldb-1.15.0/table/merger.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/merger.h rename to deps/leveldb/leveldb-1.15.0/table/merger.h diff --git a/deps/leveldb/leveldb-1.14.0/table/table.cc b/deps/leveldb/leveldb-1.15.0/table/table.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/table.cc rename to deps/leveldb/leveldb-1.15.0/table/table.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/table_builder.cc b/deps/leveldb/leveldb-1.15.0/table/table_builder.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/table_builder.cc rename to deps/leveldb/leveldb-1.15.0/table/table_builder.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/table_test.cc b/deps/leveldb/leveldb-1.15.0/table/table_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/table_test.cc rename to deps/leveldb/leveldb-1.15.0/table/table_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/two_level_iterator.cc b/deps/leveldb/leveldb-1.15.0/table/two_level_iterator.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/two_level_iterator.cc rename to deps/leveldb/leveldb-1.15.0/table/two_level_iterator.cc diff --git a/deps/leveldb/leveldb-1.14.0/table/two_level_iterator.h b/deps/leveldb/leveldb-1.15.0/table/two_level_iterator.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/table/two_level_iterator.h rename to deps/leveldb/leveldb-1.15.0/table/two_level_iterator.h diff --git a/deps/leveldb/leveldb-1.14.0/util/arena.cc b/deps/leveldb/leveldb-1.15.0/util/arena.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/arena.cc rename to deps/leveldb/leveldb-1.15.0/util/arena.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/arena.h b/deps/leveldb/leveldb-1.15.0/util/arena.h similarity index 98% rename from deps/leveldb/leveldb-1.14.0/util/arena.h rename to deps/leveldb/leveldb-1.15.0/util/arena.h index 8f7dde22..73bbf1cb 100644 --- a/deps/leveldb/leveldb-1.14.0/util/arena.h +++ b/deps/leveldb/leveldb-1.15.0/util/arena.h @@ -5,9 +5,9 @@ #ifndef STORAGE_LEVELDB_UTIL_ARENA_H_ #define STORAGE_LEVELDB_UTIL_ARENA_H_ -#include #include #include +#include #include namespace leveldb { diff --git a/deps/leveldb/leveldb-1.14.0/util/arena_test.cc b/deps/leveldb/leveldb-1.15.0/util/arena_test.cc similarity index 92% rename from deps/leveldb/leveldb-1.14.0/util/arena_test.cc rename to deps/leveldb/leveldb-1.15.0/util/arena_test.cc index 63d17780..58e870ec 100644 --- a/deps/leveldb/leveldb-1.14.0/util/arena_test.cc +++ b/deps/leveldb/leveldb-1.15.0/util/arena_test.cc @@ -40,7 +40,7 @@ TEST(ArenaTest, Simple) { r = arena.Allocate(s); } - for (int b = 0; b < s; b++) { + for (size_t b = 0; b < s; b++) { // Fill the "i"th allocation with a known bit pattern r[b] = i % 256; } @@ -51,10 +51,10 @@ TEST(ArenaTest, Simple) { ASSERT_LE(arena.MemoryUsage(), bytes * 1.10); } } - for (int i = 0; i < allocated.size(); i++) { + for (size_t i = 0; i < allocated.size(); i++) { size_t num_bytes = allocated[i].first; const char* p = allocated[i].second; - for (int b = 0; b < num_bytes; b++) { + for (size_t b = 0; b < num_bytes; b++) { // Check the "i"th allocation for the known bit pattern ASSERT_EQ(int(p[b]) & 0xff, i % 256); } diff --git a/deps/leveldb/leveldb-1.14.0/util/bloom.cc b/deps/leveldb/leveldb-1.15.0/util/bloom.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/bloom.cc rename to deps/leveldb/leveldb-1.15.0/util/bloom.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/bloom_test.cc b/deps/leveldb/leveldb-1.15.0/util/bloom_test.cc similarity index 97% rename from deps/leveldb/leveldb-1.14.0/util/bloom_test.cc rename to deps/leveldb/leveldb-1.15.0/util/bloom_test.cc index 0bf8e8d6..77fb1b31 100644 --- a/deps/leveldb/leveldb-1.14.0/util/bloom_test.cc +++ b/deps/leveldb/leveldb-1.15.0/util/bloom_test.cc @@ -126,7 +126,8 @@ TEST(BloomTest, VaryingLengths) { } Build(); - ASSERT_LE(FilterSize(), (length * 10 / 8) + 40) << length; + ASSERT_LE(FilterSize(), static_cast((length * 10 / 8) + 40)) + << length; // All added keys must match for (int i = 0; i < length; i++) { diff --git a/deps/leveldb/leveldb-1.14.0/util/cache.cc b/deps/leveldb/leveldb-1.15.0/util/cache.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/cache.cc rename to deps/leveldb/leveldb-1.15.0/util/cache.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/cache_test.cc b/deps/leveldb/leveldb-1.15.0/util/cache_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/cache_test.cc rename to deps/leveldb/leveldb-1.15.0/util/cache_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/coding.cc b/deps/leveldb/leveldb-1.15.0/util/coding.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/coding.cc rename to deps/leveldb/leveldb-1.15.0/util/coding.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/coding.h b/deps/leveldb/leveldb-1.15.0/util/coding.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/coding.h rename to deps/leveldb/leveldb-1.15.0/util/coding.h diff --git a/deps/leveldb/leveldb-1.14.0/util/coding_test.cc b/deps/leveldb/leveldb-1.15.0/util/coding_test.cc similarity index 96% rename from deps/leveldb/leveldb-1.14.0/util/coding_test.cc rename to deps/leveldb/leveldb-1.15.0/util/coding_test.cc index fb5726e3..521541ea 100644 --- a/deps/leveldb/leveldb-1.14.0/util/coding_test.cc +++ b/deps/leveldb/leveldb-1.15.0/util/coding_test.cc @@ -112,13 +112,13 @@ TEST(Coding, Varint64) { } std::string s; - for (int i = 0; i < values.size(); i++) { + for (size_t i = 0; i < values.size(); i++) { PutVarint64(&s, values[i]); } const char* p = s.data(); const char* limit = p + s.size(); - for (int i = 0; i < values.size(); i++) { + for (size_t i = 0; i < values.size(); i++) { ASSERT_TRUE(p < limit); uint64_t actual; const char* start = p; @@ -143,7 +143,7 @@ TEST(Coding, Varint32Truncation) { std::string s; PutVarint32(&s, large_value); uint32_t result; - for (int len = 0; len < s.size() - 1; len++) { + for (size_t len = 0; len < s.size() - 1; len++) { ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + len, &result) == NULL); } ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + s.size(), &result) != NULL); @@ -162,7 +162,7 @@ TEST(Coding, Varint64Truncation) { std::string s; PutVarint64(&s, large_value); uint64_t result; - for (int len = 0; len < s.size() - 1; len++) { + for (size_t len = 0; len < s.size() - 1; len++) { ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + len, &result) == NULL); } ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + s.size(), &result) != NULL); diff --git a/deps/leveldb/leveldb-1.14.0/util/comparator.cc b/deps/leveldb/leveldb-1.15.0/util/comparator.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/comparator.cc rename to deps/leveldb/leveldb-1.15.0/util/comparator.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/crc32c.cc b/deps/leveldb/leveldb-1.15.0/util/crc32c.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/crc32c.cc rename to deps/leveldb/leveldb-1.15.0/util/crc32c.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/crc32c.h b/deps/leveldb/leveldb-1.15.0/util/crc32c.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/crc32c.h rename to deps/leveldb/leveldb-1.15.0/util/crc32c.h diff --git a/deps/leveldb/leveldb-1.14.0/util/crc32c_test.cc b/deps/leveldb/leveldb-1.15.0/util/crc32c_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/crc32c_test.cc rename to deps/leveldb/leveldb-1.15.0/util/crc32c_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/env.cc b/deps/leveldb/leveldb-1.15.0/util/env.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/env.cc rename to deps/leveldb/leveldb-1.15.0/util/env.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/env_posix.cc b/deps/leveldb/leveldb-1.15.0/util/env_posix.cc similarity index 76% rename from deps/leveldb/leveldb-1.14.0/util/env_posix.cc rename to deps/leveldb/leveldb-1.15.0/util/env_posix.cc index 4b3ce8bf..e1cbebd1 100644 --- a/deps/leveldb/leveldb-1.14.0/util/env_posix.cc +++ b/deps/leveldb/leveldb-1.15.0/util/env_posix.cc @@ -175,152 +175,43 @@ class PosixMmapReadableFile: public RandomAccessFile { } }; -// We preallocate up to an extra megabyte and use memcpy to append new -// data to the file. This is safe since we either properly close the -// file before reading from it, or for log files, the reading code -// knows enough to skip zero suffixes. -class PosixMmapFile : public WritableFile { +class PosixWritableFile : public WritableFile { private: std::string filename_; - int fd_; - size_t page_size_; - size_t map_size_; // How much extra memory to map at a time - char* base_; // The mapped region - char* limit_; // Limit of the mapped region - char* dst_; // Where to write next (in range [base_,limit_]) - char* last_sync_; // Where have we synced up to - uint64_t file_offset_; // Offset of base_ in file - - // Have we done an munmap of unsynced data? - bool pending_sync_; - - // Roundup x to a multiple of y - static size_t Roundup(size_t x, size_t y) { - return ((x + y - 1) / y) * y; - } - - size_t TruncateToPageBoundary(size_t s) { - s -= (s & (page_size_ - 1)); - assert((s % page_size_) == 0); - return s; - } - - bool UnmapCurrentRegion() { - bool result = true; - if (base_ != NULL) { -#if defined(OS_MACOSX) - if (msync(base_, limit_ - base_, MS_SYNC) != 0) { - result = false; - } -#endif - if (last_sync_ < limit_) { - // Defer syncing this data until next Sync() call, if any - pending_sync_ = true; - } - if (munmap(base_, limit_ - base_) != 0) { - result = false; - } - file_offset_ += limit_ - base_; - base_ = NULL; - limit_ = NULL; - last_sync_ = NULL; - dst_ = NULL; - - // Increase the amount we map the next time, but capped at 1MB - if (map_size_ < (1<<20)) { - map_size_ *= 2; - } - } - return result; - } - - bool MapNewRegion() { - assert(base_ == NULL); - if (ftruncate(fd_, file_offset_ + map_size_) < 0) { - return false; - } - void* ptr = mmap(NULL, map_size_, PROT_READ | PROT_WRITE, MAP_SHARED, - fd_, file_offset_); - if (ptr == MAP_FAILED) { - return false; - } - base_ = reinterpret_cast(ptr); - limit_ = base_ + map_size_; - dst_ = base_; - last_sync_ = base_; - return true; - } + FILE* file_; public: - PosixMmapFile(const std::string& fname, int fd, size_t page_size) - : filename_(fname), - fd_(fd), - page_size_(page_size), - map_size_(Roundup(65536, page_size)), - base_(NULL), - limit_(NULL), - dst_(NULL), - last_sync_(NULL), - file_offset_(0), - pending_sync_(false) { - assert((page_size & (page_size - 1)) == 0); - } - - - ~PosixMmapFile() { - if (fd_ >= 0) { - PosixMmapFile::Close(); + PosixWritableFile(const std::string& fname, FILE* f) + : filename_(fname), file_(f) { } + + ~PosixWritableFile() { + if (file_ != NULL) { + // Ignoring any potential errors + fclose(file_); } } virtual Status Append(const Slice& data) { - const char* src = data.data(); - size_t left = data.size(); - while (left > 0) { - assert(base_ <= dst_); - assert(dst_ <= limit_); - size_t avail = limit_ - dst_; - if (avail == 0) { - if (!UnmapCurrentRegion() || - !MapNewRegion()) { - return IOError(filename_, errno); - } - } - - size_t n = (left <= avail) ? left : avail; - memcpy(dst_, src, n); - dst_ += n; - src += n; - left -= n; + size_t r = fwrite_unlocked(data.data(), 1, data.size(), file_); + if (r != data.size()) { + return IOError(filename_, errno); } return Status::OK(); } virtual Status Close() { - Status s; - size_t unused = limit_ - dst_; - if (!UnmapCurrentRegion()) { - s = IOError(filename_, errno); - } else if (unused > 0) { - // Trim the extra space at the end of the file - if (ftruncate(fd_, file_offset_ - unused) < 0) { - s = IOError(filename_, errno); - } - } - - if (close(fd_) < 0) { - if (s.ok()) { - s = IOError(filename_, errno); - } + Status result; + if (fclose(file_) != 0) { + result = IOError(filename_, errno); } - - fd_ = -1; - base_ = NULL; - limit_ = NULL; - return s; + file_ = NULL; + return result; } virtual Status Flush() { + if (fflush_unlocked(file_) != 0) { + return IOError(filename_, errno); + } return Status::OK(); } @@ -357,26 +248,10 @@ class PosixMmapFile : public WritableFile { if (!s.ok()) { return s; } - - if (pending_sync_) { - // Some unmapped data was not synced - pending_sync_ = false; - if (fdatasync(fd_) < 0) { - s = IOError(filename_, errno); - } + if (fflush_unlocked(file_) != 0 || + fdatasync(fileno(file_)) != 0) { + s = Status::IOError(filename_, strerror(errno)); } - - if (dst_ > last_sync_) { - // Find the beginnings of the pages that contain the first and last - // bytes to be synced. - size_t p1 = TruncateToPageBoundary(last_sync_ - base_); - size_t p2 = TruncateToPageBoundary(dst_ - base_ - 1); - last_sync_ = dst_; - if (msync(base_ + p1, p2 - p1 + page_size_, MS_SYNC) < 0) { - s = IOError(filename_, errno); - } - } - return s; } }; @@ -467,12 +342,12 @@ class PosixEnv : public Env { virtual Status NewWritableFile(const std::string& fname, WritableFile** result) { Status s; - const int fd = open(fname.c_str(), O_CREAT | O_RDWR | O_TRUNC, 0644); - if (fd < 0) { + FILE* f = fopen(fname.c_str(), "w"); + if (f == NULL) { *result = NULL; s = IOError(fname, errno); } else { - *result = new PosixMmapFile(fname, fd, page_size_); + *result = new PosixWritableFile(fname, f); } return s; } @@ -635,7 +510,6 @@ class PosixEnv : public Env { return NULL; } - size_t page_size_; pthread_mutex_t mu_; pthread_cond_t bgsignal_; pthread_t bgthread_; @@ -650,8 +524,7 @@ class PosixEnv : public Env { MmapLimiter mmap_limit_; }; -PosixEnv::PosixEnv() : page_size_(getpagesize()), - started_bgthread_(false) { +PosixEnv::PosixEnv() : started_bgthread_(false) { PthreadCall("mutex_init", pthread_mutex_init(&mu_, NULL)); PthreadCall("cvar_init", pthread_cond_init(&bgsignal_, NULL)); } diff --git a/deps/leveldb/leveldb-1.14.0/util/env_test.cc b/deps/leveldb/leveldb-1.15.0/util/env_test.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/env_test.cc rename to deps/leveldb/leveldb-1.15.0/util/env_test.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/filter_policy.cc b/deps/leveldb/leveldb-1.15.0/util/filter_policy.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/filter_policy.cc rename to deps/leveldb/leveldb-1.15.0/util/filter_policy.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/hash.cc b/deps/leveldb/leveldb-1.15.0/util/hash.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/hash.cc rename to deps/leveldb/leveldb-1.15.0/util/hash.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/hash.h b/deps/leveldb/leveldb-1.15.0/util/hash.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/hash.h rename to deps/leveldb/leveldb-1.15.0/util/hash.h diff --git a/deps/leveldb/leveldb-1.14.0/util/histogram.cc b/deps/leveldb/leveldb-1.15.0/util/histogram.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/histogram.cc rename to deps/leveldb/leveldb-1.15.0/util/histogram.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/histogram.h b/deps/leveldb/leveldb-1.15.0/util/histogram.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/histogram.h rename to deps/leveldb/leveldb-1.15.0/util/histogram.h diff --git a/deps/leveldb/leveldb-1.14.0/util/logging.cc b/deps/leveldb/leveldb-1.15.0/util/logging.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/logging.cc rename to deps/leveldb/leveldb-1.15.0/util/logging.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/logging.h b/deps/leveldb/leveldb-1.15.0/util/logging.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/logging.h rename to deps/leveldb/leveldb-1.15.0/util/logging.h diff --git a/deps/leveldb/leveldb-1.14.0/util/mutexlock.h b/deps/leveldb/leveldb-1.15.0/util/mutexlock.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/mutexlock.h rename to deps/leveldb/leveldb-1.15.0/util/mutexlock.h diff --git a/deps/leveldb/leveldb-1.14.0/util/options.cc b/deps/leveldb/leveldb-1.15.0/util/options.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/options.cc rename to deps/leveldb/leveldb-1.15.0/util/options.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/posix_logger.h b/deps/leveldb/leveldb-1.15.0/util/posix_logger.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/posix_logger.h rename to deps/leveldb/leveldb-1.15.0/util/posix_logger.h diff --git a/deps/leveldb/leveldb-1.14.0/util/random.h b/deps/leveldb/leveldb-1.15.0/util/random.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/random.h rename to deps/leveldb/leveldb-1.15.0/util/random.h diff --git a/deps/leveldb/leveldb-1.14.0/util/status.cc b/deps/leveldb/leveldb-1.15.0/util/status.cc similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/status.cc rename to deps/leveldb/leveldb-1.15.0/util/status.cc diff --git a/deps/leveldb/leveldb-1.14.0/util/testharness.cc b/deps/leveldb/leveldb-1.15.0/util/testharness.cc similarity index 97% rename from deps/leveldb/leveldb-1.14.0/util/testharness.cc rename to deps/leveldb/leveldb-1.15.0/util/testharness.cc index eb1bdd55..402fab34 100644 --- a/deps/leveldb/leveldb-1.14.0/util/testharness.cc +++ b/deps/leveldb/leveldb-1.15.0/util/testharness.cc @@ -38,7 +38,7 @@ int RunAllTests() { int num = 0; if (tests != NULL) { - for (int i = 0; i < tests->size(); i++) { + for (size_t i = 0; i < tests->size(); i++) { const Test& t = (*tests)[i]; if (matcher != NULL) { std::string name = t.base; diff --git a/deps/leveldb/leveldb-1.14.0/util/testharness.h b/deps/leveldb/leveldb-1.15.0/util/testharness.h similarity index 100% rename from deps/leveldb/leveldb-1.14.0/util/testharness.h rename to deps/leveldb/leveldb-1.15.0/util/testharness.h diff --git a/deps/leveldb/leveldb-1.14.0/util/testutil.cc b/deps/leveldb/leveldb-1.15.0/util/testutil.cc similarity index 95% rename from deps/leveldb/leveldb-1.14.0/util/testutil.cc rename to deps/leveldb/leveldb-1.15.0/util/testutil.cc index 538d0951..bee56bf7 100644 --- a/deps/leveldb/leveldb-1.14.0/util/testutil.cc +++ b/deps/leveldb/leveldb-1.15.0/util/testutil.cc @@ -32,7 +32,7 @@ std::string RandomKey(Random* rnd, int len) { extern Slice CompressibleString(Random* rnd, double compressed_fraction, - int len, std::string* dst) { + size_t len, std::string* dst) { int raw = static_cast(len * compressed_fraction); if (raw < 1) raw = 1; std::string raw_data; diff --git a/deps/leveldb/leveldb-1.14.0/util/testutil.h b/deps/leveldb/leveldb-1.15.0/util/testutil.h similarity index 96% rename from deps/leveldb/leveldb-1.14.0/util/testutil.h rename to deps/leveldb/leveldb-1.15.0/util/testutil.h index 824e655b..adad3fc1 100644 --- a/deps/leveldb/leveldb-1.14.0/util/testutil.h +++ b/deps/leveldb/leveldb-1.15.0/util/testutil.h @@ -24,7 +24,7 @@ extern std::string RandomKey(Random* rnd, int len); // "N*compressed_fraction" bytes and return a Slice that references // the generated data. extern Slice CompressibleString(Random* rnd, double compressed_fraction, - int len, std::string* dst); + size_t len, std::string* dst); // A wrapper that allows injection of errors. class ErrorEnv : public EnvWrapper { diff --git a/deps/leveldb/leveldb.gyp b/deps/leveldb/leveldb.gyp index 22f2d53f..48b55162 100644 --- a/deps/leveldb/leveldb.gyp +++ b/deps/leveldb/leveldb.gyp @@ -1,7 +1,7 @@ {'targets': [{ 'target_name': 'leveldb' , 'variables': { - 'ldbversion': '1.14.0' + 'ldbversion': '1.15.0' } , 'type': 'static_library' # Overcomes an issue with the linker and thin .a files on SmartOS From 5846a8f917f51aed64bda55f81613b23e7a0bfe7 Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Sun, 13 Apr 2014 21:55:23 +1000 Subject: [PATCH 2/2] remove -Wno-unused-local-typedefs --- binding.gyp | 1 - 1 file changed, 1 deletion(-) diff --git a/binding.gyp b/binding.gyp index 79e61306..83f6138e 100644 --- a/binding.gyp +++ b/binding.gyp @@ -17,7 +17,6 @@ }] , ['OS == "linux"', { 'cflags': [ - '-Wno-unused-local-typedefs' ] }] ]