arg4, arg5, arg6})
                  
                  
                  ...
                  
                  
                  fut := client.CallAsync("update_batch", []interface{}{batch})
                  
                  
                  На стороне tarantool:
                  
                  
                  function update_batch(list)
                  
                  
                      box.begin()
                  
                  
                      for key, tuple in pairs(list) do
                  
                  
                          update_minute(unpack(tuple))
                  
                  
                      end
                  
                  
                      box.commit()
                  
                  
                  end
                  
                  
                  Добавление такого батча дает те самые 16k rps, добавление box.begin/commit дает 25k rps.
                  
                  
                  Хранимка update_minute делает пару get и update в разных спейсах
                  
                  
                  
                  
                  
                  Можно ли быстрее?
                  
                  
                
Не использую lua, а используй batching в протоколе
Обсуждают сегодня