danicoin/src
warptangent ffcf6bdb95
BlockchainLMDB: When removing, find amount output index fast by starting at end
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" subdb. This is most noticeable for
HDDs.

As before, the dup list is still walked if necessary (but in reverse),
and the global output index still confirmed to be the one looked for.
But under proper use, the result will be found at the end of the dup
list, so we start there.

Removing an amount output index is always done in the context of popping
a block, so the global output index being looked for should be the last
one in that amount key's dup list. Even if the txs themselves aren't
removed in reverse order (supposed to be according to original
implementation), the specified amount output index will still be near
the end, because the txs are in the same block.

TEST:

Pop blocks with blockchain_import.

Blocks should be successfully removed with no errors shown.

bitmonerod should be able to start syncing from the reduced blockchain
height.
2015-12-24 13:32:35 -08:00
..
blockchain_db BlockchainLMDB: When removing, find amount output index fast by starting at end 2015-12-24 13:32:35 -08:00
blockchain_utilities Add missing semicolons after log statements 2015-12-19 14:47:37 +00:00
blocks Replace tabs with two spaces for consistency with rest of codebase 2015-12-15 06:22:06 -08:00
common Add missing semicolons after log statements 2015-12-19 14:47:37 +00:00
connectivity_tool 2014 network limit 1.2 +utils +toc -doc -drmonero 2015-02-20 22:28:03 +01:00
crypto Replace tabs with two spaces for consistency with rest of codebase 2015-12-15 06:22:06 -08:00
cryptonote_core Allow the wallet to access hard fork information 2015-12-19 14:52:30 +00:00
cryptonote_protocol Merge pull request #543 2015-12-18 12:16:10 +02:00
daemon Merge pull request #552 2015-12-22 10:29:29 +02:00
daemonizer posix_daemonizer: only create the main daemon object in the last child 2015-12-13 19:48:11 +00:00
miner 2014 network limit 1.2 +utils +toc -doc -drmonero 2015-02-20 22:28:03 +01:00
mnemonics slight modification to wordlist contributor tagline (as these contributors haven't used git to submit a PR, so we're creating the wordlist on their behalf 2015-07-24 07:55:16 +02:00
p2p net_node: fix a hang on exit 2015-12-22 12:38:52 +00:00
platform year updated in license 2015-01-02 18:52:46 +02:00
rpc Merge pull request #547 2015-12-22 10:10:54 +02:00
serialization encrypted payment ids are now 64 bit, instead of 256 bit 2015-08-09 10:13:51 +01:00
simplewallet Add missing semicolons after log statements 2015-12-19 14:47:37 +00:00
wallet fixed missing parenthesis 2015-12-24 18:11:11 +02:00
CMakeLists.txt Replace tabs with two spaces for consistency with rest of codebase 2015-12-15 06:22:06 -08:00
cryptonote_config.h Revert connection limit to more customary 8 2015-12-14 18:45:52 -08:00
version.cmake year updated in license 2015-01-02 18:52:46 +02:00
version.h.in onwards to 0.8.8.7 2014-12-13 13:45:57 +02:00