#269 tracks paginating Node::list_payments, and #959 adds that API. However, PaymentStore is still initialized with read_all_objects, and DataStore retains every PaymentDetails in a HashMap for the lifetime of the node. #960 makes the startup reads paginated, which avoids one unbounded list response, but it still reads and decodes the full payment namespace before the node is usable.
This means startup work and steady-state memory usage continue to grow with the complete payment history, even though callers retrieve that history page by page. This will become increasingly relevant for long-lived server deployments.
Related work:
#269 tracks paginating
Node::list_payments, and #959 adds that API. However,PaymentStoreis still initialized withread_all_objects, andDataStoreretains everyPaymentDetailsin aHashMapfor the lifetime of the node. #960 makes the startup reads paginated, which avoids one unbounded list response, but it still reads and decodes the full payment namespace before the node is usable.This means startup work and steady-state memory usage continue to grow with the complete payment history, even though callers retrieve that history page by page. This will become increasingly relevant for long-lived server deployments.
Related work:
list_payments#269 tracks the caller-facing pagination requirement.Node::list_paymentsAPI while continuing to serve values from memory.