1. 09 Jan, 2012 2 commits
  2. 06 Jan, 2012 1 commit
  3. 09 Nov, 2011 1 commit
  4. 26 Oct, 2011 4 commits
  5. 11 Oct, 2011 2 commits
    • Julien Muchembled's avatar
      Fix protocol and DB schema so that storages can handle transactions of any size · d5c469be
      Julien Muchembled authored
      - Change protocol to use SHA1 for all checksums:
        - Use SHA1 instead of CRC32 for data checksums.
        - Use SHA1 instead of MD5 for replication.
      
      - Change DatabaseManager API so that backends can store raw data separately from
        object metadata:
        - When processing AskStoreObject, call the backend to store the data
          immediately, instead of keeping it in RAM or in the temporary object table.
          Data is then referenced only by its checksum.
          Without such change, the storage could fail to store the transaction due to
          lack of RAM, or it could make tpc_finish step very slow.
        - Backends have to store data in a separate space, and remove entries as soon
          as they get unreferenced. So they must have an index of checksums in object
          metadata space. A new '_uncommitted_data' backend attribute keeps references
          of uncommitted data.
        - New methods: _pruneData, _storeData, storeData, unlockData
        - MySQL: change vertical partitioning of 'obj' by having data in a separate
          'data' table instead of using a shortened 'obj_short' table.
        - BTree: data is moved from '_obj' to a new '_data' btree.
      
      - Undo is optimized so that backpointers are not required anymore to fetch data:
        - The checksum of an object is None only when creation is undone.
        - Removed DatabaseManager methods: _getObjectData, _getDataTIDFromData
        - DatabaseManager: move some code from _getDataTID to findUndoTID so that
          _getDataTID only has what's specific to backend.
      
      - Removed because already covered by ZODB tests:
        - neo.tests.storage.testStorageDBTests.StorageDBTests.test__getDataTID
        - neo.tests.storage.testStorageDBTests.StorageDBTests.test__getDataTIDFromData
      d5c469be
    • Julien Muchembled's avatar
      Allow NEO to store empty values · d90c5b83
      Julien Muchembled authored
      This changes how NEO stores undo information
      and how it is transmitted on the network.
      d90c5b83
  6. 16 Sep, 2011 1 commit
  7. 15 Sep, 2011 2 commits
  8. 31 Aug, 2011 3 commits
  9. 24 Jun, 2011 1 commit
    • Julien Muchembled's avatar
      client: do not clear the entire connection cache in tpc_finish ! · b55075f7
      Julien Muchembled authored
      This fixes a regression introduced by implementation of IMVCCStorage in r2532.
      On recent ZODB, this fixes a severe performance issue.
      With ZODB 3.4, objects were never invalidated, which was even worse.
      
      This fixes includes compatibility code for ZODB 3.4 so that each connection
      has its own NEOStorage instance.
      The DB's storage is changed to always consider the last revision of
      objects.
      
      IMVCCStorage seems too complicated to me. Connection should be a better
      place to implement it (by extending/fixing the 'before' attribute).
      So we have decided that NEOStorage stops implementing IMVCCStorage.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2802 71dcc9de-d417-0410-9af5-da40c76e7ee4
      b55075f7
  10. 31 May, 2011 1 commit
  11. 30 May, 2011 3 commits
  12. 27 May, 2011 1 commit
  13. 12 Apr, 2011 2 commits
  14. 07 Apr, 2011 1 commit
  15. 23 Mar, 2011 1 commit
  16. 25 Feb, 2011 1 commit
    • Olivier Cros's avatar
      Implementing ipv6 on neo · 0cdbf0ea
      Olivier Cros authored
      In order to synchronise neo with slapos, it has to work perfectly with ipv4
      and ipv6. This allows to integrate neo in erp5 and to prepare different buildout
      installations of neo.
      The protocol and connectors are no more generic but can now support IPv4 and
      IPv6 connections. We adopted a specific way of development which allow to
      easily add new protocols in the future.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2654 71dcc9de-d417-0410-9af5-da40c76e7ee4
      0cdbf0ea
  17. 25 Jan, 2011 6 commits
  18. 24 Jan, 2011 2 commits
  19. 21 Jan, 2011 3 commits
  20. 20 Jan, 2011 2 commits