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} ->