- updated to 1.15.0
+ 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 - refreshed 0001-debian-ports.patch + moved OS_MACOSX hunk OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/leveldb?expand=0&rev=7
This commit is contained in:
parent
e730bd6185
commit
e75eb46a6d
@ -4,6 +4,8 @@ Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
|
||||
port/atomic_pointer.h | 136 ++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 126 insertions(+), 10 deletions(-)
|
||||
|
||||
Index: leveldb/port/atomic_pointer.h
|
||||
===================================================================
|
||||
--- leveldb.orig/port/atomic_pointer.h
|
||||
+++ leveldb/port/atomic_pointer.h
|
||||
@@ -38,6 +38,18 @@
|
||||
@ -25,13 +27,24 @@ Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
|
||||
#endif
|
||||
|
||||
namespace leveldb {
|
||||
@@ -50,9 +62,17 @@ namespace port {
|
||||
@@ -50,16 +62,27 @@ namespace port {
|
||||
// http://msdn.microsoft.com/en-us/library/ms684208(v=vs.85).aspx
|
||||
#define LEVELDB_HAVE_MEMORY_BARRIER
|
||||
|
||||
+#define ReadMemoryBarrier MemoryBarrier()
|
||||
+#define WriteMemoryBarrier MemoryBarrier()
|
||||
+
|
||||
// Mac OS
|
||||
#elif defined(OS_MACOSX)
|
||||
-inline void MemoryBarrier() {
|
||||
+inline void ReadMemoryBarrier() {
|
||||
+ OSMemoryBarrier();
|
||||
+}
|
||||
+inline void WriteMemoryBarrier() {
|
||||
OSMemoryBarrier();
|
||||
}
|
||||
#define LEVELDB_HAVE_MEMORY_BARRIER
|
||||
|
||||
// Gcc on x86
|
||||
#elif defined(ARCH_CPU_X86_FAMILY) && defined(__GNUC__)
|
||||
-inline void MemoryBarrier() {
|
||||
@ -44,7 +57,7 @@ Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
|
||||
// See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on
|
||||
// this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering.
|
||||
__asm__ __volatile__("" : : : "memory");
|
||||
@@ -61,7 +81,12 @@ inline void MemoryBarrier() {
|
||||
@@ -68,7 +91,12 @@ inline void MemoryBarrier() {
|
||||
|
||||
// Sun Studio
|
||||
#elif defined(ARCH_CPU_X86_FAMILY) && defined(__SUNPRO_CC)
|
||||
@ -58,18 +71,6 @@ Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
|
||||
// See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on
|
||||
// this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering.
|
||||
asm volatile("" : : : "memory");
|
||||
@@ -70,7 +95,10 @@ inline void MemoryBarrier() {
|
||||
|
||||
// Mac OS
|
||||
#elif defined(OS_MACOSX)
|
||||
-inline void MemoryBarrier() {
|
||||
+inline void ReadMemoryBarrier() {
|
||||
+ OSMemoryBarrier();
|
||||
+}
|
||||
+inline void WriteMemoryBarrier() {
|
||||
OSMemoryBarrier();
|
||||
}
|
||||
#define LEVELDB_HAVE_MEMORY_BARRIER
|
||||
@@ -88,17 +116,99 @@ typedef void (*LinuxKernelMemoryBarrierF
|
||||
// shows that the extra function call cost is completely negligible on
|
||||
// multi-core devices.
|
||||
|
3
leveldb-1.15.0.tar.gz
Normal file
3
leveldb-1.15.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d7c4ec571ef2ee9719f31db06344a1eba495e6abeeac1bc349d0d38a911c6680
|
||||
size 205691
|
@ -1,3 +1,27 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 5 16:14:12 UTC 2014 - ddiss@suse.com
|
||||
|
||||
- updated to 1.15.0
|
||||
+ 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
|
||||
|
||||
- refreshed 0001-debian-ports.patch
|
||||
+ moved OS_MACOSX hunk
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 18 17:49:35 CET 2013 - ro@suse.de
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package leveldb
|
||||
#
|
||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: leveldb
|
||||
Version: 1.14.0
|
||||
Version: 1.15.0
|
||||
Release: 0
|
||||
Summary: A key/value-store
|
||||
License: BSD-3-Clause
|
||||
|
Loading…
Reference in New Issue
Block a user