1. 19 Jun, 2014 4 commits
    • Julien Muchembled's avatar
      client: in iterator records, export data serial as stored by NEO · e76af297
      Julien Muchembled authored
      There is simply no way to guess data serials and instead of producing random
      values, the only solution is to retrieve the values from storages.
      
      There are still differences for data serials between FileStorage and NEO:
      - NEO always resolves to original serial, to avoid any indirection
        (which slightly speeds up undo at the expense of a more complex pack code)
      - NEO does not make any difference between object deletion and creation undone
        (data serial always null in storage)
      It has to be decided whether NEO implementation should be changed about this.
      
      Apart from that, conversion database back from NEO should be fixed.
      testExportFileStorageBug passes and there was in fact no FileStorage bug.
      
      Another change is that iterator does not trash the client cache anymore.
      e76af297
    • Julien Muchembled's avatar
      client: simplify iterator · 441145e5
      Julien Muchembled authored
      441145e5
    • Julien Muchembled's avatar
      storage: refactoring & cleanup · bd03b14b
      Julien Muchembled authored
      - _[gs]etPackTID accessors implementation is not backend-specific
        so move them to superclass
      - _getObjectLength method is useless since data_tid always contains the wanted
        information, regardless the contents of value_tid column
      bd03b14b
    • Julien Muchembled's avatar
      storage: lazy import of backends · d63e45d3
      Julien Muchembled authored
      d63e45d3
  2. 05 Jun, 2014 1 commit
  3. 04 Jun, 2014 2 commits
    • Julien Muchembled's avatar
      Fix tests broken by API changes in new psutil 2.0.0 · 9fe34439
      Julien Muchembled authored
      This fixes:
      
      Traceback (most recent call last):
        File "neo/tests/functional/testMaster.py", line 50, in testStoppingSecondaryMaster
          self.neo.expectDead(master)
        File "neo/tests/functional/__init__.py", line 615, in expectDead
          self.expectCondition(callback, *args, **kw)
        File "neo/tests/functional/__init__.py", line 509, in expectCondition
          'History: %s' % opaque_history)
      AssertionError: Timeout while expecting condition. History: [False, False, False, False, False, False, False, False, False, False, False]
      9fe34439
    • Julien Muchembled's avatar
      fixup! client: drop support for ZODB < 3.10 · ffe34600
      Julien Muchembled authored
      See commit d9ab77b8
      ffe34600
  4. 03 Jun, 2014 3 commits
  5. 29 May, 2014 1 commit
  6. 08 Jan, 2014 1 commit
  7. 07 Jan, 2014 10 commits
  8. 04 Jan, 2014 3 commits
  9. 17 Dec, 2013 9 commits
  10. 13 Dec, 2013 4 commits
  11. 21 Nov, 2013 1 commit
    • Vincent Pelletier's avatar
      storage.database.mysqldb: Optimise getObject for most likely case. · 647dbc86
      Vincent Pelletier authored
      loadBefore is more likely than other loads, as it is how repeatable-read is
      implemented and the vast majority of accesses are scoped to a transaction.
      So put it first in 3-branches "if" choosing between load/loadBefore/loadSerial
      code paths.
      next_serial is likely to not be found, because application will likely
      operate on up-to-date objects. So a test is more efficient than a
      try..except. Inline this test in return statement to avoid defining a local.
      647dbc86
  12. 12 Nov, 2013 1 commit