lora-ruby 0.18.0-aarch64-linux → 0.19.0-aarch64-linux

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: 6ec63db25461db026891b772430c487f3fdfc5978b358dade99e940786c11a08
4
- data.tar.gz: dd8bf7bcc0a098325164057280275db610175d12b1adf44d721c5570384ca20a
3
+ metadata.gz: f6c806bdf150dd08b8ecb946669a7923f991d93c1e3b1de4ef098d690a445b46
4
+ data.tar.gz: 321efb37f096100f59f04c5189f3157f485769389837c9bd6aceaee768aa47c8
5
5
  SHA512:
6
- metadata.gz: a6a6101d171142d52fb86d4d45e8f0fd89b40d31a7b4d6ece4da5fc1f3879637ac9c0a56a5d4d7c45abbc8a3559fa742b23186e39d347c7840c1edbc673e5a14
7
- data.tar.gz: 4c243502aa627aca54283fb2177b81d20e84661f90b62e43c0f1e2eb1d4c7edbe7368cd71c1d78fecac7abcb7919dd40df8fd1c05e4efbc17732f7c2e4d22169
6
+ metadata.gz: 753d7229175ea205b0346766de4b55afedd3c994dfafcf31447e3c0344f8f2052562adf52a4c32e27288ac3e1914320f8f15b032fe1021284ec8ed6a1e72c8fe
7
+ data.tar.gz: 4c981e6cf63f163eaf36a99ac2b1e6c64250ddd0e41e990b8b86b5f014951adcfecec8f72c1756c8d1bbb56faf18824431a44ce717153c77481d462076d35b53
data/README.md CHANGED
@@ -206,14 +206,24 @@ db = LoraRuby::Database.open_wal(
206
206
 
207
207
  ## Concurrency (GVL release)
208
208
 
209
- `Database#execute` calls `rb_thread_call_without_gvl`, so other Ruby
210
- threads run while the engine is busy. Auto-commit reads can overlap on engine
211
- snapshots; write commits and explicit read-write transactions serialize.
209
+ Every engine call that can block (`execute`, `explain`, `profile`, `clear`,
210
+ snapshot save/load, opening and closing a database) runs under
211
+ `rb_thread_call_without_gvl`, so other Ruby threads run while the engine is
212
+ busy. `node_count` and `relationship_count` read a snapshot without waiting
213
+ and keep the GVL. Auto-commit reads can overlap on engine snapshots; writes
214
+ serialize on the engine's writer lock.
215
+
216
+ A write waiting for that lock waits with the GVL released, and the Ruby
217
+ binding has no interactive transactions: each write takes the lock and
218
+ releases it within one call. So a waiting writer never blocks the writer
219
+ holding the lock, however many threads write at once.
212
220
 
213
221
  The engine has no cancellation hook, so we pass a `NULL` unblock
214
- function. A thread interrupted mid-query (`Thread#kill`) will observe
215
- the interrupt **after** the current query finishes. Keep queries short
216
- if you rely on cooperative cancellation.
222
+ function. A thread interrupted mid-query (`Thread#kill`, `Ctrl-C`) will
223
+ observe the interrupt **after** the current call finishes, including a
224
+ write that was still waiting for the writer lock (it runs, then the
225
+ interrupt fires). Keep queries short if you rely on cooperative
226
+ cancellation.
217
227
 
218
228
  ## Local development
219
229
 
Binary file
Binary file
Binary file
@@ -10,5 +10,5 @@ module LoraRuby
10
10
  # Guard against redefinition so re-requiring this file (or loading
11
11
  # both paths) doesn't emit a "warning: already initialized constant"
12
12
  # when the native extension loads second with the identical value.
13
- VERSION = "0.18.0" unless const_defined?(:VERSION)
13
+ VERSION = "0.19.0" unless const_defined?(:VERSION)
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lora-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.19.0
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - LoraDB, Inc.