rocksdb_readoptions_set_pin_data(roptions, 0);
}
+ StartPhase("addfile");
+ {
+ rocksdb_envoptions_t* env_opt = rocksdb_envoptions_create();
+ rocksdb_options_t* io_options = rocksdb_options_create();
+ rocksdb_sstfilewriter_t* writer =
+ rocksdb_sstfilewriter_create(env_opt, io_options);
+
+ unlink(sstfilename);
+ rocksdb_sstfilewriter_open(writer, sstfilename, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_add(writer, "sstk1", 5, "v1", 2, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_add(writer, "sstk2", 5, "v2", 2, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_add(writer, "sstk3", 5, "v3", 2, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_finish(writer, &err);
+ CheckNoError(err);
+
+ rocksdb_ingestexternalfileoptions_t* ing_opt =
+ rocksdb_ingestexternalfileoptions_create();
+ const char* file_list[1] = {sstfilename};
+ rocksdb_ingest_external_file(db, file_list, 1, ing_opt, &err);
+ CheckNoError(err);
+ CheckGet(db, roptions, "sstk1", "v1");
+ CheckGet(db, roptions, "sstk2", "v2");
+ CheckGet(db, roptions, "sstk3", "v3");
+
+ unlink(sstfilename);
+ rocksdb_sstfilewriter_open(writer, sstfilename, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_add(writer, "sstk2", 5, "v4", 2, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_add(writer, "sstk22", 6, "v5", 2, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_add(writer, "sstk3", 5, "v6", 2, &err);
+ CheckNoError(err);
+ rocksdb_sstfilewriter_finish(writer, &err);
+ CheckNoError(err);
+
+ rocksdb_ingest_external_file(db, file_list, 1, ing_opt, &err);
+ CheckNoError(err);
+ CheckGet(db, roptions, "sstk1", "v1");
+ CheckGet(db, roptions, "sstk2", "v4");
+ CheckGet(db, roptions, "sstk22", "v5");
+ CheckGet(db, roptions, "sstk3", "v6");
+
+ rocksdb_ingestexternalfileoptions_destroy(ing_opt);
+ rocksdb_sstfilewriter_destroy(writer);
+ rocksdb_options_destroy(io_options);
+ rocksdb_envoptions_destroy(env_opt);
+
+ // Delete all keys we just ingested
+ rocksdb_delete(db, woptions, "sstk1", 5, &err);
+ CheckNoError(err);
+ rocksdb_delete(db, woptions, "sstk2", 5, &err);
+ CheckNoError(err);
+ rocksdb_delete(db, woptions, "sstk22", 6, &err);
+ CheckNoError(err);
+ rocksdb_delete(db, woptions, "sstk3", 5, &err);
+ CheckNoError(err);
+ }
+
StartPhase("writebatch");
{
rocksdb_writebatch_t* wb = rocksdb_writebatch_create();
rocksdb_release_snapshot(db, snap);
}
- StartPhase("addfile");
- {
- rocksdb_envoptions_t* env_opt = rocksdb_envoptions_create();
- rocksdb_options_t* io_options = rocksdb_options_create();
- rocksdb_sstfilewriter_t* writer =
- rocksdb_sstfilewriter_create(env_opt, io_options);
-
- unlink(sstfilename);
- rocksdb_sstfilewriter_open(writer, sstfilename, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_add(writer, "sstk1", 5, "v1", 2, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_add(writer, "sstk2", 5, "v2", 2, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_add(writer, "sstk3", 5, "v3", 2, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_finish(writer, &err);
- CheckNoError(err);
-
- rocksdb_ingestexternalfileoptions_t* ing_opt =
- rocksdb_ingestexternalfileoptions_create();
- const char* file_list[1] = {sstfilename};
- rocksdb_ingest_external_file(db, file_list, 1, ing_opt, &err);
- CheckNoError(err);
- CheckGet(db, roptions, "sstk1", "v1");
- CheckGet(db, roptions, "sstk2", "v2");
- CheckGet(db, roptions, "sstk3", "v3");
-
- unlink(sstfilename);
- rocksdb_sstfilewriter_open(writer, sstfilename, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_add(writer, "sstk2", 5, "v4", 2, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_add(writer, "sstk22", 6, "v5", 2, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_add(writer, "sstk3", 5, "v6", 2, &err);
- CheckNoError(err);
- rocksdb_sstfilewriter_finish(writer, &err);
- CheckNoError(err);
-
- rocksdb_ingest_external_file(db, file_list, 1, ing_opt, &err);
- CheckNoError(err);
- CheckGet(db, roptions, "sstk1", "v1");
- CheckGet(db, roptions, "sstk2", "v4");
- CheckGet(db, roptions, "sstk22", "v5");
- CheckGet(db, roptions, "sstk3", "v6");
-
- rocksdb_ingestexternalfileoptions_destroy(ing_opt);
- rocksdb_sstfilewriter_destroy(writer);
- rocksdb_options_destroy(io_options);
- rocksdb_envoptions_destroy(env_opt);
- }
-
StartPhase("repair");
{
// If we do not compact here, then the lazy deletion of