2
아래의 코드를 사용하면 db에 하나의 항목 만있을 것으로 예상됩니다. 이동을 위해 syndtr/goleveldb LevelDB 구현을 사용합니다.중복 LevelDB의 중복 키에 덮어 쓰기/쓰기 오류가 발생했습니다.
00000000 a8 ef d2 d4 17 00 01 01 00 00 00 00 00 00 00 01 |................|
00000010 00 00 00 01 03 6b 65 79 05 76 61 6c 75 65 10 23 |.....key.value.#|
00000020 44 b5 17 00 01 02 00 00 00 00 00 00 00 01 00 00 |D...............|
00000030 00 01 03 6b 65 79 05 76 61 6c 75 65 77 be 34 95 |...key.valuew.4.|
00000040 17 00 01 03 00 00 00 00 00 00 00 01 00 00 00 01 |................|
00000050 03 6b 65 79 05 76 61 6c 75 65 08 35 86 60 17 00 |.key.value.5.`..|
00000060 01 04 00 00 00 00 00 00 00 01 00 00 00 01 03 6b |...............k|
00000070 65 79 05 76 61 6c 75 65 6f 8c f6 00 17 00 01 05 |ey.valueo.......|
00000080 00 00 00 00 00 00 00 01 00 00 00 01 03 6b 65 79 |.............key|
00000090 05 76 61 6c 75 65 |.value|
00000096
나의 이해 LevelDB
에서 기본적으로 중복 된 키를 덮어 쓰거나 적어도 오류가 발생한다 :
for count := 0; count < 5; count++ {
err := db.Put([]byte("key"), []byte("value"))
if err != nil {
t.Error(err)
}
}
대신, 16 진 덤프는 5 개 항목이 있음을 알 수있다.
값이 덮어 쓰기됩니다 때 제어 할 수 있습니다 또는 어떻게 (Idb.Put(key)
? 는
compaction
이와 아무 상관이 있나요마다
db.Has(key)
을 확인 이외의 오류를 얻을 수있는 방법
?