Namdak Tonpa 5 лет назад
Родитель
Сommit
b2fdb53ce4
3 измененных файлов с 8 добавлено и 5 удалено
  1. 1 1
      mix.exs
  2. 1 1
      src/kvs.app.src
  3. 6 3
      src/stores/kvs_st.erl

+ 1 - 1
mix.exs

@@ -2,7 +2,7 @@ defmodule KVS.Mixfile do
   use Mix.Project
 
   def project do
-    [app: :kvs, version: "6.7.7", description: "KVS Abstract Chain Database", package: package(), deps: deps()]
+    [app: :kvs, version: "6.9.0", description: "KVS Abstract Chain Database", package: package(), deps: deps()]
   end
 
   def application do

+ 1 - 1
src/kvs.app.src

@@ -1,6 +1,6 @@
 {application, kvs,
    [{description, "KVS Abstract Chain Database"},
-    {vsn, "6.7.7"},
+    {vsn, "6.9.0"},
     {registered, []},
     {applications, [kernel,stdlib,rocksdb]},
     {mod, { kvs, []}},

+ 6 - 3
src/stores/kvs_st.erl

@@ -89,16 +89,19 @@ add(#writer{args=M}=C) when element(2,M) == [] -> add(si(M,kvs:seq([],[])),C);
 add(#writer{args=M}=C) -> add(M,C).
 
 add(M,#writer{id=Feed,count=S}=C) -> NS=S+1,
+    raw_append(M,Feed),
+    C#writer{cache=M,count=NS}.
+
+raw_append(M,Feed) ->
     rocksdb:put(ref(),
        <<(list_to_binary(lists:concat(["/",kvs_rocks:format(Feed),"/"])))/binary,
-         (term_to_binary(id(M)))/binary>>, term_to_binary(M), [{sync,true}]),
-    C#writer{cache=M,count=NS}.
+         (term_to_binary(id(M)))/binary>>, term_to_binary(M), [{sync,true}]).
 
 append(Rec,Feed) ->
    kvs:ensure(#writer{id=Feed}),
    Id = element(2,Rec),
    case kvs:get(Feed,Id) of
-        {ok,_}    -> Id;
+        {ok,_}    -> raw_append(Rec,Feed), Id;
         {error,_} -> kvs:save(kvs:add((kvs:writer(Feed))#writer{args=Rec})), Id end.
 
 prev(_,_,_,_,_,_,N,C) when C == N -> C;