| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Only if we created the readtxn. Was missing cleanups from exceptions before.
|
| |
|
|
|
| |
Only one return and TXN_POSTFIX_RDONLY() per function
Only log rtxn_start if the rtxn wasn't already active
|
| |
|
|
| |
Make sure we stop the right txn too
|
| |\
| |
| |
| | |
2abdb2c avoid some val copies (Howard Chu)
|
| | | |
|
| |/
|
|
|
| |
save the thread ID of the writer thread so we don't try to use
the writetxn from reader threads
|
| |\
| |
| |
| |
| | |
66c2fc7 Need to link boost::chrono in more places now (Howard Chu)
b937a2c Use boost::thread instead of std::thread (Howard Chu)
|
| | | |
|
| | |
| |
| |
| | |
and all other associated IPC
|
| |/
|
|
| |
More uses of db error helper
|
| |\
| |
| |
| |
| |
| | |
bdec7cb BlockchainLMDB: Use DB error helper consistently (warptangent)
c5932eb BlockchainLMDB: Add DB error to exception (warptangent)
a49c355 Blockchain: Omit verbose time stats messages by default (warptangent)
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | | |
ee7a8b8 Get rid of lmdb_cur (Howard Chu)
|
| | |/
| |
| |
| | |
We don't need it now with per-txn cursors.
|
| |/
|
|
| |
Let ARMv7 work again
|
| |
|
|
|
|
|
| |
If user-defined comparator is used, subdb shouldn't be opened with
MDB_INTEGERKEY.
TODO: Again, this will be added back with future schema updates.
|
| |
|
|
|
|
| |
For now, so existing databases work.
TODO: add these back with future schema updates.
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| | |
7db89ed ARMv7: fix unaligned accesses (Howard Chu)
5a07cef Wrap some more actions in a larger read txn (Howard Chu)
8cc7a36 read txn/cursor stuff (Howard Chu)
86a7f2b core: check whether an update is needed straight away (moneromooo-monero)
ea5fa5e core: print "update needed" hard fork notifications in red (moneromooo-monero)
|
| | |
| |
| |
| | |
And cleanup some key comparators
|
| | |
| |
| |
| | |
Could wrap more later.
|
| | | |
|
| | |
| |
| |
| | |
See f7e337e6254c1c4115a8430964a6f6b54305b3ae for LMDB equivalent.
|
| |/
|
|
| |
See c657e772c4efbfee8ff698883f1532a38117a70a for LMDB equivalent.
|
| |
|
|
| |
in get_global_output_indices
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
When keys are contiguous and monotonically increasing, this gets
denser page utilization (doesn't leave padding in page splits).
Can't be used for keys that are inserted in random order (e.g. hashes)
In total this only saves around 1.5% of space compared to original
DB code. The previous patch accounted for 0.8% savings on its own;
the blocks tables just aren't that big.
|
| |
|
|
|
| |
Saves a bit of seek overhead. LMDB frees them automatically
in txn_(commit|abort) so they need no cleanup.
|
| |
|
|
|
| |
Used in batch size estimation, avoids rereading already processed
blocks during import
|
| |
|
|
|
| |
Reduce frequency of resizes: bump minimum increase from 128MB to 512MB
Use a bigger safety margin at small batch sizes
|
| |\
| |
| |
| |
| |
| |
| | |
1995923 BlockchainLMDB: Deal with DB exceptions at block level with particularity (warptangent)
c16cc20 BlockchainLMDB: Add sanity check for inconsistent state (warptangent)
9118d0a BlockchainLMDB: Call destructor on allocated txn if setup fails (warptangent)
f5581c3 BlockchainLMDB: Replace remaining txn pointer NULLs with nullptr (warptangent)
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Add another DB error exception type to distinguish failed txn setup from
general use of txn.
This keeps the error handling flow the same as before the block-level
txn setup changes that moved control up a layer to BlockchainDB.
|
| | |
| |
| |
| |
| | |
This hasn't been known to occur in block-level txn abort, but throw
exception if it does.
|
| | | |
|
| | |
| |
| |
| | |
For consistency.
|
| |/ |
|
| |
|
|
|
|
|
| |
Ensures the database is consistent.
Also simplifes blockchain_import in that verify mode off has less to
work around.
|
| |
|
|
|
|
| |
This will later allow the HardFork object's DB update functions to be
called when the DB transaction that persists across block add/remove is
open.
|
| |
|
|
| |
Move block-scope txn start and stop from BlockchainLMDB to BlockchainDB.
|
| | |
|
| |
|
|
| |
Note that this doesn't yet cause them to be called during block add.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Despite being C++, the stats object is allocated by the underlying
C layer using malloc(3).
|
| |
|
|
| |
See 24b66243c2767726ea4b279fcf447c7cd82c13e5
|
| |
|
|
|
|
|
|
|
| |
This improves blockchain reorganization time by allowing one of the more
expensive DB lookups when popping a block to not have to seek through a
long dup list in the "output_amounts" db. This is most noticeable for
HDDs.
See ffcf6bdb95abe2dab37d5f8d9acc134fdc6b4d36
|