1. 14 Aug, 2020 4 commits
    • Alexander Barkov's avatar
      MDEV-23478 Improve Protocol performance for numeric data - version 2 · 48cbb2c0
      Alexander Barkov authored
      The previous commit was erroneously marked as MDEV-23162.
      The correct issue is MDEV-23478.
      48cbb2c0
    • Alexander Barkov's avatar
      MDEV-23162 Improve Protocol performance for numeric data · c55f24cd
      Alexander Barkov authored
      An alternative implementation (replacing the one based on repertoire).
      
      This implementation makes Field send itself to Protocol_text using
      data type specific Protocol methods rather than field->val_str()
      followed by protocol_text->store_str().
      
      As now Field sends itself in the same way to all protocol types
      (e.g. Protocol_binary, Protocol_text, Protocol_local),
      the method Field::send_binary() was renamed just to Field::send().
      
      Note, this change introduces symmetry between Field and Item,
      because Items also send themself using a single method Item::send(),
      which is used for *all* protocol types.
      
      Performance improvement is achieved by the fact that Protocol_text
      implements these data type specific methods using store_numeric_string_aux()
      rather than store_string_aux(). The conversion now happens only when
      character_set_results is not ASCII compatible character sets
      (e.g. UCS2, UTF16, UTF32).
      
      In the old code (before any MDEV-23162 work, e.g. as of 10.5.4),
      Protocol_text::store(Field*) used val_str() for all data types.
      So the execution went through the character set conversion routines
      even for numeric and temporal data types.
      
      Benchmarking summary (see  details in MDEV-23478):
      
      The new approach stably demonstrates additional improvement comparing
      to the previous implementation (the smaller time - the better):
      
      Original   - the commit before MDEV-23162
                   be98036f
      
              1m9.336s
              1m9.290s
              1m9.300s
      
      MDEV-23162 - the repertoire optimization
      
              1m6.101s
              1m5.988s
              1m6.264s
      
      MDEV-23478 - this commit
      
              1m2.150s
              1m2.079s
              1m2.099s
      c55f24cd
    • Alexander Barkov's avatar
      Revert "MDEV-23162 Improve Protocol performance for numeric data" · f1a9700f
      Alexander Barkov authored
      This reverts commit eb2eaba7.
      
      A different implementation of MDEV-23162 is coming.
      f1a9700f
    • Alexander Barkov's avatar
  2. 13 Aug, 2020 1 commit
  3. 12 Aug, 2020 2 commits
  4. 11 Aug, 2020 6 commits
  5. 10 Aug, 2020 19 commits
  6. 08 Aug, 2020 4 commits
  7. 07 Aug, 2020 4 commits