summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-08-18 14:43:20 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-08-18 14:43:20 +0100
commite2a4881bd65bcee19b1f3ccde7c9332a0a5cbc9c (patch)
tree644f332b1c5edfd92c308b69db9a250377505a3d
parentf3114630d7c5eac34e80da0fc03469698eeab3bd (diff)
downloadrabbitmq-server-git-e2a4881bd65bcee19b1f3ccde7c9332a0a5cbc9c.tar.gz
Backed out changeset c47670da4830 - I decided the dedup cache shouldn't be mangled with.
-rw-r--r--src/rabbit_msg_store.erl12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl
index 4104130d9a..4ca91aa1b5 100644
--- a/src/rabbit_msg_store.erl
+++ b/src/rabbit_msg_store.erl
@@ -939,7 +939,7 @@ remove_message(Guid, State = #msstate { sum_valid_data = SumValid,
%% don't remove from CUR_FILE_CACHE_ETS_NAME here because
%% there may be further writes in the mailbox for the same
%% msg.
- ok = decrement_cache(DedupCacheEts, Guid),
+ ok = remove_cache_entry(DedupCacheEts, Guid),
[#file_summary { valid_total_size = ValidTotalSize,
contiguous_top = ContiguousTop,
locked = Locked }] =
@@ -1104,6 +1104,10 @@ update_msg_cache(CacheEts, Guid, Msg) ->
fun () -> update_msg_cache(CacheEts, Guid, Msg) end)
end.
+remove_cache_entry(DedupCacheEts, Guid) ->
+ true = ets:delete(DedupCacheEts, Guid),
+ ok.
+
fetch_and_increment_cache(DedupCacheEts, Guid) ->
case ets:lookup(DedupCacheEts, Guid) of
[] ->
@@ -1119,8 +1123,8 @@ fetch_and_increment_cache(DedupCacheEts, Guid) ->
decrement_cache(DedupCacheEts, Guid) ->
true = safe_ets_update_counter(
DedupCacheEts, Guid, {3, -1},
- fun (N) when N < 0 -> true = ets:delete(DedupCacheEts, Guid);
- (_N) -> true
+ fun (N) when N =< 0 -> true = ets:delete(DedupCacheEts, Guid);
+ (_N) -> true
end,
%% Guid is not in there because although it's been
%% delivered, it's never actually been read (think:
@@ -1421,7 +1425,6 @@ maybe_roll_to_new_file(
current_file = CurFile,
file_summary_ets = FileSummaryEts,
cur_file_cache_ets = CurFileCacheEts,
- dedup_cache_ets = DedupCacheEts,
file_size_limit = FileSizeLimit })
when Offset >= FileSizeLimit ->
State1 = internal_sync(State),
@@ -1440,7 +1443,6 @@ maybe_roll_to_new_file(
true = ets:update_element(FileSummaryEts, CurFile,
{#file_summary.right, NextFile}),
true = ets:match_delete(CurFileCacheEts, {'_', '_', 0}),
- true = ets:match_delete(DedupCacheEts, {'_', '_', 0}),
maybe_compact(State1 #msstate { current_file_handle = NextHdl,
current_file = NextFile });
maybe_roll_to_new_file(_, State) ->