summaryrefslogtreecommitdiff
path: root/port
diff options
context:
space:
mode:
authorDavid Grogan <dgrogan@chromium.org>2013-12-10 10:36:31 -0800
committerDavid Grogan <dgrogan@chromium.org>2013-12-10 10:36:31 -0800
commit0cfb990d58ffba9b56df6e9829ddb9d220824066 (patch)
tree3fbb7b8fae37a78ffa9991cb0b57e3dbbb24e373 /port
parent0b9a89f40efdd143fa1426e7d5cd997f67ba6361 (diff)
downloadleveldb-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.h14
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);