def METHOD_NAME(self, random_state: np.random.RandomState):
    D_update = None
    success = False
    k = 2
    while not success:
        if self.update_num_samples*k > self.train_dataset.shape[0]:
            D_update = None
            break
        largest = self.train_dataset.sample(
            n=self.update_num_samples*k, random_state=random_state)
        D_update = remove_subset(largest, self.used_dataset)
        if D_update.shape[0] < self.update_num_samples:
            k += 1
            continue
        if D_update.shape[0] >= self.update_num_samples:
            D_update = D_update.sample(
                n=self.update_num_samples, random_state=random_state)
            success = True
    logger.info("Sampling completed after with k={}.".format(k))
    return D_update