summaryrefslogtreecommitdiff
path: root/plugins/Dbx_kv/src/hamsterdb/README
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Dbx_kv/src/hamsterdb/README')
-rw-r--r--plugins/Dbx_kv/src/hamsterdb/README261
1 files changed, 261 insertions, 0 deletions
diff --git a/plugins/Dbx_kv/src/hamsterdb/README b/plugins/Dbx_kv/src/hamsterdb/README
new file mode 100644
index 0000000000..66fba73f22
--- /dev/null
+++ b/plugins/Dbx_kv/src/hamsterdb/README
@@ -0,0 +1,261 @@
+hamsterdb 2.1.10 Mo 23. Feb 23:07:52 CET 2015
+(C) Christoph Rupp, chris@crupp.de; http://www.hamsterdb.com
+
+This is the README file of hamsterdb.
+
+Contents:
+
+1. About
+
+hamsterdb is a database engine written in C/C++. It is fast, production-proven
+and easy to use.
+
+This release has several bug fixes (see below for a list). Thanks to those who
+reported them and invested lots of time to come up with samples to reproduce
+the bugs.
+
+The flag HAM_RECORD_NUMBER is deprecated. It is replaced with
+HAM_RECORD_NUMBER64 for 64bit record numbers, and HAM_RECORD_NUMBER32 for
+32bit record numbers.
+
+A major change under the hood: dirty pages are now flushed asynchronously.
+Expect performance improvements in this release, and more to come in the
+next releases.
+
+2. Changes
+
+New Features
+* Added Cursor.TryFind to hamsterdb-dotnet
+ (thanks, mjmckp <matthew.j.m.peacock@gmail.com>)
+* The page cache eviction was moved to a background thread
+* When reading records from mmapped storage, a pointer into the storage
+ is returned and the record data is no longer copied
+
+Bugfixes
+* Fixed FreeBSD compilation errors (thanks, Heping Wen)
+* issue #46: fixed segfault in approx. matching (thanks, Joel
+ Jacobson)
+* issue #45: fixed segfault in Journal recovery (thanks, Michael
+ Moellney)
+* issue #44: approx. matching returned the wrong key (thanks, Joel
+ Jacobson)
+* issue #43: fixed segfault when flushing transactions (thanks, Joel
+ Jacobson)
+* Fixed compilation error on debian Wheezy, gcc 4.7.2, 32bit (thanks,
+ Thomas Fähnle)
+* Fixed compilation error on OSX (thanks, Daniel Lemire)
+* issue #42: ham_cursor_find returned wrong key w/ approx. matching and
+ transactions
+* Fixed large file support on linux (thanks, Thomas Fähnle)
+
+Other Changes
+* Default compilation flag is now -O3
+* Added a new parameter HAM_PARAM_POSIX_FADVISE (thanks, Thomas Fähnle)
+* Removed dependency to malloc.h
+* The github wiki is now linked into documentation/wiki
+* The macro HAM_API_REVISION is now deprecated; use HAM_VERSION_* instead
+* Deprecated HAM_RECORD_NUMBER (use HAM_RECORD_NUMBER64 instead);
+ introduced a new flag HAM_RECORD_NUMBER32 for 32bit record numbers
+* Implemented ham_cursor_get_record_size() for remote access
+
+To see a list of all changes, look in the file ChangeLog.
+
+3. Roadmap
+- See https://github.com/cruppstahl/hamsterdb/wiki/Roadmap
+
+4. Features
+
+- PRO: SIMD instructions for lookups
+- PRO: transparent AES encryption
+- PRO: transparent CRC32 verification
+- PRO: transparent compression for journal, keys and records using
+ zlib, snappy, lzf or lzo
+- PRO: compression for uint32 keys
+
+- Very fast sorted B+Tree with variable length keys
+- Basic schema support for POD types (i.e. uint32, uint64, real32 etc)
+- Very fast analytical functions
+- Can run as an in-memory database
+- Multiple databases in one file
+- Record number databases ("auto-increment")
+- Duplicate keys
+- Logging and recovery
+- Unlimited number of parallel Transactions
+- Partial reading/writing of records
+- Network access (remote databases) via TCP/Protocol Buffers
+- Very fast database cursors
+- Configurable page size, cache size, key size etc
+- Runs on Linux, Unices, Microsoft Windows and other architectures
+- Uses memory mapped I/O for fast disk access (but falls back to read/write if
+ mmap is not available)
+- Uses 64bit file pointers and supports huge files (>2 GB)
+- Easy to use and well-documented
+- Open source and released under APL 2.0 license
+- Wrappers for C++, Java, .NET, Erlang, Python, Ada and others
+
+5. Known Issues/Bugs
+
+None.
+
+6. Compiling
+
+6.1 Linux, MacOS and other Unix systems
+
+To compile hamsterdb, run ./configure, make, make install.
+
+Run `./configure --help' for more options (i.e. static/dynamic library,
+build with debugging symbols etc).
+
+6.2 Microsoft Visual Studio 8
+
+A Solution file is provided for Microsoft Visual C++ in the "win32" folder
+for MSVC 2008 and MSVC 2010.
+All libraries can be downloaded precompiled from the hamsterdb webpage.
+
+To download Microsoft Visual Studio Express Edition for free, go to
+http://msdn.microsoft.com/vstudio/express/visualc/default.aspx.
+
+6.3 Dependencies
+
+On Ubuntu, the following packages are required:
+ - libdb-dev (optional)
+ - protobuf-compiler
+ - libprotobuf-dev
+ - libgoogle-perftools-dev
+ - libboost-system-dev
+ - libboost-thread-dev
+ - libboost-dev
+ - (libuv needs to be installed from sources - see
+ https://github.com/joyent/libuv)
+
+For Windows, precompiled dependencies are available here:
+https://github.com/cruppstahl/hamsterdb-alien
+
+7. Testing and Example Code
+
+Make automatically compiles several example programs in the directory
+'samples'. To see hamsterdb in action, just run 'samples/db1'
+or any other sample. (or 'win32/out/samples/db1/db1.exe' on Windows platforms).
+
+8. API Documentation
+
+The header files in 'include/ham' have extensive comments. Also, a doxygen
+script is available; run 'make doc' to start doxygen. The generated
+documentation is also available on the hamsterdb web page.
+
+9. Other Ways to Compile hamsterdb
+
+If you want to compile hamsterdb without using the provided ./configure
+environment, you have to set some preprocessor macros:
+
+DEBUG enable debugging output and diagnostic checks (slow!)
+HAM_32BIT compile for 32bit (alias: WIN32)
+HAM_64BIT compile for 64bit (alias: WIN64, also needs WIN32)
+
+Also, if you compile for windows, you have to compile the file
+'src/os_win32.cc' and ignore the file 'src/os_posix.cc'. Vice versa on
+non-Windows platforms.
+
+10. Porting hamsterdb
+
+Porting hamsterdb shouldn't be too difficult. All operating
+system dependend functions are declared in 'src/os.h' and defined
+in 'src/os_win32.cc' or 'src/os_posix.cc'.
+Other compiler- and OS-specific macros are in 'include/ham/types.h'.
+Most likely, these are the only files which have to be touched. Also see item
+9) for important macros.
+
+11. Migrating files from older versions
+
+Usually, hamsterdb releases are backwards compatible. There are some exceptions,
+though. In this case tools are provided to migrate the database. First, export
+your existing database with ham_export linked against the old version.
+(ham_export links statically and will NOT be confused if your system has a
+newer version of hamsterdb installed). Then use the newest version of
+ham_import to import the data into a new database. You can find ham_export
+and ham_import in the "tools" subdirectory.
+
+ Example (ham_export of 2.1.2 was renamed to ham_export-2.1.2 to document
+ that it's an older version):
+
+ ham_export-2.1.2 input.db | ham_import --stdin output.db
+
+12. Licensing
+
+hamsterdb is released under the APL 2.0 license, which allows
+unrestricted use for commercial and non-commercial applications. See the
+file COPYING for more information.
+
+A commercial, closed source version hamsterdb pro with additional functionality
+is available on request. See http://hamsterdb.com for more information.
+
+13. Contact
+
+Author of hamsterdb is
+ Christoph Rupp
+ Paul-Preuss-Str. 63
+ 80995 Muenchen/Germany
+ email: chris@crupp.de
+ web: http://www.hamsterdb.com
+
+14. Other Copyrights
+
+The Google Protocol Buffers ("protobuf") library is Copyright 2008, Google Inc.
+It has the following license:
+
+ Copyright 2008, Google Inc.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ Code generated by the Protocol Buffer compiler is owned by the owner
+ of the input file used when generating it. This code is not
+ standalone and requires a support library to be linked with it. This
+ support library is itself covered by the above license.
+
+The libuv library is part of the Node project: http://nodejs.org/
+libuv may be distributed alone under Node's license:
+
+ Copyright Joyent, Inc. and other Node contributors. All rights reserved.
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+