docs: public synchronized List<TransactionTask> getBacklogTasks() {
          List<TransactionTask> pendingTasks = new ArrayList<>();
          Iterator<TransactionTask> iter = m_backlog.iterator();
          // skip the first fragments which is streaming snapshot
          TransactionTask mpTask = iter.next();
          assert (!mpTask.getTransactionState().isSinglePartition());
          while (iter.hasNext()) {
              TransactionTask task = iter.next();
              // Skip all fragments of current transaction
              if (task.getTxnId() == mpTask.getTxnId()) {
                  continue;
              }
              assert (task.getTransactionState().isSinglePartition());
              pendingTasks.add(task);
          }
          return pendingTasks;
      }