TEMP: show diff files separation works

Demonstrate CI passes if we persist graph data in a completely separate
DB to other channel data.
This commit is contained in:
Elle Mouton 2024-10-29 18:52:32 +02:00
parent adde0118b6
commit d7d8c39aa4
No known key found for this signature in database
GPG Key ID: D7D916376026F177

View File

@ -20,6 +20,7 @@ import (
const (
ChannelDBName = "channel.db"
GraphDBName = "graph.db"
MacaroonDBName = "macaroons.db"
DecayedLogDbName = "sphinxreplay.db"
TowerClientDBName = "wtclient.db"
@ -27,6 +28,7 @@ const (
WalletDBName = "wallet.db"
SqliteChannelDBName = "channel.sqlite"
SqliteGraphDBName = "graph.sqlite"
SqliteChainDBName = "chain.sqlite"
SqliteNeutrinoDBName = "neutrino.sqlite"
SqliteTowerDBName = "watchtower.sqlite"
@ -47,6 +49,8 @@ const (
// and channel state DB.
NSChannelDB = "channeldb"
NSGraphDB = "graphdb"
// NSMacaroonDB is the namespace name that we use for the macaroon DB.
NSMacaroonDB = "macaroondb"
@ -300,14 +304,25 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
// code used the root namespace. We assume that nobody used etcd
// for mainnet just yet since that feature was clearly marked as
// experimental in 0.13.x.
etcdBackend, err := kvdb.Open(
etcdChannelDBBackend, err := kvdb.Open(
kvdb.EtcdBackendName, ctx,
db.Etcd.CloneWithSubNamespace(NSChannelDB),
)
if err != nil {
return nil, fmt.Errorf("error opening etcd DB: %w", err)
return nil, fmt.Errorf("error opening etcd channel "+
"DB: %w", err)
}
closeFuncs[NSChannelDB] = etcdBackend.Close
closeFuncs[NSChannelDB] = etcdChannelDBBackend.Close
etcdGraphDBBackend, err := kvdb.Open(
kvdb.EtcdBackendName, ctx,
db.Etcd.CloneWithSubNamespace(NSGraphDB),
)
if err != nil {
return nil, fmt.Errorf("error opening etcd graph "+
"DB: %w", err)
}
closeFuncs[NSGraphDB] = etcdGraphDBBackend.Close
etcdMacaroonBackend, err := kvdb.Open(
kvdb.EtcdBackendName, ctx,
@ -364,9 +379,9 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
returnEarly = false
return &DatabaseBackends{
GraphDB: etcdBackend,
ChanStateDB: etcdBackend,
HeightHintDB: etcdBackend,
GraphDB: etcdGraphDBBackend,
ChanStateDB: etcdChannelDBBackend,
HeightHintDB: etcdChannelDBBackend,
MacaroonDB: etcdMacaroonBackend,
DecayedLogDB: etcdDecayedLogBackend,
TowerClientDB: etcdTowerClientBackend,
@ -389,15 +404,25 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
// users to native SQL.
postgresConfig := GetPostgresConfigKVDB(db.Postgres)
postgresBackend, err := kvdb.Open(
postgresChannelDBlBackend, err := kvdb.Open(
kvdb.PostgresBackendName, ctx,
postgresConfig, NSChannelDB,
)
if err != nil {
return nil, fmt.Errorf("error opening postgres "+
"channel DB: %v", err)
}
closeFuncs[NSChannelDB] = postgresChannelDBlBackend.Close
postgresGraphDBBackend, err := kvdb.Open(
kvdb.PostgresBackendName, ctx,
postgresConfig, NSGraphDB,
)
if err != nil {
return nil, fmt.Errorf("error opening postgres graph "+
"DB: %v", err)
}
closeFuncs[NSChannelDB] = postgresBackend.Close
closeFuncs[NSGraphDB] = postgresGraphDBBackend.Close
postgresMacaroonBackend, err := kvdb.Open(
kvdb.PostgresBackendName, ctx,
@ -475,9 +500,9 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
returnEarly = false
return &DatabaseBackends{
GraphDB: postgresBackend,
ChanStateDB: postgresBackend,
HeightHintDB: postgresBackend,
GraphDB: postgresGraphDBBackend,
ChanStateDB: postgresChannelDBlBackend,
HeightHintDB: postgresChannelDBlBackend,
MacaroonDB: postgresMacaroonBackend,
DecayedLogDB: postgresDecayedLogBackend,
TowerClientDB: postgresTowerClientBackend,
@ -516,11 +541,21 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
SqliteChannelDBName, NSChannelDB,
)
if err != nil {
return nil, fmt.Errorf("error opening sqlite graph "+
return nil, fmt.Errorf("error opening sqlite channel "+
"DB: %v", err)
}
closeFuncs[NSChannelDB] = sqliteBackend.Close
sqliteGraphBackend, err := kvdb.Open(
kvdb.SqliteBackendName, ctx, sqliteConfig, chanDBPath,
SqliteGraphDBName, NSGraphDB,
)
if err != nil {
return nil, fmt.Errorf("error opening sqlite graph "+
"DB: %v", err)
}
closeFuncs[NSGraphDB] = sqliteGraphBackend.Close
sqliteMacaroonBackend, err := kvdb.Open(
kvdb.SqliteBackendName, ctx, sqliteConfig, walletDBPath,
SqliteChainDBName, NSMacaroonDB,
@ -598,7 +633,7 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
returnEarly = false
return &DatabaseBackends{
GraphDB: sqliteBackend,
GraphDB: sqliteGraphBackend,
ChanStateDB: sqliteBackend,
HeightHintDB: sqliteBackend,
MacaroonDB: sqliteMacaroonBackend,
@ -632,6 +667,19 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
}
closeFuncs[NSChannelDB] = boltBackend.Close
boltGraphBackend, err := kvdb.GetBoltBackend(&kvdb.BoltBackendConfig{
DBPath: chanDBPath,
DBFileName: GraphDBName,
DBTimeout: db.Bolt.DBTimeout,
NoFreelistSync: db.Bolt.NoFreelistSync,
AutoCompact: db.Bolt.AutoCompact,
AutoCompactMinAge: db.Bolt.AutoCompactMinAge,
})
if err != nil {
return nil, fmt.Errorf("error opening bolt DB: %w", err)
}
closeFuncs[NSGraphDB] = boltGraphBackend.Close
macaroonBackend, err := kvdb.GetBoltBackend(&kvdb.BoltBackendConfig{
DBPath: walletDBPath,
DBFileName: MacaroonDBName,
@ -703,7 +751,7 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
returnEarly = false
return &DatabaseBackends{
GraphDB: boltBackend,
GraphDB: boltGraphBackend,
ChanStateDB: boltBackend,
HeightHintDB: boltBackend,
MacaroonDB: macaroonBackend,