code: def execute(self, kv, **kwargs):
          
          self._verify_iter(kv)
          if not len(kv):
              raise ArgumentError.pyexc(obj=kv, message="No items in container")
  
          if isinstance(kv, dict):
              is_dict = True
              try:
                  kviter = kv.iteritems()
              except AttributeError:
                  kviter = iter(kv.items())
          else:
              is_dict = False
              kviter = iter(kv)
  
          is_itmcoll = isinstance(kv, ItemCollection)
  
          mres = kwargs.get('_MRES')
          if mres is None:
              mres = self.parent._make_mres()
  
          self.set_mres_flags(mres, kwargs)
  
          C.lcb_sched_enter(self.instance)
          num_items = 0
          while True:
              # Clear the previous command object
              C.memset(self.c_command, 0, ffi.sizeof(self.c_command[0]))
  
              try:
                  self._invoke_submit(kviter, is_dict, is_itmcoll, mres, kwargs)
                  num_items += 1
              except StopIteration:
                  break
              except:
                  C.lcb_sched_fail(self.instance)
                  raise
  
          C.lcb_sched_leave(self.instance)
          mres._remaining += num_items
          # print "Execute(): mres:", mres
          return mres
docs: Execute the operation scheduling items as needed
          :param kv: An iterable of keys (or key-values, or Items)
          :param kwargs: Settings for the operation
          :return: A MultiResult object