Unterstützt dies die Überprüfung des Schlüssels, wenn er in der DB vorhanden ist, ohne den Wert zurückzugeben / den Cache zu aktualisieren?
Ich habe schnell nachgesehen und konnte die entsprechende API in rocksdb nicht finden. Hast du dort nachgeschaut?
Wir können eine Methode in den Rostbindungen hinzufügen, aber ich denke, dass es ohne rocksdb-Unterstützung wenig Sinn macht.
Fühlen Sie sich frei, das Thema erneut zu öffnen, wenn ich etwas übersehen habe.
Rocksdb unterstützt diese Funktion.
Siehe andere Rust rocksdb-Implementierung
Weitere Referenzen: https://www.codota.com/code/java/methods/org.rocksdb.RocksDB/keyMayExist
Danke, aus irgendeinem Grund konnte ich diese Methoden nicht finden: https://github.com/facebook/rocksdb/blob/master/include/rocksdb/db.h#L653
Soweit ich sehen kann, werden diese Funktionen nicht über die C-API verfügbar gemacht. Ich habe die Pull-Anfrage gestellt: https://github.com/facebook/rocksdb/pull/7021
@DarkEld3r hey, die Methoden, die in Ihrem PR verfügbar gemacht werden, lesen immer noch die Werte, also unterscheiden sie sich nicht so sehr von get
IIUC. Glauben Sie, dass es möglich ist, eine Prüfung zu implementieren, ohne Werte in den Speicher zu laden?
Auch KeyMightExist
kann falsch positive IIUC zurückgeben.
gibt einen booleschen Wert zurück, der angibt, ob der Schlüssel nicht existiert oder existieren könnte.
Ah, sorry, ich habe den Kommentar falsch gelesen. Wenn Sie also null
value_found
angeben, wird der Wert tatsächlich nicht gelesen.
@stanislav-tkach dein PR facebook/rocksdb#7021 ist bereits zusammengeführt. Können wir Unterstützung hinzufügen?
@rohitjoshi Die neueste (6.11.4) rocksdb-Veröffentlichung war am 20. Juli und enthält leider nicht meine Änderungen. Ich nehme an, wir müssen auf die nächste Version warten.
Gibt es hierzu Neuigkeiten?
Soweit ich sehen kann, enthält die neueste RocksDB-Version die erforderlichen C-API-Änderungen, aber wir verwenden immer noch die Version 6.11.4.