1. 04 Jun, 2013 6 commits
    • Julien Muchembled's avatar
    • Vincent Pelletier's avatar
      Drop unneeded criterion. · 0d2e4dd6
      Vincent Pelletier authored
      0d2e4dd6
    • Vincent Pelletier's avatar
      Use REPLACE rather than INSERT for DELETE..INSERT indexation pattern. · 5d3ea021
      Vincent Pelletier authored
      When a document gets rows inserted in category table while there was none
      before (typically: first document indexation), it may trigger
        IntegrityError: (1062, "Duplicate entry '...' for key 'PRIMARY'")
      because in the DELETE..INSERT pattern, DELETE finds no matching rows and
      does not gap-lock (because we enable innodb_locks_unsafe_for_binlog), then
      the second INSERT happening, chronologically speaking, waits for the
      transaction of the first to e committed, and on commit it causes such
      duplicate key error.
      
      A transient visible effect of this change is that if both competing
      indexations see a different document state (because document got modified
      in some 3rd transaction), the union of the resulting set of rows will be
      visible until the reindexation which must have been triggered by the 3rd
      transaction gets executed, at which point only the latest set will be
      visible.
      
      A similar issue exists before this change, with stricter conditions: it
      needs the intersection of both sets to be empty, because a non-empty
      intersection causes the duplicate key error solved here.
      
      This change has been measured to improve scalability of an invoice building
      test case (naturally triggering indexations) starting from ~12 activity
      nodes:
         8 nodes:  +1.4% invoices/hour
        12 nodes:  +9.5% invoices/hour
        16 nodes: +12.3% invoices/hour
      (values are the difference between DELETE..INSERT and DELETE..REPLACE)
      5d3ea021
    • Julien Muchembled's avatar
      ZSQLCatalog: fix identation in EntireQuery · 4ec66892
      Julien Muchembled authored
      asSQLExpression() failed when executed several times on the same instance,
      because too much code was skipped when 'column_map' is cached.
      4ec66892
    • Vincent Pelletier's avatar
      Setter argument is required. · a5535be1
      Vincent Pelletier authored
      a5535be1
    • Julien Muchembled's avatar
      0eb3c1e8
  2. 03 Jun, 2013 1 commit
  3. 31 May, 2013 1 commit
  4. 30 May, 2013 1 commit
  5. 29 May, 2013 3 commits
  6. 28 May, 2013 2 commits
  7. 27 May, 2013 5 commits
  8. 24 May, 2013 4 commits
  9. 23 May, 2013 6 commits
  10. 22 May, 2013 2 commits
  11. 21 May, 2013 9 commits