You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2023/05/23 17:32:16 UTC

[couchdb] branch back-to-requests-2.71.1 created (now b207288b8)

This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a change to branch back-to-requests-2.71.1
in repository https://gitbox.apache.org/repos/asf/couchdb.git


      at b207288b8 Use a faster sets implementation available since OTP 24

This branch includes the following new commits:

     new b207288b8 Use a faster sets implementation available since OTP 24

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[couchdb] 01/01: Use a faster sets implementation available since OTP 24

Posted by va...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch back-to-requests-2.71.1
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit b207288b86660fa0b75bc5538d145b4a61632081
Author: Nick Vatamaniuc <va...@gmail.com>
AuthorDate: Tue May 23 12:19:40 2023 -0400

    Use a faster sets implementation available since OTP 24
    
    Since OTP 24 a version of sets implemented using maps is available [1]
    
    Replace a few case where we use sets with the new implementation.
    
    [1] https://www.erlang.org/doc/man/sets.html
---
 src/global_changes/src/global_changes_listener.erl | 6 +++---
 src/global_changes/src/global_changes_server.erl   | 6 +++---
 src/mango/requirements.txt                         | 5 +++--
 src/mem3/src/mem3_sync_event_listener.erl          | 6 +++---
 4 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/global_changes/src/global_changes_listener.erl b/src/global_changes/src/global_changes_listener.erl
index 71d14e274..924071ee1 100644
--- a/src/global_changes/src/global_changes_listener.erl
+++ b/src/global_changes/src/global_changes_listener.erl
@@ -55,7 +55,7 @@ init(_) ->
     State = #state{
         update_db = UpdateDb,
         pending_update_count = 0,
-        pending_updates = sets:new(),
+        pending_updates = sets:new([{version, 2}]),
         max_event_delay = MaxEventDelay,
         dbname = global_changes_util:get_dbname()
     },
@@ -99,7 +99,7 @@ handle_cast({set_update_db, Boolean}, State0) ->
             {false, true} ->
                 State0#state{
                     update_db = Boolean,
-                    pending_updates = sets:new(),
+                    pending_updates = sets:new([{version, 2}]),
                     pending_update_count = 0,
                     last_update_time = undefined
                 };
@@ -141,7 +141,7 @@ maybe_send_updates(#state{update_db = true} = State) ->
                         0
                     ),
                     State1 = State#state{
-                        pending_updates = sets:new(),
+                        pending_updates = sets:new([{version, 2}]),
                         pending_update_count = 0,
                         last_update_time = undefined
                     },
diff --git a/src/global_changes/src/global_changes_server.erl b/src/global_changes/src/global_changes_server.erl
index e9a9c5fb4..0e4cea14e 100644
--- a/src/global_changes/src/global_changes_server.erl
+++ b/src/global_changes/src/global_changes_server.erl
@@ -69,7 +69,7 @@ init([]) ->
     State = #state{
         update_db = UpdateDb,
         pending_update_count = 0,
-        pending_updates = sets:new(),
+        pending_updates = sets:new([{version, 2}]),
         max_write_delay = MaxWriteDelay,
         dbname = GlobalChangesDbName,
         handler_ref = erlang:monitor(process, Handler)
@@ -106,7 +106,7 @@ handle_cast({set_update_db, Boolean}, State0) ->
             {false, true} ->
                 State0#state{
                     update_db = Boolean,
-                    pending_updates = sets:new(),
+                    pending_updates = sets:new([{version, 2}]),
                     pending_update_count = 0
                 };
             _ ->
@@ -177,7 +177,7 @@ flush_updates(State) ->
         0
     ),
     {noreply, State#state{
-        pending_updates = sets:new(),
+        pending_updates = sets:new([{version, 2}]),
         pending_update_count = 0
     }}.
 
diff --git a/src/mango/requirements.txt b/src/mango/requirements.txt
index d37f763fa..e63cbdde7 100644
--- a/src/mango/requirements.txt
+++ b/src/mango/requirements.txt
@@ -1,4 +1,5 @@
 nose2==0.11.0
-requests==2.31.0
+# requests 2.27.1 is the highest supported version
+# on ubuntu 18 and centos 7 CI workers
+requests==2.27.1
 hypothesis==6.31.6
-
diff --git a/src/mem3/src/mem3_sync_event_listener.erl b/src/mem3/src/mem3_sync_event_listener.erl
index a01921f85..4389291a3 100644
--- a/src/mem3/src/mem3_sync_event_listener.erl
+++ b/src/mem3/src/mem3_sync_event_listener.erl
@@ -63,7 +63,7 @@ init(_) ->
     ok = subscribe_for_config(),
     Delay = config:get_integer("mem3", "sync_delay", 5000),
     Frequency = config:get_integer("mem3", "sync_frequency", 500),
-    Buckets = lists:duplicate(Delay div Frequency + 1, sets:new()),
+    Buckets = lists:duplicate(Delay div Frequency + 1, sets:new([{version, 2}])),
     St = #state{
         nodes = mem3_sync:nodes_db(),
         shards = mem3_sync:shards_db(),
@@ -163,7 +163,7 @@ rebucket_shards(Frequency, Delay, Buckets0) ->
             [sets:union([B | ToMerge]) | Buckets1];
         M ->
             %% Extend the number of buckets by M
-            lists:duplicate(M, sets:new()) ++ Buckets0
+            lists:duplicate(M, sets:new([{version, 2}])) ++ Buckets0
     end.
 
 %% To ensure that mem3_sync:push/2 is indeed called with roughly the frequency
@@ -180,7 +180,7 @@ maybe_push_shards(St) ->
     case Delta > Frequency of
         true ->
             {Buckets1, [ToPush]} = lists:split(length(Buckets0) - 1, Buckets0),
-            Buckets2 = [sets:new() | Buckets1],
+            Buckets2 = [sets:new([{version, 2}]) | Buckets1],
             %% There's no sets:map/2!
             sets:fold(
                 fun(ShardName, _) -> push_shard(ShardName) end,