diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-08-08 14:35:53 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-08-12 13:20:08 +1000 |
| commit | 30aaefca64445efa421edb93403036d59382920f (patch) | |
| tree | 18c06cdf0ad23493350dcbb1f611d0fad759917d /src/tangara/database/database.hpp | |
| parent | b5dc53670a259c3fdf2d3f20f52880f2218221d7 (diff) | |
| download | tangara-fw-30aaefca64445efa421edb93403036d59382920f.tar.gz | |
Batch up the db operations associated with adding new tracks
This is ostensibly yet another 'prepare for multithreaded updates'
commit, however it does actually save us another 60(!!) odd milliseconds
per track.
Diffstat (limited to 'src/tangara/database/database.hpp')
| -rw-r--r-- | src/tangara/database/database.hpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/tangara/database/database.hpp b/src/tangara/database/database.hpp index 2b385013..39665dbf 100644 --- a/src/tangara/database/database.hpp +++ b/src/tangara/database/database.hpp @@ -29,6 +29,7 @@ #include "leveldb/iterator.h" #include "leveldb/options.h" #include "leveldb/slice.h" +#include "leveldb/write_batch.h" #include "memory_resource.hpp" #include "result.hpp" #include "tasks.hpp" @@ -111,17 +112,18 @@ class Database { auto dbCalculateNextTrackId() -> void; auto dbMintNewTrackId() -> TrackId; - auto dbEntomb(TrackId track, uint64_t hash) -> void; - auto dbPutTrackData(const TrackData& s) -> void; auto dbGetTrackData(TrackId id) -> std::shared_ptr<TrackData>; - auto dbPutHash(const uint64_t& hash, TrackId i) -> void; - auto dbGetHash(const uint64_t& hash) -> std::optional<TrackId>; - auto dbCreateIndexesForTrack(const Track& track) -> void; + auto dbCreateIndexesForTrack(const Track&, leveldb::WriteBatch&) -> void; + auto dbCreateIndexesForTrack(const TrackData&, + const TrackTags&, + leveldb::WriteBatch&) -> void; + auto dbRemoveIndexes(std::shared_ptr<TrackData>) -> void; auto dbIngestTagHashes(const TrackTags&, - std::pmr::unordered_map<Tag, uint64_t>&) -> void; + std::pmr::unordered_map<Tag, uint64_t>&, + leveldb::WriteBatch&) -> void; auto dbRecoverTagsFromHashes(const std::pmr::unordered_map<Tag, uint64_t>&) -> std::shared_ptr<TrackTags>; |
