Skip to content
Snippets Groups Projects
  1. Aug 15, 2017
    • Georgy Kirichenko's avatar
      Add hot function reload for C procedures · 96938faf
      Georgy Kirichenko authored
      This patch adds ability to reload C procedures on the fly without
      downtime. To achive that, Tarantool loads a new copy of shared
      library and starts routing all new request to the new version.
      The previous version remains active until all started calls
      are finished. All shared libraries are loaded with RTLD_LOCAL,
      therefore two or more copies can co-exist without any problems.
      From now box loads all external modules via an unique symlink to
      avoid caching inside dlopen().
      
      If one of some module function is reloaded then all other functions
      from this module will be reloaded.
      
      Reviewed and heavily patched by Roman Tsisyk.
      
      Closes #910
      96938faf
    • Roman Tsisyk's avatar
      Use new rbtree iterators · 738a6afd
      Roman Tsisyk authored
      rbtree_next() has log(N) complexity to advance to the right subtree.
      The new iterators saves the iteration path during descent.
      
      Closes #1668
      738a6afd
    • Roman Tsisyk's avatar
      Ignore tarantool_free() from non-main thread · fa759718
      Roman Tsisyk authored
      panic() from non-main thread calls exit(), which fires
      at_exit triggers, which try to destroy TX data.
      
      Closes #2686
      fa759718
    • Alexandr Lyapunov's avatar
      memtx: introduce createSnapshotIterator method in index · 577dc6b4
      Alexandr Lyapunov authored
      Memtx checkpointing subsystem uses createReadViewForIterator and
      destroyReadViewForIterator methods of Index. So these methods
      are used only for ALL iterators before actual iteration starts.
      
       * no other cases of these methods using are covered by tests,
      for example EQ iteration or using in the middle of iteration.
      
       * creation of general read view iterator is an overkill for
      such a simple case as ALL iterator.
      
       * memtx read view iterators are incompatible with lazy lookup
      and restoration patterns that are necessary for implementing
      stable iterators.
      
      Introduce new createSnapshotIterator method that would create
      a special iterator for checkpointing and remove misleading
      createReadViewForIterator and destroyReadViewForIterator methods.
      577dc6b4
    • Alexandr Lyapunov's avatar
      memtx: make tree iterators stable · 2160e4cb
      Alexandr Lyapunov authored
      Make memtx tree iterator lookup lazy - in the first 'next' call.
      It makes the iterator similar to vinyl in case when a new tuple
      is inserted between a moment of iterator creation and a moment
      of first tuple retrieval. Make the inserted tuple visible to
      the iterator.
      
      Store last returned tuple in the iterator and if the tree is
      changed between iterations - search for the stored tuple and
      continue iteration from the found position. This will make the
      iteration stable and every next iteration will return proper
      (next or previous) tuple.
      
      Fix #1796
      2160e4cb
    • Alexandr Lyapunov's avatar
      Add to bps_tree lower/upper_bound_elem methods · 22d0c539
      Alexandr Lyapunov authored
      Originally bps_tree had only lower/upper_bound methods for
      retreaving iterators by given key.
      
      Sometimes it is necessary to find an iterator position by a value
      that is (can be) stored in a tree.
      
      For example memtx tree index holds a bps_tree with
      (struct tuple *) values and (const char *) key.
      lower/upper_bound methods used (const char *) as an argument,
      but for stable iterators we need to find a position in the tree
      by (struct tuple *) value.
      
      Implement bps_tree methods that will allow to find an iterator
      by a value (element) in the tree.
      
      Needed for #1796
      22d0c539
    • Alexandr Lyapunov's avatar
      memtx: optimize and simplify comparators in memtx tree index · 8d044395
      Alexandr Lyapunov authored
      Move memtx_tree_compare_key definition to header file to allow
      compiler to inline it.
      
      Get rid of memtx_tree_comprare wrapper, use tuple_compare instead.
      
      Comment the code.
      8d044395
  2. Aug 14, 2017
  3. Aug 11, 2017
  4. Aug 10, 2017
  5. Aug 09, 2017
  6. Aug 08, 2017
  7. Aug 07, 2017
  8. Aug 04, 2017
Loading