1. 21 Jun, 2020 3 commits
  2. 30 May, 2020 3 commits
  3. 29 May, 2020 3 commits
  4. 28 May, 2020 6 commits
  5. 27 May, 2020 3 commits
  6. 26 May, 2020 7 commits
  7. 24 May, 2020 4 commits
  8. 22 May, 2020 7 commits
  9. 21 May, 2020 4 commits
    • ReinUsesLisp's avatar
      buffer_cache: Remove unused boost headers · ebaace29
      ReinUsesLisp authored
      ebaace29
    • ReinUsesLisp's avatar
      map_interval: Add interval allocator and drop hack · a2dcc642
      ReinUsesLisp authored
      Drop the std::list hack to allocate memory indefinitely.
      
      Instead use a custom allocator that keeps references valid until
      destruction. This allocates fixed chunks of memory and puts pointers in
      a free list. When an allocation is no longer used put it back to the
      free list, this doesn't heap allocate because std::vector doesn't change
      the capacity. If the free list is empty, allocate a new chunk.
      a2dcc642
    • ReinUsesLisp's avatar
      buffer_cache: Use boost::container::small_vector for maps in range · 19d4f280
      ReinUsesLisp authored
      Most overlaps in the buffer cache only contain one mapped address.
      We can avoid close to all heap allocations once the buffer cache is
      warmed up by using a small_vector with a stack size of one.
      19d4f280
    • ReinUsesLisp's avatar
      buffer_cache: Use boost::intrusive::set for caching · 89123612
      ReinUsesLisp authored
      Instead of using boost::icl::interval_map for caching, use
      boost::intrusive::set. interval_map is intended as a container where the
      keys can overlap with one another; we don't need this for caching
      buffers and a std::set-like data structure that allows us to search with
      lower_bound is enough.
      89123612