@@ -3795,6 +3795,11 @@ TYPED_TEST(HNSWTieredIndexTestBasic, HNSWResize) {
37953795 ASSERT_EQ (tiered_index->getMainIndexGuardWriteLockCount (), resize_operations);
37963796 ASSERT_EQ (hnsw_index->indexSize (), 1 );
37973797 ASSERT_EQ (hnsw_index->indexCapacity (), blockSize);
3798+ ASSERT_EQ (hnsw_index->indexMetaDataCapacity (), blockSize);
3799+ ASSERT_EQ (tiered_index->frontendIndex ->indexMetaDataCapacity (), 0 );
3800+ ASSERT_EQ (tiered_index->indexMetaDataCapacity (),
3801+ hnsw_index->indexMetaDataCapacity () +
3802+ tiered_index->frontendIndex ->indexMetaDataCapacity ());
37983803
37993804 // add up to block size
38003805 for (size_t i = 1 ; i < blockSize; i++) {
@@ -3805,6 +3810,11 @@ TYPED_TEST(HNSWTieredIndexTestBasic, HNSWResize) {
38053810 ASSERT_EQ (tiered_index->getMainIndexGuardWriteLockCount (), resize_operations);
38063811 ASSERT_EQ (hnsw_index->indexSize (), blockSize);
38073812 ASSERT_EQ (hnsw_index->indexCapacity (), blockSize);
3813+ ASSERT_EQ (hnsw_index->indexMetaDataCapacity (), blockSize);
3814+ ASSERT_EQ (tiered_index->frontendIndex ->indexMetaDataCapacity (), 0 );
3815+ ASSERT_EQ (tiered_index->indexMetaDataCapacity (),
3816+ hnsw_index->indexMetaDataCapacity () +
3817+ tiered_index->frontendIndex ->indexMetaDataCapacity ());
38083818
38093819 // add one more vector to trigger another resize
38103820 GenerateAndAddVector<TEST_DATA_T>(tiered_index, dim, blockSize);
@@ -3814,6 +3824,11 @@ TYPED_TEST(HNSWTieredIndexTestBasic, HNSWResize) {
38143824 ASSERT_EQ (tiered_index->getMainIndexGuardWriteLockCount (), resize_operations);
38153825 ASSERT_EQ (hnsw_index->indexSize (), blockSize + 1 );
38163826 ASSERT_EQ (hnsw_index->indexCapacity (), 2 * blockSize);
3827+ ASSERT_EQ (hnsw_index->indexMetaDataCapacity (), 2 * blockSize);
3828+ ASSERT_EQ (tiered_index->frontendIndex ->indexMetaDataCapacity (), 0 );
3829+ ASSERT_EQ (tiered_index->indexMetaDataCapacity (),
3830+ hnsw_index->indexMetaDataCapacity () +
3831+ tiered_index->frontendIndex ->indexMetaDataCapacity ());
38173832
38183833 // delete a vector to shrink data blocks
38193834 ASSERT_EQ (VecSimIndex_DeleteVector (tiered_index, 0 ), 1 ) << " Failed to delete vector 0" ;
@@ -3825,6 +3840,8 @@ TYPED_TEST(HNSWTieredIndexTestBasic, HNSWResize) {
38253840 ASSERT_EQ (tiered_index->getMainIndexGuardWriteLockCount (), resize_operations);
38263841 ASSERT_EQ (hnsw_index->indexSize (), blockSize);
38273842 ASSERT_EQ (hnsw_index->indexCapacity (), blockSize);
3843+ // meta data capacity should not shrink
3844+ ASSERT_EQ (hnsw_index->indexMetaDataCapacity (), 2 * blockSize);
38283845
38293846 // add this vector again and verify lock was acquired to resize
38303847 GenerateAndAddVector<TEST_DATA_T>(tiered_index, dim, 0 );
@@ -3833,6 +3850,11 @@ TYPED_TEST(HNSWTieredIndexTestBasic, HNSWResize) {
38333850 ASSERT_EQ (tiered_index->getMainIndexGuardWriteLockCount (), resize_operations);
38343851 ASSERT_EQ (hnsw_index->indexSize (), blockSize + 1 );
38353852 ASSERT_EQ (hnsw_index->indexCapacity (), 2 * blockSize);
3853+ ASSERT_EQ (hnsw_index->indexMetaDataCapacity (), 2 * blockSize);
3854+ ASSERT_EQ (tiered_index->frontendIndex ->indexMetaDataCapacity (), 0 );
3855+ ASSERT_EQ (tiered_index->indexMetaDataCapacity (),
3856+ hnsw_index->indexMetaDataCapacity () +
3857+ tiered_index->frontendIndex ->indexMetaDataCapacity ());
38363858
38373859 // add up to block size (count = 2 blockSize), the lock shouldn't be acquired because no resize
38383860 // is required
@@ -3843,4 +3865,9 @@ TYPED_TEST(HNSWTieredIndexTestBasic, HNSWResize) {
38433865 ASSERT_EQ (tiered_index->getMainIndexGuardWriteLockCount (), resize_operations);
38443866 ASSERT_EQ (hnsw_index->indexSize (), 2 * blockSize);
38453867 ASSERT_EQ (hnsw_index->indexCapacity (), 2 * blockSize);
3868+ ASSERT_EQ (hnsw_index->indexMetaDataCapacity (), 2 * blockSize);
3869+ ASSERT_EQ (tiered_index->frontendIndex ->indexMetaDataCapacity (), 0 );
3870+ ASSERT_EQ (tiered_index->indexMetaDataCapacity (),
3871+ hnsw_index->indexMetaDataCapacity () +
3872+ tiered_index->frontendIndex ->indexMetaDataCapacity ());
38463873}
0 commit comments