μλ
νμΈμ,
prefix_iterator
μ μ΅μ
( set_prefix_extractor
)μμ μ μΈ ν κ²λ³΄λ€ κΈ΄ μ λμ¬λ₯Ό μ 곡νλ κ²½μ°.
μ€λ₯κ° λ°μνμ§ μκ³ λλ¨Έμ§ μ λμ¬λ₯Ό 무μνμ§ μμΌλ©° Fromκ³Ό ν¨κ» μ λμ¬μ²λΌ μλν©λλ€.
μ΄λ κ² :
set_prefix_extractor(len)
myp = &[1u8; len+1];
prefix(myp[..len]) + From(myp)
κ·Έλ¦¬κ³ μ€μ μμ μ :
let prefix_extractor = rocksdb::SliceTransform::create_fixed_prefix(1);
let mut opts = Options::default();
opts.create_if_missing(true);
opts.set_prefix_extractor(prefix_extractor);
let db = DB::open(&opts, &tempdir).unwrap();
db.put(&[0,0,0,0], &[0,0,0,0]).unwrap();
db.put(&[0,0,0,1], &[0,0,0,1]).unwrap();
db.put(&[0,1,0,1], &[0,1,0,1]).unwrap();
db.put(&[0,1,1,1], &[0,1,1,1]).unwrap();
db.put(&[0,1,2,1], &[0,1,2,1]).unwrap();
db.put(&[2,0,0,0], &[2,0,0,0]).unwrap();
db.put(&[2,2,2,2], &[2,2,2,2]).unwrap();
let me = db.prefix_iterator(&[0,1,0]);
for (key, value) in me {
println!("Saw {:?} {:?}", key, value);
}
κ·Έλ¬λ©΄ λ€μ κ²°κ³Όκ° μΈμλ©λλ€.
Saw [0, 1, 0, 1] [0, 1, 0, 1]
Saw [0, 1, 1, 1] [0, 1, 1, 1]
Saw [0, 1, 2, 1] [0, 1, 2, 1]
λ°λΌμ 첫 λ²μ§Έ λ°μ΄νΈλ μ€μ μ λμ¬μ²λΌ μλνμ§λ§ (μ νν μΌμΉνλ) λλ¨Έμ§λ μ λμ¬λ 무μλμ§λ μκ³ "From"μΌλ‘ μ¬μ©λ©λλ€ ([0,0μΌλ‘ μμνλ λͺ¨λ κ²μ 무μνλ κ²μ λ³Ό μ μμ΅λλ€. ] κ·Έλ¬λ [0,2]μ κ°μ λ ν° λ°μ΄νΈ ν¬ν¨)
μ΄κ²μ΄ μνλ λμμ λκΉ μλλ©΄ λ²κ·Έμ λκΉ?
λλ λΉμ μ΄λ³΄κ³ μλ νλμ΄ ν΅μ¬ λΌμ΄λΈλ¬λ¦¬κ° ꡬνλλ λ°©μ λλ¬Έμ΄λΌκ³ μκ°ν©λλ€. μ΄κ²μ΄ μλ λ κ²μΈμ§ "μ μλμ§ μμ λμ"μΈμ§ νμ€νμ§ μμ΅λλ€.
@elichai λ«μλλ©λκΉ μλλ©΄μ΄ μΈμ΄ λ°μΈλ©μ λ¬Έμ κ° μλ€κ³ μκ°νμλκΉ?
ν μ€μ λ‘ C ++ μ½λμ μλμ§ νμΈνμ§ μμμΌλ―λ‘ idk.
μκ°μ΄ μμΌλ©΄ 곧 νμΈν μμμ κ²μ
λλ€ (C ++ κ°λ°μκ° μλ).
@iSynaptic λ³λμ λ¬Έμ κ°
write_batchμ put
ν¨μμλ try!
ν¬ν¨λμ΄ μμ§ μμ§λ§ κ²°κ³Όλ₯Ό λ°νν©λλ€.
μ΄κ²μ μλ λ κ²μ
λκΉ? μ?
https://github.com/rust-rocksdb/rust-rocksdb/blob/master/src/db.rs#L1147
@elichai μ€λ₯ κ°λ₯μ±μ ꡬν μΈλΆ μ¬νμ΄λ―λ‘ μλ λ λμμ΄λΌκ³ μκ°ν©λλ€. μμΌλ‘ μ¬μ©μ μ© APIλ₯Ό λ³κ²½νμ§ μκ³ μ΄ λ΄λΆ ꡬνμ λ³κ²½ν μ μμ΅λλ€.
@elichai μ΄μ prefix_iterator
μ΄ μ΄μνκ² μλνμ§λ§ μ€κ³λλλ‘ μλνλ€λ λ° λμν©λλ€. # 254μμ λμμ κ²μ¦νκ³ λμμ μ€λͺ
νλ μ£Όμμ ν¬ν¨νλ ν
μ€νΈλ₯Ό μΆκ°νμ΅λλ€ (μλ μΈμ©). λ΄κ° _ μκ°νλ _ μνλ λμμ λ°λΌ μΌλ° λ°λ³΅κΈ°λ₯Ό μ¬μ©νκ³ μμ μ ReadOptions
μ 곡ν΄μΌν©λλ€. μ΄κ²μ # 253μμ νμ±νλ©λλ€.
μ€λͺ :
db.prefix_iterator
λ μ 체prefix
μ μΌμΉνλ 첫 λ²μ§Έ ν€λ₯Ό μ°Ύλλ‘ κΈ°λ³Έ μ΅μ μ μ€μ ν©λλ€. μ¬κΈ°μμ λ°λ³΅κΈ°λkey
μμ μΆμΆ λ μ λμ¬κ°prefix
μμ μΆμΆ λ μ λμ¬μ μΌμΉνλ ν μμ κ³μ μ½μ΅λλ€.
@vitvakatu @aleksuss λ°λ³΅μλ₯Ό ꡬμ±νκ³ κ°λ₯ν ν λ¨μννλ λͺ¨λ ν¨μλ₯Ό μ΄ν΄ λ΄μΌνλ€κ³ μκ°ν©λλ€. λ€μ νΌλ μ€λ½μ΅λλ€. λͺ κ°μ§ μμ΄λμ΄κ° μκ³ PRμ ν¨κ» ν μ μμ΅λλ€.