Created by Philip Ashmore on 2013-05-15 and last modified on 2013-05-15
Get this branch:
bzr branch lp:treedb

Related bugs

Related blueprints

Branch information

Philip Ashmore

Import details

Import Status: Failed

This branch is an import of the HEAD branch of the Git repository at git://git.code.sf.net/p/treedb/code.

The import has been suspended because it failed 5 or more times in succession.

Last successful import was on 2015-07-16.

Import started on 2015-07-20 on russkaya and finished on 2015-07-20 taking 25 seconds — see the log
Import started on 2015-07-18 on pear and finished on 2015-07-18 taking 10 seconds — see the log
Import started on 2015-07-17 on neumayer and finished on 2015-07-17 taking 30 seconds — see the log
Import started on 2015-07-17 on pear and finished on 2015-07-17 taking 15 seconds — see the log

Recent revisions

46. By Philip Ashmore on 2012-07-10

Version 1.3.3-02

* Lintian clean (N: 10 tags overridden (3 errors, 7 warnings))
  See debian/treedb.lintian-overrides.in for details.

* Split debian/changelog.in for Debian/Ubuntu
  See v3c's README file for details.

* Requires v3c-2.5.4-01
  It includes the distro-choice logic for selecting debian/changelog.

45. By Philip Ashmore on 2012-07-07

Version 1.3.3-01

* Changed signature of VARRAY_TMPL_NS(resize)
  It now returns a data pointer.
  This makes it more general - you may want to move the existing data
  before copying more data in, for example.

  This is an interface change, hence the version bump.

* Debian/Ubuntu builds can now be run with make -jN
  So "make -j7 git branch=1.3.3-01 release ubuntu" is a lot faster,
  if you have the cores.
  The version in git needs to be parallel-friendly too for this to work.

* Requires v3c-2.5.3 or later
  avl-string-key.h, avl-string-value.h and struct-list.h now use
  v3c_strcpy() provided by v3c/string_utils.h to overcome problems
  introduced by _FORTIFY_SOURCE.
  See v3c's Changelog for the gory details.

  See v3c's Changelog for the gory details.

44. By Philip Ashmore on 2012-05-29

Version 1.3.2-01

* treedb-malloc fixed!
  I also added a treedb malloc library that uses a private memory map,
  which is the simplest stand-alone malloc drop-in replacement, allowing
  direct comparison. From my initial tests it looks a bit slower than
  regular malloc, but since this isn't treedb's primary application,
  that's OK for now.

* Better treedb malloc tests

43. By Philip Ashmore on 2012-04-30

Version 1.3.1-02

* treedb-malloc library allows free(0)

* treedb-malloc library returns pointer-aligned blocks
  Previously they were 4-byte-aligned, not OK for 64 bits.

* treedb-malloc library rejects non-fuse filesystem directories
  It checks the directory size, which is 0 when it's a fuse filesystem.

* treedb-malloc library "d2" variant added
  This runs as quietly and quickly as possible while still doing heap
  This allows you to set a breakpoint in allocator_check_heap()
  to catch heap check failures.

* treedb-malloc-daemon uses mmap() onto client data files
  The idea is to allow non-blocking v3c_sync_fetch_and_or(), which is
  definitely better than reading, then writing wrt multiple threads.

* treedb-malloc-daemon now single threaded
  Tripped over self if not. Happened about 1/4 times tests were run.
  Now its tests always succeed.

42. By Philip Ashmore on 2012-04-23

Version 1.3.1-01

The "bucky-ball" release.

* Added "-o kernel_cache" flags inside treedb-malloc-daemon
  Don't wait for the data to hit the disk, otherwise it crawls.

* Fixed treedb-malloc.c
  You haven't lived until you've tracked down a memory problem caused by
  (unintentionally) mapping the same page onto two different addresses!

* Added eTreedbHeapNoRuntime to the TreedbHeapStatus enum
  It means the runtime structures weren't set up (correctly).
  This is an interface change, hence the version bump.

* Added v3c_treedb_allocator_abort
  It's er, an abort function in case a treedb check fails, and it's
  defined in treedb-static.h and referenced in treedb-impl.h.

  It's invoked through the TREEDB_ALLOC_set_errno which you can redefine
  if you want to call another function.

* Moved the tests to their own "tests" directories
  It's hopefully clearer that way.

41. By Philip Ashmore on 2012-04-01

Version 1.3.0-01

* Added a long description for debian/control

* Added a v3c-comet man page

* Added a treedb-malloc-daemon man page

* Lots of fiddly changes to pass Debians "lintian" checks
  All the DEBIAN*_REQUIRES have changed to DEBIAN*_DEPENDS.
  Since they go into the Build-Depends and Depends fields of the
  debian/control(.in) file, this makes more sense.

* Refactoring
  The avl, list, array, varray, handle-array headers are c-templates.
  While c-templates provide ultimate control, they aren't the most
  intuitive to use.
  Now the c-template headers all have "template" in their name and they
  all have wrapper headers providing the "common use case".

  Take a look at the tests and comet for examples.

* Nested c-template wrappers wrinkle
  One of the side-effects of this refactoring exercise is that it's now
  impossible to use a wrapper from inside the same wrapper.

  Even though this can be done using the c-templates by themselves, the
  reduction in the number of lines of hand-written code is still a win.

  The way around this is to "sed" all the avl wrapper headers to produce
  versions with a "2" at the end of their names and macros, and use
  those in the AVL two-tree allocator.

  Note that this jumping through hoops is because of deficiencies in the
  design of the "C" preprocessor - "m4" and even "make" can define
  macros that define other macros easily.

* treedb-malloc library improvements
  Instead of allocating an insanely huge mamory map, a more modest one
  is created when memory is allocated, and the rest mmapped onto
  The idea is to preserve the start address by changing the ratio of
  read+write pages to read-only pages so the total map is fixed.

* oprofile tests added for treedb-malloc daemon + tests

40. By Philip Ashmore on 2011-12-13

Version 1.2.0-03

* Removed potentially inaccurate message from treedb-malloc-daemon.cpp

* Changed configure.ac.in to require v3c-2.4.0

39. By Philip Ashmore on 2011-11-28

Version 1.2.0-02

* -sysinclude\${top_srcdir} -> -I\${top_srcdir} in configure.ac.in
  This uncovered some problems with v3c headers that were hidden
  previously. Fixed.

* More fixes for warnings/errors with using clang
  The fuse tests fail in release mode with clang.
  You can test this with
    CXX=clang++ CFLAGS=-fmacro-backtrace-limit=100 make release check
  with llvm/clang 2.9.svn-r145196

  I'm firmly committed to there being more than one compiler, with
  different development teams.

  I've found and fixed several bugs because of llvm/clang and I'm sure
  this issue will be resolved.

  Gcc's debug and release tests pass, but it could still be a problem
  with my code.

  I'll file a bug report once this version is committed to version

* Added debian/watch.in

* "#if defined(X)" -> "#ifdef X" throughout the sources
  Just to be consistent. Same for "#if ! defined(X)" -> "#ifndef X".

* treedb malloc works (sort of)
  I saw one segfault in treedb-malloc-daemon.
  Of course when I set "ulimit -S -c unlimited" to track it down and run
  "make check" again, it works like a charm.

* Added an environment variable for treedb-malloc-deamon
  The TREEDB_FUSE_TMPDIR environment variable works like TMPDIR and TMP
  but is tried first when the daemon creates temporary files to back
  client program heap memory.
  The usual /tmp directory is tried last if none of the above are set.
  You need to point it at a filesystem capable of storing those memory
  images, which can get quite large for programs that use a lot of

38. By Philip Ashmore <Philip Ashmore <email address hidden>> on 2011-10-10

Release 1.2.0-01

37. By Philip Ashmore <Philip Ashmore <email address hidden>> on 2011-09-22

Release 1.1.0-01

clang release

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.