Skip to content
Snippets Groups Projects
  1. Jun 14, 2012
  2. Jun 13, 2012
  3. Jun 09, 2012
    • Konstantin Osipov's avatar
      Fix a regression with double unlock. · f9d6249b
      Konstantin Osipov authored
      Fix a regression I introduced while refactoring
      txn code with double unlock of txn->old_tuple.
      
      We would assign txn->old_tuple before actually taking
      a lock on it, then call txn_lock(), get an exception,
      and in txn_rollback() unlock a lock which we didn't take.
      
      This lead to an assertion failure or crash under concurrent
      load, when the same tuple was updated from multiple connections.
      f9d6249b
  4. Jun 08, 2012
  5. Jun 07, 2012
  6. Jun 06, 2012
    • Konstantin Osipov's avatar
      Implement error checks in WAL I/O. · e9b83a5e
      Konstantin Osipov authored
      Do not use buffered file I/O which doesn't
      give a precise account of failure, when it happens.
      
      Instead, batch writes to WAL or SNAP files and
      write batches using writev(). If writev() fails,
      we can accurately evaluate which requests (those that
      belong to the batch) were not written to disk.
      
      In case of a partial write, rollback the failed requests,
      and seek back to the end of the last fully written
      request.
      
      To support writev() and IO with file descriptors,
      implement nio library, which provides a set of
      EINTR- and error log- aware wrappers around syscalls.
      e9b83a5e
    • Konstantin Osipov's avatar
      103c06a7
  7. Jun 04, 2012
  8. Jun 01, 2012
  9. May 30, 2012
  10. May 29, 2012
  11. May 28, 2012
  12. May 25, 2012
    • Konstantin Osipov's avatar
      Speed up snapshot IO: remove coroutines and unnecessary memcpy. · fae486f1
      Konstantin Osipov authored
      Remove log_io_iter from snapshot IO. Do not use coroutines
      and extra buffers. This opens the way to more agressive
      buffering of snapshot IO, as compared to no buffering of WAL IO.
      fae486f1
    • Konstantin Osipov's avatar
      Cleanup: don't use 64 bit types for markers which are always 32bit. · d0d2c279
      Konstantin Osipov authored
      Cleanup work with eof/row markers. Remove unnecessary members
      of log_io_class.
      d0d2c279
    • Konstantin Osipov's avatar
      Fix a regression introduced by the yesterday's cleanup. · f766adbe
      Konstantin Osipov authored
      Fix a regression introduced by the yesterday's cleanup:
      
      recover_wal() can return 0, -1, or 1:
      0 - ok, eof read
      -1 - error reading wal
      1 - can't read eof marker from wal.
      
      recover_remaining_wals() looks at this, and when doing final recovery
      deletes wal which don't have eof marker (return value from recover_wal()
      == 1).
      
      Yesterday I mistakenly merged 0 and 1 return values into one.
      Revert this part of the yesterday's patch.
      
      On the same token, log_io_cursor_next() can't throw an exception,
      ever. Take this into account and simplify code.
      
      recover_remaining_wals() continues to stay a mess.
      f766adbe
Loading