- /* fetch it */
- rc = db->get( db, txn, &key, &data, bdb->bi_db_opflags );
+ /* lookup cache */
+ cached_id = bdb_cache_find_entry_ndn2id(be, &bdb->bi_cache, &dn);
+
+ if (cached_id != NOID) {
+ rc = 0;
+ *id = cached_id;
+ if ( dn.bv_val != buf+1 ) {
+ *id2 = *id;
+ }
+ break;
+ } else {
+ /* fetch it */
+ rc = db->get(db, txn, &key, &data, bdb->bi_db_opflags );
+ }