at protocol indexer with flexible filtering, xrpc queries, and a cursor-backed event stream, built on fjall
at-protocol atproto indexer rust fjall

[db] increase memtable size for filter and crawler keyspaces

ptr.pet 99d1ffac beaf30a4

verified
+6 -3
+1 -1
src/config.rs
··· 103 103 s.split(',') 104 104 .map(|s| Url::parse(s.trim())) 105 105 .collect::<Result<Vec<_>, _>>() 106 - .map_err(|e| miette::miette!("invalid PLC URL: {}", e)) 106 + .map_err(|e| miette::miette!("invalid PLC URL: {e}")) 107 107 }) 108 108 .unwrap_or_else(|| Ok(vec![Url::parse("https://plc.wtf").unwrap()]))?; 109 109
+5 -2
src/db/mod.rs
··· 183 183 .data_block_size_policy(BlockSizePolicy::all(kb(1))), 184 184 )?; 185 185 186 - // filter handles high-volume point reads (checking explicit DID includes and excludes from firehose) 186 + // filter handles high-volume point reads (checking excludes from firehose) 187 187 // so it needs the bloom filter 188 188 let filter = open_ks( 189 189 "filter", 190 190 // this can be pretty small since the DIDs wont be compressed that well anyhow 191 - opts().data_block_size_policy(BlockSizePolicy::all(kb(1))), 191 + opts() 192 + .max_memtable_size((kb(1024) * 16) as u64) 193 + .data_block_size_policy(BlockSizePolicy::all(kb(1))), 192 194 )?; 193 195 194 196 let crawler = open_ks( 195 197 "crawler", 196 198 opts() 197 199 .expect_point_read_hits(true) 200 + .max_memtable_size((kb(1024) * 16) as u64) 198 201 .data_block_size_policy(BlockSizePolicy::all(kb(1))), 199 202 )?; 200 203