Skip to content

Commit fb98411

Browse files
ldanilekConvex, Inc.
authored and
Convex, Inc.
committed
clean up some TabletIdAndNumber usage (#27159)
`ResolvedIndexName` and `ResolvedIndexMetadata` are unused. several of the helpers on `TableMapping` are unused or can be replaced by something more appropriate. GitOrigin-RevId: 35c77b3ef4f6005d39bab9d3445bcad95b2b23fc
1 parent b07d268 commit fb98411

File tree

23 files changed

+74
-166
lines changed

23 files changed

+74
-166
lines changed

crates/application/src/export_worker.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -996,8 +996,7 @@ mod tests {
996996
let tablet_id = tx
997997
.table_mapping()
998998
.namespace(TableNamespace::test_user())
999-
.inject_table_id()(doc.table())?
1000-
.tablet_id;
999+
.number_to_tablet()(doc.table())?;
10011000
let doc = doc.to_resolved(tablet_id);
10021001
let id_v6 = doc.developer_id().encode();
10031002
expected_export_entries.insert(

crates/application/src/snapshot_import.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,7 +1184,7 @@ pub async fn perform_import<RT: Runtime>(
11841184
let import_id = import_id.to_resolved(
11851185
tx.table_mapping()
11861186
.namespace(TableNamespace::Global)
1187-
.inject_table_id(),
1187+
.number_to_tablet(),
11881188
)?;
11891189
let mut import_model = SnapshotImportModel::new(tx);
11901190
import_model.confirm_import(import_id).await?;
@@ -1217,7 +1217,7 @@ async fn wait_for_import_worker<RT: Runtime>(
12171217
let import_id = import_id.to_resolved(
12181218
tx.table_mapping()
12191219
.namespace(TableNamespace::Global)
1220-
.inject_table_id(),
1220+
.number_to_tablet(),
12211221
)?;
12221222
let mut import_model = SnapshotImportModel::new(&mut tx);
12231223
let snapshot_import =

crates/common/src/bootstrap_model/index/index_metadata.rs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ use value::{
1212
TableIdentifier,
1313
TableName,
1414
TabletId,
15-
TabletIdAndTableNumber,
1615
};
1716

1817
use super::{
@@ -47,7 +46,6 @@ use crate::{
4746
},
4847
};
4948

50-
pub type ResolvedIndexMetadata = IndexMetadata<TabletIdAndTableNumber>;
5149
pub type TabletIndexMetadata = IndexMetadata<TabletId>;
5250
pub type DeveloperIndexMetadata = IndexMetadata<TableName>;
5351

@@ -165,26 +163,6 @@ impl<T: TableIdentifier> IndexMetadata<T> {
165163
}
166164
}
167165

168-
impl From<ResolvedIndexMetadata> for TabletIndexMetadata {
169-
fn from(value: ResolvedIndexMetadata) -> Self {
170-
Self {
171-
name: value.name.into(),
172-
config: value.config,
173-
}
174-
}
175-
}
176-
177-
impl ResolvedIndexMetadata {
178-
pub fn from_document(
179-
f: impl Fn(TabletId) -> anyhow::Result<TabletIdAndTableNumber>,
180-
document: ResolvedDocument,
181-
) -> anyhow::Result<ParsedDocument<Self>> {
182-
let index_metadata_: ParsedDocument<TabletIndexMetadata> = document.try_into()?;
183-
let index_metadata: ParsedDocument<Self> = index_metadata_.map(|d| d.map_table(&f))?;
184-
Ok(index_metadata)
185-
}
186-
}
187-
188166
impl TabletIndexMetadata {
189167
pub fn from_document(document: ResolvedDocument) -> anyhow::Result<ParsedDocument<Self>> {
190168
document.try_into()

crates/common/src/bootstrap_model/index/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ pub use self::{
1717
index_metadata_serialize_tablet_id,
1818
DeveloperIndexMetadata,
1919
IndexMetadata,
20-
ResolvedIndexMetadata,
2120
TabletIndexMetadata,
2221
},
2322
};

crates/common/src/bootstrap_model/schema.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub fn parse_schema_id(
2828
id.to_resolved(
2929
&table_mapping
3030
.namespace(TableNamespace::by_component_TODO())
31-
.inject_table_id(),
31+
.number_to_tablet(),
3232
)
3333
},
3434
}

crates/common/src/document.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -953,7 +953,8 @@ mod tests {
953953
TableMapping,
954954
TableName,
955955
TableNamespace,
956-
TabletIdAndTableNumber,
956+
TableNumber,
957+
TabletId,
957958
};
958959

959960
use super::{
@@ -973,27 +974,28 @@ mod tests {
973974
#[test]
974975
fn test_map_table() -> anyhow::Result<()> {
975976
let internal_id = InternalId::MAX;
976-
let table_id = <TabletIdAndTableNumber as TableIdentifier>::min();
977+
let tablet_id = <TabletId as TableIdentifier>::min();
978+
let table_number = <TableNumber as TableIdentifier>::min();
977979
let table_name: TableName = "hewo".parse()?;
978980
let mut table_mapping = TableMapping::new();
979981
table_mapping.insert(
980-
table_id.tablet_id,
982+
tablet_id,
981983
TableNamespace::test_user(),
982-
table_id.table_number,
984+
table_number,
983985
table_name.clone(),
984986
);
985987
let doc = ResolvedDocument::new_internal(
986988
ResolvedDocumentId::new(
987-
table_id.tablet_id,
988-
DeveloperDocumentId::new(table_id.table_number, internal_id),
989+
tablet_id,
990+
DeveloperDocumentId::new(table_number, internal_id),
989991
),
990992
Some(CreationTime::ONE),
991993
assert_obj!(
992994
"f" => 5
993995
),
994996
)?;
995997
let mapped = doc.to_developer();
996-
assert_eq!(mapped.id().table(), &table_id.table_number);
998+
assert_eq!(mapped.id().table(), &table_number);
997999
Ok(())
9981000
}
9991001

crates/common/src/types/index.rs

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use value::{
1919
TableMapping,
2020
TableName,
2121
TabletId,
22-
TabletIdAndTableNumber,
2322
VirtualTableMapping,
2423
};
2524

@@ -110,7 +109,6 @@ pub struct GenericIndexName<T: TableIdentifier> {
110109

111110
pub type IndexName = GenericIndexName<TableName>;
112111

113-
pub type ResolvedIndexName = GenericIndexName<TabletIdAndTableNumber>;
114112
pub type TabletIndexName = GenericIndexName<TabletId>;
115113

116114
/// Like TabletIndexName in that it refers to a stable underlying index,
@@ -138,8 +136,7 @@ impl StableIndexName {
138136
) -> anyhow::Result<Option<VirtualTableNumberMap>> {
139137
match self {
140138
StableIndexName::Physical(index_name) => {
141-
let table_number =
142-
table_mapping.inject_table_number()(*index_name.table())?.table_number;
139+
let table_number = table_mapping.tablet_number(*index_name.table())?;
143140
Ok(Some(VirtualTableNumberMap {
144141
virtual_table_number: table_number,
145142
physical_table_number: table_number,
@@ -148,10 +145,8 @@ impl StableIndexName {
148145
StableIndexName::Virtual(index_name, tablet_index_name) => {
149146
Ok(Some(VirtualTableNumberMap {
150147
virtual_table_number: virtual_table_mapping.number(index_name.table())?,
151-
physical_table_number: table_mapping.inject_table_number()(
152-
*tablet_index_name.table(),
153-
)?
154-
.table_number,
148+
physical_table_number: table_mapping
149+
.tablet_number(*tablet_index_name.table())?,
155150
}))
156151
},
157152
StableIndexName::Missing => Ok(None),
@@ -299,15 +294,6 @@ impl<T: TableIdentifier> GenericIndexName<T> {
299294
}
300295
}
301296

302-
impl From<ResolvedIndexName> for GenericIndexName<TabletId> {
303-
fn from(value: ResolvedIndexName) -> Self {
304-
GenericIndexName {
305-
table: value.table.tablet_id,
306-
descriptor: value.descriptor().clone(),
307-
}
308-
}
309-
}
310-
311297
impl IndexName {
312298
/// Is this index either an index on a system table or a system-defined
313299
/// index? These indexes do not count towards user quota.
@@ -319,8 +305,8 @@ impl IndexName {
319305

320306
pub fn to_resolved(
321307
self,
322-
f: impl Fn(TableName) -> anyhow::Result<TabletIdAndTableNumber>,
323-
) -> anyhow::Result<ResolvedIndexName> {
308+
f: impl Fn(TableName) -> anyhow::Result<TabletId>,
309+
) -> anyhow::Result<TabletIndexName> {
324310
Ok(GenericIndexName {
325311
table: f(self.table)?,
326312
descriptor: self.descriptor,

crates/database/src/bootstrap_model/index.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,13 @@ impl<'a, RT: Runtime> IndexModel<'a, RT> {
165165
TableModel::new(self.tx)
166166
.insert_table_metadata(namespace, index.name.table())
167167
.await?;
168-
let index: TabletIndexMetadata = index
169-
.map_table(&self.tx.table_mapping().namespace(namespace).name_to_id())?
170-
.into();
168+
let index: TabletIndexMetadata = index.map_table(
169+
&self
170+
.tx
171+
.table_mapping()
172+
.namespace(namespace)
173+
.name_to_tablet(),
174+
)?;
171175
SystemMetadataModel::new_global(self.tx)
172176
.insert_metadata(&INDEX_TABLE, index.try_into()?)
173177
.await
@@ -694,10 +698,13 @@ impl<'a, RT: Runtime> IndexModel<'a, RT> {
694698
namespace: TableNamespace,
695699
index_name: &IndexName,
696700
) -> anyhow::Result<TabletIndexName> {
697-
let resolved = index_name
698-
.clone()
699-
.map_table(&self.tx.table_mapping().namespace(namespace).name_to_id())?;
700-
Ok(resolved.into())
701+
index_name.clone().map_table(
702+
&self
703+
.tx
704+
.table_mapping()
705+
.namespace(namespace)
706+
.name_to_tablet(),
707+
)
701708
}
702709

703710
/// Returns by_id indexes for *all tablets*, including hidden ones.

crates/database/src/bootstrap_model/user_facing.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ impl<'a, RT: Runtime> UserFacingModel<'a, RT> {
130130
self.tx
131131
.table_mapping()
132132
.namespace(self.namespace)
133-
.inject_table_id(),
133+
.number_to_tablet(),
134134
)?;
135135
let table_name = self.tx.table_mapping().tablet_name(id_.tablet_id)?;
136136
let result = self.tx.get_inner(id_, table_name).await?;
@@ -217,7 +217,7 @@ impl<'a, RT: Runtime> UserFacingModel<'a, RT> {
217217
.tx
218218
.table_mapping()
219219
.namespace(self.namespace)
220-
.inject_table_id(),
220+
.number_to_tablet(),
221221
)?;
222222

223223
let new_document = self.tx.patch_inner(id_, value).await?;
@@ -253,7 +253,7 @@ impl<'a, RT: Runtime> UserFacingModel<'a, RT> {
253253
.tx
254254
.table_mapping()
255255
.namespace(self.namespace)
256-
.inject_table_id(),
256+
.number_to_tablet(),
257257
)?;
258258

259259
let new_document = self.tx.replace_inner(id_, value).await?;
@@ -278,7 +278,7 @@ impl<'a, RT: Runtime> UserFacingModel<'a, RT> {
278278
.tx
279279
.table_mapping()
280280
.namespace(self.namespace)
281-
.inject_table_id(),
281+
.number_to_tablet(),
282282
)?;
283283
let document = self.tx.delete_inner(id_).await?;
284284
Ok(document.to_developer())

crates/database/src/database.rs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,9 +1172,11 @@ impl<RT: Runtime> Database<RT> {
11721172
.into_iter()
11731173
.flat_map(|t| t.indexes())
11741174
{
1175-
let name = name
1176-
.map_table(&table_mapping.namespace(TableNamespace::Global).name_to_id())?
1177-
.into();
1175+
let name = name.map_table(
1176+
&table_mapping
1177+
.namespace(TableNamespace::Global)
1178+
.name_to_tablet(),
1179+
)?;
11781180
let document_id = id_generator.generate_resolved(index_table_id);
11791181
let index_metadata = IndexMetadata::new_enabled(name, fields);
11801182
let document = ResolvedDocument::new(
@@ -1606,8 +1608,8 @@ impl<RT: Runtime> Database<RT> {
16061608
// Ignore the row if it comes from a deleted table
16071609
continue;
16081610
};
1609-
let table_id = table_mapping.inject_table_number()(*id.table())?;
1610-
let id = DeveloperDocumentId::new(table_id.table_number, id.internal_id());
1611+
let table_number = table_mapping.tablet_number(*id.table())?;
1612+
let id = DeveloperDocumentId::new(table_number, id.internal_id());
16111613
if Self::user_table_filter(&table_filter, &table_name) {
16121614
deltas.push((ts, id, table_name, maybe_doc));
16131615
if new_cursor.is_none() && deltas.len() >= rows_returned_limit {
@@ -1657,7 +1659,7 @@ impl<RT: Runtime> Database<RT> {
16571659
c.to_resolved(
16581660
table_mapping
16591661
.namespace(TableNamespace::by_component_TODO())
1660-
.inject_table_id(),
1662+
.number_to_tablet(),
16611663
)
16621664
})
16631665
.transpose()?;
@@ -1674,12 +1676,9 @@ impl<RT: Runtime> Database<RT> {
16741676
.collect();
16751677
let mut table_numbers = table_numbers.into_iter();
16761678
let tablet_id = match table_numbers.next() {
1677-
Some(first_table) => {
1678-
table_mapping
1679-
.namespace(TableNamespace::by_component_TODO())
1680-
.inject_table_id()(first_table)?
1681-
.tablet_id
1682-
},
1679+
Some(first_table) => table_mapping
1680+
.namespace(TableNamespace::by_component_TODO())
1681+
.number_to_tablet()(first_table)?,
16831682
None => {
16841683
return Ok(SnapshotPage {
16851684
documents: vec![],
@@ -1738,7 +1737,7 @@ impl<RT: Runtime> Database<RT> {
17381737
let resolved_new_cursor = new_cursor.to_resolved(
17391738
table_mapping
17401739
.namespace(TableNamespace::by_component_TODO())
1741-
.inject_table_id(),
1740+
.number_to_tablet(),
17421741
)?;
17431742
let new_cache_key = ListSnapshotTableIteratorCacheEntry {
17441743
snapshot: *snapshot,
@@ -1908,8 +1907,7 @@ impl<RT: Runtime> Database<RT> {
19081907
let index_name = query
19091908
.index_name
19101909
.clone()
1911-
.to_resolved(table_mapping.name_to_id())?
1912-
.into();
1910+
.to_resolved(table_mapping.name_to_tablet())?;
19131911
let index = snapshot
19141912
.index_registry
19151913
.require_enabled(&index_name, &query.index_name)?;

crates/database/src/index_workers/fast_forward.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ use common::{
2929
UnixTimestamp,
3030
},
3131
types::{
32-
GenericIndexName,
3332
IndexId,
3433
TabletIndexName,
3534
},
@@ -46,7 +45,6 @@ use value::{
4645
ConvexValue,
4746
NamespacedTableMapping,
4847
ResolvedDocumentId,
49-
TabletId,
5048
};
5149

5250
use super::retriable_worker::retry_loop_expect_occs_and_overloaded;
@@ -274,8 +272,7 @@ pub async fn load_metadata_fast_forward_ts(
274272
let metadata_table_id = table_mapping.id(&INDEX_WORKER_METADATA_TABLE)?;
275273
let metadata_index_id = (*INDEX_DOC_ID_INDEX)
276274
.clone()
277-
.map_table(&table_mapping.name_to_id())?;
278-
let metadata_index_id: GenericIndexName<TabletId> = metadata_index_id.into();
275+
.map_table(&table_mapping.name_to_tablet())?;
279276
let metadata_index_internal_id = registry.get_enabled(&metadata_index_id).unwrap().id();
280277

281278
let id_value = ConvexValue::String(index.internal_id().to_string().try_into()?);

crates/database/src/index_workers/search_flusher.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,8 @@ impl<RT: Runtime, T: SearchIndex + 'static> SearchFlusher<RT, T> {
331331
) -> anyhow::Result<IndexBuildResult<T>> {
332332
let index_path = TempDir::new()?;
333333
let mut tx = self.database.begin(Identity::system()).await?;
334-
let table_id = tx.table_mapping().inject_table_number()(*job.index_name.table())?;
334+
let tablet_id = *job.index_name.table();
335+
let table_number = tx.table_mapping().tablet_number(tablet_id)?;
335336
let mut new_ts = tx.begin_timestamp();
336337
let (previous_segments, build_type) = match job.index_config.on_disk_state {
337338
SearchOnDiskState::Backfilling(ref backfill_state) => {
@@ -350,10 +351,7 @@ impl<RT: Runtime, T: SearchIndex + 'static> SearchFlusher<RT, T> {
350351
backfill_state.segments.clone(),
351352
MultipartBuildType::IncrementalComplete {
352353
cursor: cursor.map(|cursor| {
353-
ResolvedDocumentId::new(
354-
table_id.tablet_id,
355-
table_id.table_number.id(cursor),
356-
)
354+
ResolvedDocumentId::new(tablet_id, table_number.id(cursor))
357355
}),
358356
backfill_snapshot_ts,
359357
},

0 commit comments

Comments
 (0)