address_history_cache_size
This commit is contained in:
parent
237b78ee63
commit
e9be86229d
3 changed files with 13 additions and 5 deletions
|
@ -11,7 +11,7 @@ class ServerEnv(Env):
|
||||||
session_timeout=None, drop_client=None, description=None, daily_fee=None,
|
session_timeout=None, drop_client=None, description=None, daily_fee=None,
|
||||||
database_query_timeout=None, elastic_notifier_host=None, elastic_notifier_port=None,
|
database_query_timeout=None, elastic_notifier_host=None, elastic_notifier_port=None,
|
||||||
blocking_channel_ids=None, filtering_channel_ids=None, peer_hubs=None, peer_announce=None,
|
blocking_channel_ids=None, filtering_channel_ids=None, peer_hubs=None, peer_announce=None,
|
||||||
index_address_status=None):
|
index_address_status=None, address_history_cache_size=None):
|
||||||
super().__init__(db_dir, max_query_workers, chain, reorg_limit, prometheus_port, cache_all_tx_hashes,
|
super().__init__(db_dir, max_query_workers, chain, reorg_limit, prometheus_port, cache_all_tx_hashes,
|
||||||
cache_all_claim_txos, blocking_channel_ids, filtering_channel_ids, index_address_status)
|
cache_all_claim_txos, blocking_channel_ids, filtering_channel_ids, index_address_status)
|
||||||
self.daemon_url = daemon_url if daemon_url is not None else self.required('DAEMON_URL')
|
self.daemon_url = daemon_url if daemon_url is not None else self.required('DAEMON_URL')
|
||||||
|
@ -50,6 +50,8 @@ class ServerEnv(Env):
|
||||||
self.daily_fee = daily_fee if daily_fee is not None else self.string_amount('DAILY_FEE', '0')
|
self.daily_fee = daily_fee if daily_fee is not None else self.string_amount('DAILY_FEE', '0')
|
||||||
self.database_query_timeout = (database_query_timeout / 1000.0) if database_query_timeout is not None else \
|
self.database_query_timeout = (database_query_timeout / 1000.0) if database_query_timeout is not None else \
|
||||||
(float(self.integer('QUERY_TIMEOUT_MS', 10000)) / 1000.0)
|
(float(self.integer('QUERY_TIMEOUT_MS', 10000)) / 1000.0)
|
||||||
|
self.hashX_history_cache_size = address_history_cache_size if address_history_cache_size is not None \
|
||||||
|
else self.integer('ADDRESS_HISTORY_CACHE_SIZE', 1000)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def contribute_to_arg_parser(cls, parser):
|
def contribute_to_arg_parser(cls, parser):
|
||||||
|
@ -96,6 +98,11 @@ class ServerEnv(Env):
|
||||||
parser.add_argument('--daily_fee', default=cls.default('DAILY_FEE', '0'), type=str)
|
parser.add_argument('--daily_fee', default=cls.default('DAILY_FEE', '0'), type=str)
|
||||||
parser.add_argument('--query_timeout_ms', type=int, default=cls.integer('QUERY_TIMEOUT_MS', 10000),
|
parser.add_argument('--query_timeout_ms', type=int, default=cls.integer('QUERY_TIMEOUT_MS', 10000),
|
||||||
help="Elasticsearch query timeout, in ms. Can be set in env with 'QUERY_TIMEOUT_MS'")
|
help="Elasticsearch query timeout, in ms. Can be set in env with 'QUERY_TIMEOUT_MS'")
|
||||||
|
parser.add_argument('--address_history_cache_size', type=int,
|
||||||
|
default=cls.integer('ADDRESS_HISTORY_CACHE_SIZE', 1000),
|
||||||
|
help="Size of the lru cache of address histories. "
|
||||||
|
"Can be set in the env with 'ADDRESS_HISTORY_CACHE_SIZE'")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_arg_parser(cls, args):
|
def from_arg_parser(cls, args):
|
||||||
return cls(
|
return cls(
|
||||||
|
@ -110,5 +117,6 @@ class ServerEnv(Env):
|
||||||
drop_client=args.drop_client, description=args.description, daily_fee=args.daily_fee,
|
drop_client=args.drop_client, description=args.description, daily_fee=args.daily_fee,
|
||||||
database_query_timeout=args.query_timeout_ms, blocking_channel_ids=args.blocking_channel_ids,
|
database_query_timeout=args.query_timeout_ms, blocking_channel_ids=args.blocking_channel_ids,
|
||||||
filtering_channel_ids=args.filtering_channel_ids, elastic_notifier_host=args.elastic_notifier_host,
|
filtering_channel_ids=args.filtering_channel_ids, elastic_notifier_host=args.elastic_notifier_host,
|
||||||
elastic_notifier_port=args.elastic_notifier_port, index_address_status=args.index_address_statuses
|
elastic_notifier_port=args.elastic_notifier_port, index_address_status=args.index_address_statuses,
|
||||||
|
address_history_cache_size=args.address_history_cache_size
|
||||||
)
|
)
|
||||||
|
|
|
@ -28,7 +28,7 @@ class BlockchainEnv(Env):
|
||||||
help='This setting translates into the max_open_files option given to rocksdb. '
|
help='This setting translates into the max_open_files option given to rocksdb. '
|
||||||
'A higher number will use more memory. Defaults to 64.')
|
'A higher number will use more memory. Defaults to 64.')
|
||||||
parser.add_argument('--address_history_cache_size', type=int,
|
parser.add_argument('--address_history_cache_size', type=int,
|
||||||
default=cls.integer('ADDRESS_HISTORY_CACHE_SIZE', 1000),
|
default=cls.integer('ADDRESS_HISTORY_CACHE_SIZE', 2 ** 13),
|
||||||
help="LRU cache size for address histories, used when processing new blocks "
|
help="LRU cache size for address histories, used when processing new blocks "
|
||||||
"and when processing mempool updates. Can be set in env with "
|
"and when processing mempool updates. Can be set in env with "
|
||||||
"'ADDRESS_HISTORY_CACHE_SIZE'")
|
"'ADDRESS_HISTORY_CACHE_SIZE'")
|
||||||
|
|
|
@ -118,8 +118,8 @@ class BlockchainProcessorService(BlockchainService):
|
||||||
self.pending_transaction_num_mapping: Dict[bytes, int] = {}
|
self.pending_transaction_num_mapping: Dict[bytes, int] = {}
|
||||||
self.pending_transactions: Dict[int, bytes] = {}
|
self.pending_transactions: Dict[int, bytes] = {}
|
||||||
|
|
||||||
self.hashX_history_cache = LRUCache(min(100, max(0, env.hashX_history_cache_size)))
|
self.hashX_history_cache = LRUCache(max(100, env.hashX_history_cache_size))
|
||||||
self.hashX_full_cache = LRUCache(min(100, max(0, env.hashX_history_cache_size)))
|
self.hashX_full_cache = LRUCache(max(100, env.hashX_history_cache_size))
|
||||||
self.history_tx_info_cache = LRUCache(2 ** 16)
|
self.history_tx_info_cache = LRUCache(2 ** 16)
|
||||||
|
|
||||||
def open_db(self):
|
def open_db(self):
|
||||||
|
|
Loading…
Reference in a new issue