diff options
author | David Grogan <dgrogan@chromium.org> | 2013-12-10 10:36:31 -0800 |
---|---|---|
committer | David Grogan <dgrogan@chromium.org> | 2013-12-10 10:36:31 -0800 |
commit | 0cfb990d58ffba9b56df6e9829ddb9d220824066 (patch) | |
tree | 3fbb7b8fae37a78ffa9991cb0b57e3dbbb24e373 /port | |
parent | 0b9a89f40efdd143fa1426e7d5cd997f67ba6361 (diff) | |
download | leveldb-0cfb990d58ffba9b56df6e9829ddb9d220824066.tar.gz |
Release LevelDB 1.15v1.15
- switched from mmap based writing to simpler stdio based writing. Has a
minor impact (0.5 microseconds) on microbenchmarks for asynchronous
writes. Synchronous writes speed up from 30ms to 10ms on linux/ext4.
Should be much more reliable on diverse platforms.
- compaction errors now immediately put the database into a read-only
mode (until it is re-opened). As a downside, a disk going out of
space and then space being created will require a re-open to recover
from, whereas previously that would happen automatically. On the
plus side, many corruption possibilities go away.
- force the DB to enter an error-state so that all future writes fail
when a synchronous log write succeeds but the sync fails.
- repair now regenerates sstables that exhibit problems
- fix issue 218 - Use native memory barriers on OSX
- fix issue 212 - QNX build is broken
- fix build on iOS with xcode 5
- make tests compile and pass on windows
Diffstat (limited to 'port')
-rw-r--r-- | port/atomic_pointer.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/port/atomic_pointer.h b/port/atomic_pointer.h index e17bf43..a9866b2 100644 --- a/port/atomic_pointer.h +++ b/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); |