anchor.diff:  
   -include("riak_kv_ts.hrl").
   
  +-define(MAX_RUNNING_FSMS, 5).
  +-define(MAX_QUERY_DATA_SIZE, 5*1024*1024*1024).
  +
   %% accumulators for different types of query results.
   -type rows_acc()      :: [{non_neg_integer(), list()}].
   -type aggregate_acc() :: [{binary(), term()}].
  
positive.code:           qid           = undefined           :: undefined | {node(), non_neg_integer()},
            sub_qrys      = []                  :: [integer()],
            receiver_pid                        :: pid(),
            fsm_queue          = []             :: [list()],
            n_running_fsms     = 0              :: non_neg_integer(),
            max_n_running_fsms = 5              :: pos_integer(),
            result             = []             :: rows_acc() | aggregate_acc() | group_by_acc(),
            qbuf_ref                            :: undefined | riak_kv_qry_buffers:qbuf_ref(),
            orig_qry                            :: undefined | ?SQL_SELECT{}
           }).
  
  %%%===================================================================
  
negative.code: 
  handle_info({{SubQId, QId}, {results, Chunk}}, #state{qid = QId} = State) ->
      {noreply, throttling_spawn_index_fsms(
                  estimate_query_size(
                    add_subquery_result(SubQId, Chunk, State)))};
  
  handle_info({{SubQId, QId}, {error, Reason} = Error},
              #state{receiver_pid = ReceiverPid,
  