graphiti 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db292ffdb5b46b46d42e012cd68acc342649e28fc6f9cf7c5769db4e0b4bda21
4
- data.tar.gz: 2ae2161355c2dccf3fc833831f39eff69639967885e81f25594b75de4fcaca22
3
+ metadata.gz: d9fe56af10e2f476d55ff2d367e4efd0841f73afbe4d4f95cae0f9ab81f6a39e
4
+ data.tar.gz: 4d3037e59ed89ed1bfb5bd4af49d6cd80038661907d8983ecfd5a17afa96c061
5
5
  SHA512:
6
- metadata.gz: 57306d14268453ee0629e952ff85f23becb6bb2f76b9f238bd7f9030214181020baa3ea227f23d23225cb8e67398a693d1662c2f4d2e64a67629b46a8b47cf16
7
- data.tar.gz: a60d925e5fedb2fe79813d128cc5a6f2fb957bce509372c4b22456b04eab2f795bdbd1d1937cdf1176883338845567648e84cc8d7dd03844b0cafefb2f2d140f
6
+ metadata.gz: f09aeaedda7fc10d97270fe89789fb1b038a2efe4615136fe1ccc576059c5af4b57c9bf97a0f79e38d240ba44f99b4d31f662b27a7d7f3128622bb8ae60429ef
7
+ data.tar.gz: 5c965ae2e16ceb97a7e2aa5341cff1e039a8f43d17c2766c884adfb9b0f1ae16fd5df16f1ca7973b3b27face19f80a6e541c43558f9dfbaedf72909b6ae8c361
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  graphiti changelog
2
2
 
3
+ ## [1.6.3](https://github.com/graphiti-api/graphiti/compare/v1.6.2...v1.6.3) (2024-03-26)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * Remove thread pool executor logic until we get a better handle on what's causing thread pool hangs. refs [#469](https://github.com/graphiti-api/graphiti/issues/469) ([7941b6f](https://github.com/graphiti-api/graphiti/commit/7941b6f75ce1001b034ed6e83c148b893e9f3d99)), closes [#471](https://github.com/graphiti-api/graphiti/issues/471) [#470](https://github.com/graphiti-api/graphiti/issues/470)
9
+
10
+ ## [1.6.2](https://github.com/graphiti-api/graphiti/compare/v1.6.1...v1.6.2) (2024-03-22)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * thread pool scope and mutex need to be global across all instances of Scope for it to be a global thread pool ([#471](https://github.com/graphiti-api/graphiti/issues/471)) ([51fb51c](https://github.com/graphiti-api/graphiti/commit/51fb51c31f0043d98aa07f689a8cf8c758fa823b))
16
+
3
17
  ## [1.6.1](https://github.com/graphiti-api/graphiti/compare/v1.6.0...v1.6.1) (2024-03-22)
4
18
 
5
19
 
@@ -8,20 +8,6 @@ module Graphiti
8
8
  # Defaults to false OR if classes are cached (Rails-only)
9
9
  attr_accessor :concurrency
10
10
 
11
- # This number must be considered in accordance with the database
12
- # connection pool size configured in `database.yml`. The connection
13
- # pool should be large enough to accommodate both the foreground
14
- # threads (ie. web server or job worker threads) and background
15
- # threads. For each process, Graphiti will create one global
16
- # executor that uses this many threads to sideload resources
17
- # asynchronously. Thus, the pool size should be at least
18
- # `thread_count + concurrency_max_threads + 1`. For example, if your
19
- # web server has a maximum of 3 threads, and
20
- # `concurrency_max_threads` is set to 4, then your pool size should
21
- # be at least 8.
22
- # @return [Integer] Maximum number of threads to use when fetching sideloads concurrently
23
- attr_accessor :concurrency_max_threads
24
-
25
11
  attr_accessor :respond_to
26
12
  attr_accessor :context_for_endpoint
27
13
  attr_accessor :links_on_demand
@@ -40,7 +26,6 @@ module Graphiti
40
26
  def initialize
41
27
  @raise_on_missing_sideload = true
42
28
  @concurrency = false
43
- @concurrency_max_threads = 4
44
29
  @respond_to = [:json, :jsonapi, :xml]
45
30
  @links_on_demand = false
46
31
  @pagination_links_on_demand = false
@@ -2,23 +2,6 @@ module Graphiti
2
2
  class Scope
3
3
  attr_accessor :object, :unpaginated_object
4
4
  attr_reader :pagination
5
-
6
- @thread_pool_executor_mutex = Mutex.new
7
-
8
- def self.thread_pool_executor
9
- return @thread_pool_executor if @thread_pool_executor
10
-
11
- concurrency = Graphiti.config.concurrency_max_threads || 4
12
- @thread_pool_executor ||= @thread_pool_executor_mutex.synchronize do
13
- Concurrent::ThreadPoolExecutor.new(
14
- min_threads: 0,
15
- max_threads: concurrency,
16
- max_queue: concurrency * 4,
17
- fallback_policy: :caller_runs
18
- )
19
- end
20
- end
21
-
22
5
  def initialize(object, resource, query, opts = {})
23
6
  @object = object
24
7
  @resource = resource
@@ -66,7 +49,7 @@ module Graphiti
66
49
  @resource.adapter.close if concurrent
67
50
  }
68
51
  if concurrent
69
- promises << Concurrent::Promise.execute(executor: self.class.thread_pool_executor, &resolve_sideload)
52
+ promises << Concurrent::Promise.execute(&resolve_sideload)
70
53
  else
71
54
  resolve_sideload.call
72
55
  end
@@ -1,3 +1,3 @@
1
1
  module Graphiti
2
- VERSION = "1.6.1"
2
+ VERSION = "1.6.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Richmond
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-22 00:00:00.000000000 Z
11
+ date: 2024-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonapi-serializable