mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-07-05 04:54:59 +02:00
routing: perform path finding inside a single DB transaction
This commit modifies the path finding logic such that all path finding is done inside a _single_ database transaction. With this change, we ensure that we don’t end up possibly creating hundreds of database transactions slowing down the path finding and payment sending process all together.
This commit is contained in:
@ -316,7 +316,7 @@ func TestBasicGraphPathFinding(t *testing.T) {
|
||||
|
||||
paymentAmt := lnwire.NewMSatFromSatoshis(100)
|
||||
target := aliases["sophon"]
|
||||
path, err := findPath(graph, sourceNode, target, ignoredVertexes,
|
||||
path, err := findPath(nil, graph, sourceNode, target, ignoredVertexes,
|
||||
ignoredEdges, paymentAmt)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to find path: %v", err)
|
||||
@ -412,7 +412,7 @@ func TestBasicGraphPathFinding(t *testing.T) {
|
||||
// exist two possible paths in the graph, but the shorter (1 hop) path
|
||||
// should be selected.
|
||||
target = aliases["luoji"]
|
||||
path, err = findPath(graph, sourceNode, target, ignoredVertexes,
|
||||
path, err = findPath(nil, graph, sourceNode, target, ignoredVertexes,
|
||||
ignoredEdges, paymentAmt)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to find route: %v", err)
|
||||
@ -469,7 +469,7 @@ func TestKShortestPathFinding(t *testing.T) {
|
||||
|
||||
paymentAmt := lnwire.NewMSatFromSatoshis(100)
|
||||
target := aliases["luoji"]
|
||||
paths, err := findPaths(graph, sourceNode, target, paymentAmt)
|
||||
paths, err := findPaths(nil, graph, sourceNode, target, paymentAmt)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to find paths between roasbeef and "+
|
||||
"luo ji: %v", err)
|
||||
@ -530,7 +530,7 @@ func TestNewRoutePathTooLong(t *testing.T) {
|
||||
// We start by confirminig that routing a payment 20 hops away is possible.
|
||||
// Alice should be able to find a valid route to ursula.
|
||||
target := aliases["ursula"]
|
||||
_, err = findPath(graph, sourceNode, target, ignoredVertexes,
|
||||
_, err = findPath(nil, graph, sourceNode, target, ignoredVertexes,
|
||||
ignoredEdges, paymentAmt)
|
||||
if err != nil {
|
||||
t.Fatalf("path should have been found")
|
||||
@ -539,7 +539,7 @@ func TestNewRoutePathTooLong(t *testing.T) {
|
||||
// Vincent is 21 hops away from Alice, and thus no valid route should be
|
||||
// presented to Alice.
|
||||
target = aliases["vincent"]
|
||||
path, err := findPath(graph, sourceNode, target, ignoredVertexes,
|
||||
path, err := findPath(nil, graph, sourceNode, target, ignoredVertexes,
|
||||
ignoredEdges, paymentAmt)
|
||||
if err == nil {
|
||||
t.Fatalf("should not have been able to find path, supposed to be "+
|
||||
@ -579,7 +579,7 @@ func TestPathNotAvailable(t *testing.T) {
|
||||
t.Fatalf("unable to parse pubkey: %v", err)
|
||||
}
|
||||
|
||||
_, err = findPath(graph, sourceNode, unknownNode, ignoredVertexes,
|
||||
_, err = findPath(nil, graph, sourceNode, unknownNode, ignoredVertexes,
|
||||
ignoredEdges, 100)
|
||||
if !IsError(err, ErrNoPathFound) {
|
||||
t.Fatalf("path shouldn't have been found: %v", err)
|
||||
@ -613,7 +613,7 @@ func TestPathInsufficientCapacity(t *testing.T) {
|
||||
target := aliases["sophon"]
|
||||
|
||||
const payAmt = btcutil.SatoshiPerBitcoin
|
||||
_, err = findPath(graph, sourceNode, target, ignoredVertexes,
|
||||
_, err = findPath(nil, graph, sourceNode, target, ignoredVertexes,
|
||||
ignoredEdges, payAmt)
|
||||
if !IsError(err, ErrNoPathFound) {
|
||||
t.Fatalf("graph shouldn't be able to support payment: %v", err)
|
||||
|
Reference in New Issue
Block a user