mirror of
https://github.com/isar/libmdbx.git
synced 2025-02-01 09:48:22 +08:00
mdbx: merge branch 'refine' into devel.
Change-Id: I3f6a787c66b4e7fca3c43d72e4b4083782cc94c4
This commit is contained in:
commit
66f3c0a77e
@ -4073,7 +4073,7 @@ skip_cache:
|
|||||||
goto fail;
|
goto fail;
|
||||||
if (flags & MDBX_LIFORECLAIM) {
|
if (flags & MDBX_LIFORECLAIM) {
|
||||||
/* Begin from oldest reader if any */
|
/* Begin from oldest reader if any */
|
||||||
if (oldest > 2) {
|
if (oldest > MIN_TXNID) {
|
||||||
last = oldest - 1;
|
last = oldest - 1;
|
||||||
op = MDBX_SET_RANGE;
|
op = MDBX_SET_RANGE;
|
||||||
}
|
}
|
||||||
@ -7012,6 +7012,7 @@ int mdbx_txn_commit(MDBX_txn *txn) {
|
|||||||
(txn->mt_flags & (MDBX_TXN_DIRTY | MDBX_TXN_SPILLS)) == 0) {
|
(txn->mt_flags & (MDBX_TXN_DIRTY | MDBX_TXN_SPILLS)) == 0) {
|
||||||
for (int i = txn->mt_numdbs; --i >= 0;)
|
for (int i = txn->mt_numdbs; --i >= 0;)
|
||||||
mdbx_tassert(txn, (txn->mt_dbflags[i] & DB_DIRTY) == 0);
|
mdbx_tassert(txn, (txn->mt_dbflags[i] & DB_DIRTY) == 0);
|
||||||
|
rc = MDBX_SUCCESS;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11014,9 +11015,9 @@ int mdbx_cursor_put(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data,
|
|||||||
/* LY: add configurable threshold to keep reserve space */
|
/* LY: add configurable threshold to keep reserve space */
|
||||||
dpages) {
|
dpages) {
|
||||||
if (!IS_DIRTY(omp) && (level || (env->me_flags & MDBX_WRITEMAP))) {
|
if (!IS_DIRTY(omp) && (level || (env->me_flags & MDBX_WRITEMAP))) {
|
||||||
rc = mdbx_page_unspill(mc->mc_txn, omp, &omp);
|
rc2 = mdbx_page_unspill(mc->mc_txn, omp, &omp);
|
||||||
if (unlikely(rc))
|
if (unlikely(rc2))
|
||||||
return rc;
|
return rc2;
|
||||||
level = 0; /* dirty in this txn or clean */
|
level = 0; /* dirty in this txn or clean */
|
||||||
}
|
}
|
||||||
/* Is it dirty? */
|
/* Is it dirty? */
|
||||||
@ -11183,8 +11184,8 @@ int mdbx_cursor_put(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data,
|
|||||||
nested_dupdb.md_entries = page_numkeys(fp);
|
nested_dupdb.md_entries = page_numkeys(fp);
|
||||||
xdata.iov_len = sizeof(nested_dupdb);
|
xdata.iov_len = sizeof(nested_dupdb);
|
||||||
xdata.iov_base = &nested_dupdb;
|
xdata.iov_base = &nested_dupdb;
|
||||||
if ((rc = mdbx_page_alloc(mc, 1, &mp, MDBX_ALLOC_ALL)))
|
if ((rc2 = mdbx_page_alloc(mc, 1, &mp, MDBX_ALLOC_ALL)))
|
||||||
return rc;
|
return rc2;
|
||||||
mc->mc_db->md_leaf_pages += 1;
|
mc->mc_db->md_leaf_pages += 1;
|
||||||
mdbx_cassert(mc, env->me_psize > olddata.iov_len);
|
mdbx_cassert(mc, env->me_psize > olddata.iov_len);
|
||||||
offset = env->me_psize - (unsigned)olddata.iov_len;
|
offset = env->me_psize - (unsigned)olddata.iov_len;
|
||||||
|
@ -1588,7 +1588,7 @@ retry_mapview:;
|
|||||||
switch (rc) {
|
switch (rc) {
|
||||||
case EAGAIN:
|
case EAGAIN:
|
||||||
case ENOMEM:
|
case ENOMEM:
|
||||||
case EFAULT /* MADV_DODUMP / MADV_DONTDUMP are mixed for mmap-mange */:
|
case EFAULT /* MADV_DODUMP / MADV_DONTDUMP are mixed for mmap-range */:
|
||||||
rc = MDBX_RESULT_TRUE;
|
rc = MDBX_RESULT_TRUE;
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user