1. 05 Jan, 2018 2 commits
    • Julien Muchembled's avatar
      storage: speed up reads by indexing 'obj' primarily by 'oid' (instead of 'tid') · 3c7a3160
      Julien Muchembled authored
      getObject becomes faster because it does not use secondary index anymore.
      Only the primary one. This frees RAM during normal operation. For MySQL,
      DatabaseManager._getObject is sped up by ~3% for in-memory loads.
      An improvement of ~1% from ERP5 was also mesured for IO-bound loads.
      
      On insertion, the fast index is (`partition`, tid, oid) because we almost
      always insert lines with increasing tid, whereas oid values are more random.
      Although the value (data_id+value_tid) is moved from the fast to the slow index,
      this should have little impact on performance because the value size is quite
      small compared to the key.
      
      The impact on replication should also be negligible:
      - a little faster when there's no oid to replicate: only the secondary index,
        smaller, is scanned
      - otherwise: the (slightly) biggest index is scanned randomly
      
      On disk usage, an increase of ~4% was observed for TokuDB.
      Less compressibility ? Any link with https://jira.percona.com/browse/TDB-86 ?
      3c7a3160
    • Julien Muchembled's avatar
  2. 21 Dec, 2017 1 commit
  3. 15 Dec, 2017 3 commits
  4. 13 Dec, 2017 1 commit
  5. 11 Dec, 2017 3 commits
  6. 05 Dec, 2017 2 commits
  7. 04 Dec, 2017 1 commit
  8. 21 Nov, 2017 1 commit
    • Julien Muchembled's avatar
      client: bug found, add log to collect more information · a1082cbc
      Julien Muchembled authored
      INFO Z2 Log files reopened successfully
      INFO SignalHandler Caught signal SIGTERM
      INFO Z2 Shutting down fast
      INFO ZServer closing HTTP to new connections
      ERROR ZODB.Connection Couldn't load state for BTrees.LOBTree.LOBucket 0xc12e29
      Traceback (most recent call last):
        File "ZODB/Connection.py", line 909, in setstate
          self._setstate(obj, oid)
        File "ZODB/Connection.py", line 953, in _setstate
          p, serial = self._storage.load(oid, '')
        File "neo/client/Storage.py", line 81, in load
          return self.app.load(oid)[:2]
        File "neo/client/app.py", line 355, in load
          data, tid, next_tid, _ = self._loadFromStorage(oid, tid, before_tid)
        File "neo/client/app.py", line 387, in _loadFromStorage
          askStorage)
        File "neo/client/app.py", line 297, in _askStorageForRead
          self.sync()
        File "neo/client/app.py", line 898, in sync
          self._askPrimary(Packets.Ping())
        File "neo/client/app.py", line 163, in _askPrimary
          return self._ask(self._getMasterConnection(), packet,
        File "neo/client/app.py", line 177, in _getMasterConnection
          result = self.master_conn = self._connectToPrimaryNode()
        File "neo/client/app.py", line 202, in _connectToPrimaryNode
          index = (index + 1) % len(master_list)
      ZeroDivisionError: integer division or modulo by zero
      a1082cbc
  9. 19 Nov, 2017 1 commit
  10. 17 Nov, 2017 4 commits
  11. 15 Nov, 2017 1 commit
  12. 07 Nov, 2017 2 commits
  13. 27 Oct, 2017 1 commit
  14. 29 Sep, 2017 3 commits
  15. 11 Sep, 2017 1 commit
  16. 05 Sep, 2017 1 commit
  17. 28 Aug, 2017 1 commit
  18. 11 Jul, 2017 1 commit
  19. 04 Jul, 2017 2 commits
  20. 30 Jun, 2017 1 commit
  21. 29 Jun, 2017 1 commit
  22. 16 Jun, 2017 1 commit
  23. 15 Jun, 2017 2 commits
  24. 14 Jun, 2017 1 commit
  25. 13 Jun, 2017 1 commit
  26. 12 Jun, 2017 1 commit