When data is written to Chroma, it's first committed to our write-ahead log ( Wal3), then indexed and persisted to object storage asynchronously. This architecture lets Chroma handle high-throughput writes without blocking, but until now, there was no way to know how much of your data had actually been indexed.
IndexingStatus tracks the progress of indexing operations in a Chroma collection. You can now call get_indexing_status() on any collection to see exactly where things stand.
The response includes:
num_indexed_ops: Operations that have been fully indexednum_unindexed_ops: Operations still in the WAL, pending indexingtotal_ops: Total operation count (adds, updates, upserts, and deletes)op_indexing_progress: A float from 0.0 to 1.0 representing the proportion indexed
let status = collection.get_indexing_status().await?;
println!("Indexed: {}", status.num_indexed_ops);
println!("Pending: {}", status.num_unindexed_ops);
println!("Total: {}", status.total_ops);
println!("Progress: {:.1}%%", status.op_indexing_progress * 100.0);
status = collection.get_indexing_status()
print(f"Indexed: {status.num_indexed_ops}")
print(f"Pending: {status.num_unindexed_ops}")
print(f"Total: {status.total_ops}")
print(f"Progress: {status.op_indexing_progress:.1%}")
const status = await collection.getIndexingStatus();
console.log(`Indexed: ${status.numIndexedOps}`);
console.log(`Pending: ${status.numUnindexedOps}`);
console.log(`Total: ${status.totalOps}`);
console.log(`Progress: ${(status.opIndexingProgress * 100).toFixed(1)}%%`);
IndexingStatus is available today on Chroma Cloud.