You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ch...@apache.org on 2015/07/21 22:47:32 UTC

[1/3] couchdb-cassim git commit: Add enable cassim feature flag

Repository: couchdb-cassim
Updated Branches:
  refs/heads/add-manual-migration-logic 4c820a58b -> d21be8d7b (forced update)


Add enable cassim feature flag


Project: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/commit/e2ad37a5
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/tree/e2ad37a5
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/diff/e2ad37a5

Branch: refs/heads/add-manual-migration-logic
Commit: e2ad37a59040e593223bd426b1769a95368ca369
Parents: c6581f8
Author: Russell Branca <ch...@apache.org>
Authored: Fri Jun 26 22:15:08 2015 +0000
Committer: Russell Branca <ch...@apache.org>
Committed: Tue Jul 21 20:45:35 2015 +0000

----------------------------------------------------------------------
 src/cassim.erl          | 12 +++++++++++-
 src/cassim_security.erl |  2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/e2ad37a5/src/cassim.erl
----------------------------------------------------------------------
diff --git a/src/cassim.erl b/src/cassim.erl
index e838c53..3af0096 100644
--- a/src/cassim.erl
+++ b/src/cassim.erl
@@ -14,7 +14,9 @@
 
 
 -export([
-    is_enabled/0
+    is_enabled/0,
+    is_active/0,
+    metadata_db_exists/0
 ]).
 
 -export([
@@ -39,7 +41,15 @@
 -include_lib("couch/include/couch_db.hrl").
 
 
+is_active() ->
+    is_enabled() andalso metadata_db_exists().
+
+
 is_enabled() ->
+    config:get_boolean("cassim", "enable", false).
+
+
+metadata_db_exists() ->
     cassim_metadata_cache:metadata_db_exists().
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/e2ad37a5/src/cassim_security.erl
----------------------------------------------------------------------
diff --git a/src/cassim_security.erl b/src/cassim_security.erl
index e436f32..b9e5e0f 100644
--- a/src/cassim_security.erl
+++ b/src/cassim_security.erl
@@ -41,7 +41,7 @@ get_security(DbName) ->
 get_security(#db{name=DbName}, Options) ->
     get_security(DbName, Options);
 get_security(DbName, Options) ->
-    case cassim:is_enabled() of
+    case cassim:is_active() of
         true ->
             UserCtx = couch_util:get_value(user_ctx, Options, #user_ctx{}),
             Doc = get_security_doc(DbName),


[2/3] couchdb-cassim git commit: Add manual security doc migration logic

Posted by ch...@apache.org.
Add manual security doc migration logic


Project: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/commit/14c66b8d
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/tree/14c66b8d
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/diff/14c66b8d

Branch: refs/heads/add-manual-migration-logic
Commit: 14c66b8dbee64a34725e1a93937e5494ec383164
Parents: e2ad37a
Author: Russell Branca <ch...@apache.org>
Authored: Fri Jun 26 22:17:01 2015 +0000
Committer: Russell Branca <ch...@apache.org>
Committed: Tue Jul 21 20:45:41 2015 +0000

----------------------------------------------------------------------
 src/cassim.erl                | 33 +++++++++++++++++++++++++++++++++
 src/cassim_metadata_cache.erl |  3 ++-
 2 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/14c66b8d/src/cassim.erl
----------------------------------------------------------------------
diff --git a/src/cassim.erl b/src/cassim.erl
index 3af0096..65d942c 100644
--- a/src/cassim.erl
+++ b/src/cassim.erl
@@ -37,6 +37,11 @@
     set_security/3
 ]).
 
+-export([
+    migrate_database/1,
+    migrate_databases/0
+]).
+
 
 -include_lib("couch/include/couch_db.hrl").
 
@@ -95,3 +100,31 @@ set_security(DbName, SecObj) ->
 
 set_security(DbName, SecObj, Options) ->
     cassim_security:set_security(DbName, SecObj, Options).
+
+
+migrate_databases() ->
+    {ok, Dbs} = fabric:all_dbs(),
+    lists:foldl(
+        fun(DbName, Errors) ->
+            try
+                MetaId = cassim_metadata_cache:security_meta_id(DbName),
+                case cassim_metadata_cache:fetch_cached_meta(MetaId) of
+                    undefined ->
+                        ok = migrate_database(DbName);
+                    _ ->
+                        ok
+                end,
+                Errors
+            catch Error:Reason ->
+                [{DbName, Error, Reason} | Errors]
+            end
+        end,
+        [],
+        Dbs
+    ).
+
+
+migrate_database(DbName) ->
+    SecProps = fabric:get_security(DbName),
+    {ok, _Props} = cassim_security:migrate_security_props(DbName, SecProps),
+    ok.

http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/14c66b8d/src/cassim_metadata_cache.erl
----------------------------------------------------------------------
diff --git a/src/cassim_metadata_cache.erl b/src/cassim_metadata_cache.erl
index 002ee43..35b5dad 100644
--- a/src/cassim_metadata_cache.erl
+++ b/src/cassim_metadata_cache.erl
@@ -31,6 +31,7 @@
     load_meta/1,
     load_meta/2,
     load_meta/3,
+    fetch_cached_meta/1,
     metadata_db/0,
     metadata_db_exists/0,
     cleanup_old_docs/1
@@ -211,7 +212,7 @@ load_meta_from_db(DbName, MetaId) ->
             {error, timeout};
         Resp ->
             couch_log:notice(
-                "unexpected response retrieving metadata doc [~s/]~s: ~s",
+                "unexpected response retrieving metadata doc [~s/]~s: ~p",
                 [DbName, MetaId, Resp]),
             {error, Resp}
      end.


[3/3] couchdb-cassim git commit: Add stats for doc migrations and metadata cache lookups

Posted by ch...@apache.org.
Add stats for doc migrations and metadata cache lookups


Project: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/commit/d21be8d7
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/tree/d21be8d7
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/diff/d21be8d7

Branch: refs/heads/add-manual-migration-logic
Commit: d21be8d7bded5c886b172f278bc9c955a3a25c89
Parents: 14c66b8
Author: Russell Branca <ch...@apache.org>
Authored: Fri Jun 26 22:18:38 2015 +0000
Committer: Russell Branca <ch...@apache.org>
Committed: Tue Jul 21 20:45:41 2015 +0000

----------------------------------------------------------------------
 priv/stat_descriptions.cfg    | 17 +++++++++++++++++
 src/cassim_metadata_cache.erl |  3 +++
 src/cassim_security.erl       |  4 ++++
 3 files changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/d21be8d7/priv/stat_descriptions.cfg
----------------------------------------------------------------------
diff --git a/priv/stat_descriptions.cfg b/priv/stat_descriptions.cfg
new file mode 100644
index 0000000..a007f7a
--- /dev/null
+++ b/priv/stat_descriptions.cfg
@@ -0,0 +1,17 @@
+{[cassim, metadata_cache, hit], [
+    {type, counter},
+    {desc, <<"number of cassim metadata cache lookup hits">>}
+]}.
+{[cassim, metadata_cache, miss], [
+    {type, counter},
+    {desc, <<"number of cassim metadata cache lookup misses">>}
+]}.
+{[cassim, security_migration, success], [
+    {type, counter},
+    {desc, <<"number of successful cassim security doc migrations">>}
+]}.
+{[cassim, security_migration, conflict], [
+    {type, counter},
+    {desc, <<"number of conflicted cassim security doc migrations">>}
+]}.
+

http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/d21be8d7/src/cassim_metadata_cache.erl
----------------------------------------------------------------------
diff --git a/src/cassim_metadata_cache.erl b/src/cassim_metadata_cache.erl
index 35b5dad..920f748 100644
--- a/src/cassim_metadata_cache.erl
+++ b/src/cassim_metadata_cache.erl
@@ -240,11 +240,14 @@ load_meta(MetaId, _UseCache=false, Db) ->
 fetch_cached_meta(MetaId) ->
     try ets:lookup(?META_TABLE, MetaId) of
         [{MetaId, Props}] ->
+            couch_stats:increment_counter([cassim, metadata_cache, hit]),
             Props;
         [] ->
+            couch_stats:increment_counter([cassim, metadata_cache, miss]),
             couch_log:notice("cache miss on metadata ~s", [MetaId]),
             undefined
         catch error:badarg ->
+            couch_stats:increment_counter([cassim, metadata_cache, miss]),
             couch_log:notice("cache miss on metadata ~s", [MetaId]),
             undefined
     end.

http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/d21be8d7/src/cassim_security.erl
----------------------------------------------------------------------
diff --git a/src/cassim_security.erl b/src/cassim_security.erl
index b9e5e0f..6afada2 100644
--- a/src/cassim_security.erl
+++ b/src/cassim_security.erl
@@ -71,8 +71,12 @@ get_security_doc(DbName0, RetryCnt) ->
             SecProps = fabric:get_security(DbName),
             try migrate_security_props(DbName, SecProps) of
                 {ok, SecDoc} ->
+                    couch_stats:increment_counter(
+                        [cassim, security_migration, success]),
                     SecDoc
             catch conflict ->
+                couch_stats:increment_counter(
+                    [cassim, security_migration, conflict]),
                 get_security_doc(DbName0, RetryCnt-1)
             end;
         {error, Error} ->