diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-12-03 12:44:34 -0600 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2020-03-02 12:26:22 -0600 |
commit | 1b79e11f15513c33ae4df858d0f471976e9c1b9b (patch) | |
tree | 4030dc3750df1f2a4b47f926c69987fce47494d5 /src/fabric/src/fabric2_fdb.erl | |
parent | 1511b6d84ef8065ef4bbc64824a3f95ef067dff5 (diff) | |
download | couchdb-1b79e11f15513c33ae4df858d0f471976e9c1b9b.tar.gz |
Implement async API for `fabric2_fdb:get_info/1`
Diffstat (limited to 'src/fabric/src/fabric2_fdb.erl')
-rw-r--r-- | src/fabric/src/fabric2_fdb.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/fabric/src/fabric2_fdb.erl b/src/fabric/src/fabric2_fdb.erl index 8bfbb749a..0e7cba859 100644 --- a/src/fabric/src/fabric2_fdb.erl +++ b/src/fabric/src/fabric2_fdb.erl @@ -29,6 +29,8 @@ list_dbs/4, get_info/1, + get_info_future/2, + get_info_wait/1, set_config/3, get_stat/2, @@ -333,7 +335,10 @@ get_info(#{} = Db) -> tx := Tx, db_prefix := DbPrefix } = ensure_current(Db), + get_info_wait(get_info_future(Tx, DbPrefix)). + +get_info_future(Tx, DbPrefix) -> {CStart, CEnd} = erlfdb_tuple:range({?DB_CHANGES}, DbPrefix), ChangesFuture = erlfdb:get_range(Tx, CStart, CEnd, [ {streaming_mode, exact}, @@ -344,6 +349,10 @@ get_info(#{} = Db) -> StatsPrefix = erlfdb_tuple:pack({?DB_STATS}, DbPrefix), MetaFuture = erlfdb:get_range_startswith(Tx, StatsPrefix), + {DbPrefix, ChangesFuture, MetaFuture}. + + +get_info_wait({DbPrefix, ChangesFuture, MetaFuture}) -> RawSeq = case erlfdb:wait(ChangesFuture) of [] -> vs_to_seq(fabric2_util:seq_zero_vs()); |