diff --git a/src/box/vy_tx.c b/src/box/vy_tx.c
index e5fdaed19b0bbc67ea200cece8d3e494eaed2a90..5c186b87b2e60161e6bd0f27329df5e4cbbf9df9 100644
--- a/src/box/vy_tx.c
+++ b/src/box/vy_tx.c
@@ -170,10 +170,6 @@ tx_manager_read_view(struct tx_manager *xm)
 		rv->vlsn = xm->lsn;
 		rv->refs = 1;
 	}
-	/*
-	 * Add to the tail of the list, so that tx_manager_vlsn()
-	 * works correctly.
-	 */
 	rlist_add_tail_entry(&xm->read_views, rv, in_read_views);
 	return rv;
 }
@@ -193,17 +189,6 @@ tx_manager_destroy_read_view(struct tx_manager *xm,
 	}
 }
 
-int64_t
-tx_manager_vlsn(struct tx_manager *xm)
-{
-	if (rlist_empty(&xm->read_views))
-		return xm->lsn;
-	struct vy_read_view *oldest = rlist_first_entry(&xm->read_views,
-							struct vy_read_view,
-							in_read_views);
-	return oldest->vlsn;
-}
-
 static struct txv *
 txv_new(struct vy_tx *tx, struct vy_lsm *lsm, struct tuple *stmt)
 {
diff --git a/src/box/vy_tx.h b/src/box/vy_tx.h
index 9c35e2bd76eb91cc60a74c421eef2ea1ce6912bd..dcf6a73982d1911ee122d96d3609b97b9e668414 100644
--- a/src/box/vy_tx.h
+++ b/src/box/vy_tx.h
@@ -262,18 +262,6 @@ tx_manager_new(void);
 void
 tx_manager_delete(struct tx_manager *xm);
 
-/*
- * Determine the lowest possible vlsn, i.e. the level below
- * which the history could be compacted.
- *
- * If there are active read views, it is the first's vlsn.
- * If there is no active read view, a read view could be
- * created at any moment with vlsn = m->lsn, so m->lsn must
- * be chosen.
- */
-int64_t
-tx_manager_vlsn(struct tx_manager *xm);
-
 /** Initialize a tx object. */
 void
 vy_tx_create(struct tx_manager *xm, struct vy_tx *tx);