mdbx 0.3.7 → 0.4.0
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.md +16 -0
- data/ext/mdbx_ext/database.c +36 -1
- data/ext/mdbx_ext/extconf.rb +2 -0
- data/ext/mdbx_ext/mdbx_ext.h +1 -0
- data/lib/mdbx.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b8f04217532c9bd383ac918ac4ba724fa31e7a1e43335c1f084f13189f87b00
|
4
|
+
data.tar.gz: 54b3b4818240872fa8f973dbf52f1f1f5680e8508642d2fa4534e9346ae76411
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69df23a8da7d594571015ce0ab129582d9ca534eb10c127ffd0c046035ed13746fd0855aa796f3c228c750f6f34ddc052017e79df0f2c4bf649528ead6d91072
|
7
|
+
data.tar.gz: 6f35e9127312f645f7e2bf29be1644e3b67ad5a27e5f8ce6eb7e81d2b5b1a58610b8d8c1ba571df994054bc1d6d7d575073b6b5098c19dcb22f099647bab7aae
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Release History for MDBX
|
2
2
|
|
3
|
+
---
|
4
|
+
## v0.4.0 [2025-04-30] Mahlon E. Smith <mahlon@martini.nu>
|
5
|
+
|
6
|
+
Enhancements:
|
7
|
+
|
8
|
+
- Opening a long running transaction is now thread safe.
|
9
|
+
|
10
|
+
|
11
|
+
---
|
12
|
+
## v0.3.8 [2025-02-20] Mahlon E. Smith <mahlon@martini.nu>
|
13
|
+
|
14
|
+
Build fixes:
|
15
|
+
|
16
|
+
- Don't fail during compilation on pre 0.13.x libmdbx versions.
|
17
|
+
|
18
|
+
|
3
19
|
---
|
4
20
|
## v0.3.7 [2025-02-06] Mahlon E. Smith <mahlon@martini.nu>
|
5
21
|
|
data/ext/mdbx_ext/database.c
CHANGED
@@ -465,6 +465,26 @@ rmdbx_in_transaction_p( VALUE self )
|
|
465
465
|
}
|
466
466
|
|
467
467
|
|
468
|
+
/* Inline struct for transaction arguments, passed as a void pointer. */
|
469
|
+
struct txn_open_args_s {
|
470
|
+
rmdbx_db_t *db;
|
471
|
+
int rwflag;
|
472
|
+
};
|
473
|
+
|
474
|
+
|
475
|
+
/* Opens a transaction outside of the GVL. */
|
476
|
+
void *
|
477
|
+
rmdbx_open_txn_without_gvl( void *ptr )
|
478
|
+
{
|
479
|
+
struct txn_open_args_s *txn_open_args = (struct txn_open_args_s *)ptr;
|
480
|
+
|
481
|
+
rmdbx_db_t *db = txn_open_args->db;
|
482
|
+
int rc = mdbx_txn_begin( db->env, NULL, txn_open_args->rwflag, &db->txn );
|
483
|
+
|
484
|
+
return (void *)rc;
|
485
|
+
}
|
486
|
+
|
487
|
+
|
468
488
|
/*
|
469
489
|
* Open a new database transaction. If a transaction is already
|
470
490
|
* open, this is a no-op.
|
@@ -476,7 +496,17 @@ rmdbx_open_txn( rmdbx_db_t *db, int rwflag )
|
|
476
496
|
{
|
477
497
|
if ( db->txn ) return;
|
478
498
|
|
479
|
-
|
499
|
+
struct txn_open_args_s txn_open_args;
|
500
|
+
txn_open_args.db = db;
|
501
|
+
txn_open_args.rwflag = rwflag;
|
502
|
+
|
503
|
+
void *result_ptr = rb_thread_call_without_gvl(
|
504
|
+
rmdbx_open_txn_without_gvl, (void *)&txn_open_args,
|
505
|
+
RUBY_UBF_IO, NULL
|
506
|
+
);
|
507
|
+
|
508
|
+
int rc = (int)result_ptr;
|
509
|
+
|
480
510
|
if ( rc != MDBX_SUCCESS ) {
|
481
511
|
rmdbx_close_all( db );
|
482
512
|
rb_raise( rmdbx_eDatabaseError, "mdbx_txn_begin: (%d) %s", rc, mdbx_strerror(rc) );
|
@@ -805,8 +835,13 @@ rmdbx_database_initialize( int argc, VALUE *argv, VALUE self )
|
|
805
835
|
if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NOSUBDIR;
|
806
836
|
opt = rb_hash_delete( opts, ID2SYM( rb_intern("no_readahead") ) );
|
807
837
|
if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NORDAHEAD;
|
838
|
+
#if defined(HAVE_CONST_MDBX_NOSTICKYTHREADS)
|
808
839
|
opt = rb_hash_delete( opts, ID2SYM( rb_intern("no_stickythreads") ) );
|
809
840
|
if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NOSTICKYTHREADS;
|
841
|
+
#else
|
842
|
+
opt = rb_hash_delete( opts, ID2SYM( rb_intern("no_threadlocal") ) );
|
843
|
+
if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NOTLS;
|
844
|
+
#endif
|
810
845
|
opt = rb_hash_delete( opts, ID2SYM( rb_intern("readonly") ) );
|
811
846
|
if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_RDONLY;
|
812
847
|
opt = rb_hash_delete( opts, ID2SYM( rb_intern("writemap") ) );
|
data/ext/mdbx_ext/extconf.rb
CHANGED
data/ext/mdbx_ext/mdbx_ext.h
CHANGED
data/lib/mdbx.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mdbx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mahlon E. Smith
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
49pOzX5KHZLTS9DKeaP/xcGPz6C8MiwQdYrZarr2SHRASX1zFa79rkItO8kE6RDr
|
35
35
|
b6WDF79UvZ55ajtE00TiwqjQL/ZPEtbd
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2025-
|
37
|
+
date: 2025-04-30 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: loggability
|
metadata.gz.sig
CHANGED
Binary file
|