From f10ea0f79143c1b5594f5a91c5aeb4a8ae39f2cc Mon Sep 17 00:00:00 2001 From: George Date: Tue, 27 Aug 2024 13:24:25 -0700 Subject: [PATCH 01/13] ingest: Add verbosity to missing file error for `BufferedStorageBackend` (#5442) * Specify object key in 404 error message * Update tests to match new error message --- ingest/ledgerbackend/buffered_storage_backend_test.go | 9 +++++++-- ingest/ledgerbackend/ledger_buffer.go | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ingest/ledgerbackend/buffered_storage_backend_test.go b/ingest/ledgerbackend/buffered_storage_backend_test.go index ca2711c40d..6c95b465f7 100644 --- a/ingest/ledgerbackend/buffered_storage_backend_test.go +++ b/ingest/ledgerbackend/buffered_storage_backend_test.go @@ -505,7 +505,9 @@ func TestLedgerBufferBoundedObjectNotFound(t *testing.T) { bsb.ledgerBuffer.wg.Wait() _, err := bsb.GetLedger(ctx, 3) - assert.EqualError(t, err, "failed getting next ledger batch from queue: ledger object containing sequence 3 is missing: file does not exist") + assert.ErrorContains(t, err, "ledger object containing sequence 3 is missing") + assert.ErrorContains(t, err, objectName) + assert.ErrorContains(t, err, "file does not exist") } func TestLedgerBufferUnboundedObjectNotFound(t *testing.T) { @@ -571,5 +573,8 @@ func TestLedgerBufferRetryLimit(t *testing.T) { bsb.ledgerBuffer.wg.Wait() _, err := bsb.GetLedger(context.Background(), 3) - assert.EqualError(t, err, "failed getting next ledger batch from queue: maximum retries exceeded for downloading object containing sequence 3: transient error") + assert.ErrorContains(t, err, "failed getting next ledger batch from queue") + assert.ErrorContains(t, err, "maximum retries exceeded for downloading object containing sequence 3") + assert.ErrorContains(t, err, objectName) + assert.ErrorContains(t, err, "transient error") } diff --git a/ingest/ledgerbackend/ledger_buffer.go b/ingest/ledgerbackend/ledger_buffer.go index 6965461bba..d23bf0bfbd 100644 --- a/ingest/ledgerbackend/ledger_buffer.go +++ b/ingest/ledgerbackend/ledger_buffer.go @@ -167,7 +167,7 @@ func (lb *ledgerBuffer) downloadLedgerObject(ctx context.Context, sequence uint3 reader, err := lb.dataStore.GetFile(ctx, objectKey) if err != nil { - return nil, err + return nil, errors.Wrapf(err, "unable to retrieve file: %s", objectKey) } defer reader.Close() From 61bbeb8124724ff30318d6e4348a26787b8033ad Mon Sep 17 00:00:00 2001 From: tamirms Date: Tue, 3 Sep 2024 08:02:19 +0100 Subject: [PATCH 02/13] ingest/ledgerbackend: Add prometheus metrics to track captive core startup time (#5449) --- ingest/ledgerbackend/captive_core_backend.go | 40 +++++++-- .../captive_core_backend_test.go | 81 ++++++++++++------- ingest/ledgerbackend/file_watcher_test.go | 4 +- ingest/ledgerbackend/run_from.go | 33 +++++--- ingest/ledgerbackend/stellar_core_runner.go | 11 ++- .../ledgerbackend/stellar_core_runner_test.go | 36 +++++++-- 6 files changed, 146 insertions(+), 59 deletions(-) diff --git a/ingest/ledgerbackend/captive_core_backend.go b/ingest/ledgerbackend/captive_core_backend.go index c8f28974f5..dc5365809b 100644 --- a/ingest/ledgerbackend/captive_core_backend.go +++ b/ingest/ledgerbackend/captive_core_backend.go @@ -112,9 +112,11 @@ type CaptiveStellarCore struct { lastLedger *uint32 // end of current segment if offline, nil if online previousLedgerHash *string - config CaptiveCoreConfig - stellarCoreClient *stellarcore.Client - captiveCoreVersion string // Updates when captive-core restarts + config CaptiveCoreConfig + captiveCoreStartDuration prometheus.Summary + captiveCoreNewDBCounter prometheus.Counter + stellarCoreClient *stellarcore.Client + captiveCoreVersion string // Updates when captive-core restarts } // CaptiveCoreConfig contains all the parameters required to create a CaptiveStellarCore instance @@ -230,7 +232,7 @@ func NewCaptive(config CaptiveCoreConfig) (*CaptiveStellarCore, error) { c.stellarCoreRunnerFactory = func() stellarCoreRunnerInterface { c.setCoreVersion() - return newStellarCoreRunner(config) + return newStellarCoreRunner(config, c.captiveCoreNewDBCounter) } if config.Toml != nil && config.Toml.HTTPPort != 0 { @@ -315,7 +317,27 @@ func (c *CaptiveStellarCore) registerMetrics(registry *prometheus.Registry, name return float64(latest) }, ) - registry.MustRegister(coreSynced, supportedProtocolVersion, latestLedger) + c.captiveCoreStartDuration = prometheus.NewSummary(prometheus.SummaryOpts{ + Namespace: namespace, + Subsystem: "ingest", + Name: "captive_stellar_core_start_duration_seconds", + Help: "duration of start up time when running captive core on an unbounded range, sliding window = 10m", + Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, + }) + c.captiveCoreNewDBCounter = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: namespace, + Subsystem: "ingest", + Name: "captive_stellar_core_new_db", + Help: "counter for the number of times we start up captive core with a new buckets db, sliding window = 10m", + }) + + registry.MustRegister( + coreSynced, + supportedProtocolVersion, + latestLedger, + c.captiveCoreStartDuration, + c.captiveCoreNewDBCounter, + ) } func (c *CaptiveStellarCore) getLatestCheckpointSequence() (uint32, error) { @@ -521,12 +543,14 @@ func (c *CaptiveStellarCore) startPreparingRange(ctx context.Context, ledgerRang // Please note that using a BoundedRange, currently, requires a full-trust on // history archive. This issue is being fixed in Stellar-Core. func (c *CaptiveStellarCore) PrepareRange(ctx context.Context, ledgerRange Range) error { + startTime := time.Now() if alreadyPrepared, err := c.startPreparingRange(ctx, ledgerRange); err != nil { return errors.Wrap(err, "error starting prepare range") } else if alreadyPrepared { return nil } + var reportedStartTime bool // the prepared range might be below ledgerRange.from so we // need to seek ahead until we reach ledgerRange.from for seq := c.prepared.from; seq <= ledgerRange.from; seq++ { @@ -534,6 +558,12 @@ func (c *CaptiveStellarCore) PrepareRange(ctx context.Context, ledgerRange Range if err != nil { return errors.Wrapf(err, "Error fast-forwarding to %d", ledgerRange.from) } + if !reportedStartTime { + reportedStartTime = true + if c.captiveCoreStartDuration != nil && !ledgerRange.bounded { + c.captiveCoreStartDuration.Observe(time.Since(startTime).Seconds()) + } + } } return nil diff --git a/ingest/ledgerbackend/captive_core_backend_test.go b/ingest/ledgerbackend/captive_core_backend_test.go index f8161aec25..cb7e8dba7e 100644 --- a/ingest/ledgerbackend/captive_core_backend_test.go +++ b/ingest/ledgerbackend/captive_core_backend_test.go @@ -10,6 +10,8 @@ import ( "sync" "testing" + "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -224,7 +226,7 @@ func TestCaptivePrepareRange(t *testing.T) { }, nil) cancelCalled := false - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -234,6 +236,7 @@ func TestCaptivePrepareRange(t *testing.T) { cancelCalled = true }), } + captiveBackend.registerMetrics(prometheus.NewRegistry(), "test") err := captiveBackend.PrepareRange(ctx, BoundedRange(100, 200)) assert.NoError(t, err) @@ -243,6 +246,8 @@ func TestCaptivePrepareRange(t *testing.T) { assert.True(t, cancelCalled) mockRunner.AssertExpectations(t) mockArchive.AssertExpectations(t) + + assert.Equal(t, uint64(0), getStartDurationMetric(captiveBackend).GetSampleCount()) } func TestCaptivePrepareRangeCrash(t *testing.T) { @@ -263,7 +268,7 @@ func TestCaptivePrepareRangeCrash(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -302,7 +307,7 @@ func TestCaptivePrepareRangeTerminated(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -339,7 +344,7 @@ func TestCaptivePrepareRangeCloseNotFullyTerminated(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -367,7 +372,7 @@ func TestCaptivePrepareRange_ErrClosingSession(t *testing.T) { mockRunner.On("getProcessExitError").Return(nil, false) mockRunner.On("context").Return(ctx) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ nextLedger: 300, stellarCoreRunner: mockRunner, } @@ -388,7 +393,7 @@ func TestCaptivePrepareRange_ErrGettingRootHAS(t *testing.T) { On("GetRootHAS"). Return(historyarchive.HistoryArchiveState{}, errors.New("transient error")) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, } @@ -412,7 +417,7 @@ func TestCaptivePrepareRange_FromIsAheadOfRootHAS(t *testing.T) { CurrentLedger: uint32(64), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -460,7 +465,7 @@ func TestCaptivePrepareRangeWithDB_FromIsAheadOfRootHAS(t *testing.T) { CurrentLedger: uint32(64), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, useDB: true, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { @@ -499,7 +504,7 @@ func TestCaptivePrepareRange_ToIsAheadOfRootHAS(t *testing.T) { CurrentLedger: uint32(192), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -527,7 +532,7 @@ func TestCaptivePrepareRange_ErrCatchup(t *testing.T) { ctx := context.Background() cancelCalled := false - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -565,7 +570,7 @@ func TestCaptivePrepareRangeUnboundedRange_ErrRunFrom(t *testing.T) { ctx := context.Background() cancelCalled := false - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -575,10 +580,13 @@ func TestCaptivePrepareRangeUnboundedRange_ErrRunFrom(t *testing.T) { cancelCalled = true }), } + captiveBackend.registerMetrics(prometheus.NewRegistry(), "test") err := captiveBackend.PrepareRange(ctx, UnboundedRange(128)) assert.EqualError(t, err, "error starting prepare range: opening subprocess: error running stellar-core: transient error") + assert.Equal(t, uint64(0), getStartDurationMetric(captiveBackend).GetSampleCount()) + // make sure we can Close without errors assert.NoError(t, captiveBackend.Close()) assert.True(t, cancelCalled) @@ -587,6 +595,15 @@ func TestCaptivePrepareRangeUnboundedRange_ErrRunFrom(t *testing.T) { mockRunner.AssertExpectations(t) } +func getStartDurationMetric(captiveCore *CaptiveStellarCore) *dto.Summary { + value := &dto.Metric{} + err := captiveCore.captiveCoreStartDuration.Write(value) + if err != nil { + panic(err) + } + return value.GetSummary() +} + func TestCaptivePrepareRangeUnboundedRange_ReuseSession(t *testing.T) { metaChan := make(chan metaResult, 100) @@ -617,21 +634,27 @@ func TestCaptivePrepareRangeUnboundedRange_ReuseSession(t *testing.T) { On("GetLedgerHeader", uint32(65)). Return(xdr.LedgerHeaderHistoryEntry{}, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner }, checkpointManager: historyarchive.NewCheckpointManager(64), } + captiveBackend.registerMetrics(prometheus.NewRegistry(), "test") err := captiveBackend.PrepareRange(ctx, UnboundedRange(65)) assert.NoError(t, err) + assert.Equal(t, uint64(1), getStartDurationMetric(captiveBackend).GetSampleCount()) + assert.Greater(t, getStartDurationMetric(captiveBackend).GetSampleSum(), float64(0)) + captiveBackend.nextLedger = 64 err = captiveBackend.PrepareRange(ctx, UnboundedRange(65)) assert.NoError(t, err) + assert.Equal(t, uint64(1), getStartDurationMetric(captiveBackend).GetSampleCount()) + mockArchive.AssertExpectations(t) mockRunner.AssertExpectations(t) } @@ -665,7 +688,7 @@ func TestGetLatestLedgerSequence(t *testing.T) { On("GetLedgerHeader", uint32(64)). Return(xdr.LedgerHeaderHistoryEntry{}, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -712,7 +735,7 @@ func TestGetLatestLedgerSequenceRaceCondition(t *testing.T) { On("GetLedgerHeader", mock.Anything). Return(xdr.LedgerHeaderHistoryEntry{}, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -775,7 +798,7 @@ func TestCaptiveGetLedger(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -873,7 +896,7 @@ func TestCaptiveGetLedgerCacheLatestLedger(t *testing.T) { }, }, nil).Once() - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -928,7 +951,7 @@ func TestCaptiveGetLedger_NextLedgerIsDifferentToLedgerFromBuffer(t *testing.T) CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -978,7 +1001,7 @@ func TestCaptiveGetLedger_NextLedger0RangeFromIsSmallerThanLedgerFromBuffer(t *t On("GetLedgerHeader", uint32(65)). Return(xdr.LedgerHeaderHistoryEntry{}, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -1081,7 +1104,7 @@ func TestCaptiveGetLedger_ErrReadingMetaResult(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -1134,7 +1157,7 @@ func TestCaptiveGetLedger_ErrClosingAfterLastLedger(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -1176,7 +1199,7 @@ func TestCaptiveAfterClose(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -1230,7 +1253,7 @@ func TestGetLedgerBoundsCheck(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -1356,7 +1379,7 @@ func TestCaptiveGetLedgerTerminatedUnexpectedly(t *testing.T) { CurrentLedger: uint32(200), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner @@ -1410,7 +1433,7 @@ func TestCaptiveUseOfLedgerHashStore(t *testing.T) { Return("mnb", true, nil).Once() cancelCalled := false - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, ledgerHashStore: mockLedgerHashStore, checkpointManager: historyarchive.NewCheckpointManager(64), @@ -1493,7 +1516,7 @@ func TestCaptiveRunFromParams(t *testing.T) { CurrentLedger: uint32(255), }, nil) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, checkpointManager: historyarchive.NewCheckpointManager(64), } @@ -1515,7 +1538,7 @@ func TestCaptiveIsPrepared(t *testing.T) { mockRunner.On("getProcessExitError").Return(nil, false) // c.prepared == nil - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ nextLedger: 0, } @@ -1548,7 +1571,7 @@ func TestCaptiveIsPrepared(t *testing.T) { for _, tc := range tests { t.Run(fmt.Sprintf("next_%d_last_%d_cached_%d_range_%v", tc.nextLedger, tc.lastLedger, tc.cachedLedger, tc.ledgerRange), func(t *testing.T) { - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ stellarCoreRunner: mockRunner, nextLedger: tc.nextLedger, prepared: &tc.preparedRange, @@ -1579,7 +1602,7 @@ func TestCaptiveIsPreparedCoreContextCancelled(t *testing.T) { mockRunner.On("getProcessExitError").Return(nil, false) rang := UnboundedRange(100) - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ nextLedger: 100, prepared: &rang, stellarCoreRunner: mockRunner, @@ -1650,7 +1673,7 @@ func TestCaptivePreviousLedgerCheck(t *testing.T) { mockLedgerHashStore.On("GetLedgerHash", ctx, uint32(299)). Return("", false, nil).Once() - captiveBackend := CaptiveStellarCore{ + captiveBackend := &CaptiveStellarCore{ archive: mockArchive, stellarCoreRunnerFactory: func() stellarCoreRunnerInterface { return mockRunner diff --git a/ingest/ledgerbackend/file_watcher_test.go b/ingest/ledgerbackend/file_watcher_test.go index 7e84bbfcf2..c3e85d643f 100644 --- a/ingest/ledgerbackend/file_watcher_test.go +++ b/ingest/ledgerbackend/file_watcher_test.go @@ -65,7 +65,7 @@ func createFWFixtures(t *testing.T) (*mockHash, *stellarCoreRunner, *fileWatcher Context: context.Background(), Toml: captiveCoreToml, StoragePath: storagePath, - }) + }, nil) fw, err := newFileWatcherWithOptions(runner, ms.hashFile, time.Millisecond) assert.NoError(t, err) @@ -96,7 +96,7 @@ func TestNewFileWatcherError(t *testing.T) { Context: context.Background(), Toml: captiveCoreToml, StoragePath: storagePath, - }) + }, nil) _, err = newFileWatcherWithOptions(runner, ms.hashFile, time.Millisecond) assert.EqualError(t, err, "could not hash captive core binary: test error") diff --git a/ingest/ledgerbackend/run_from.go b/ingest/ledgerbackend/run_from.go index 2d02322519..8a424da105 100644 --- a/ingest/ledgerbackend/run_from.go +++ b/ingest/ledgerbackend/run_from.go @@ -6,32 +6,36 @@ import ( "fmt" "runtime" + "github.com/prometheus/client_golang/prometheus" + "github.com/stellar/go/protocols/stellarcore" "github.com/stellar/go/support/log" ) type runFromStream struct { - dir workingDir - from uint32 - hash string - coreCmdFactory coreCmdFactory - log *log.Entry - useDB bool + dir workingDir + from uint32 + hash string + coreCmdFactory coreCmdFactory + log *log.Entry + useDB bool + captiveCoreNewDBCounter prometheus.Counter } -func newRunFromStream(r *stellarCoreRunner, from uint32, hash string) runFromStream { +func newRunFromStream(r *stellarCoreRunner, from uint32, hash string, captiveCoreNewDBCounter prometheus.Counter) runFromStream { // We only use ephemeral directories on windows because there is // no way to terminate captive core gracefully on windows. // Having an ephemeral directory ensures that it is wiped out // whenever we terminate captive core dir := newWorkingDir(r, runtime.GOOS == "windows") return runFromStream{ - dir: dir, - from: from, - hash: hash, - coreCmdFactory: newCoreCmdFactory(r, dir), - log: r.log, - useDB: r.useDB, + dir: dir, + from: from, + hash: hash, + coreCmdFactory: newCoreCmdFactory(r, dir), + log: r.log, + useDB: r.useDB, + captiveCoreNewDBCounter: captiveCoreNewDBCounter, } } @@ -79,6 +83,9 @@ func (s runFromStream) start(ctx context.Context) (cmd cmdI, captiveCorePipe pip } if createNewDB { + if s.captiveCoreNewDBCounter != nil { + s.captiveCoreNewDBCounter.Inc() + } if err = s.dir.remove(); err != nil { return nil, pipe{}, fmt.Errorf("error removing existing storage-dir contents: %w", err) } diff --git a/ingest/ledgerbackend/stellar_core_runner.go b/ingest/ledgerbackend/stellar_core_runner.go index 5245051dce..4f95e94f45 100644 --- a/ingest/ledgerbackend/stellar_core_runner.go +++ b/ingest/ledgerbackend/stellar_core_runner.go @@ -7,6 +7,8 @@ import ( "math/rand" "sync" + "github.com/prometheus/client_golang/prometheus" + "github.com/stellar/go/support/log" ) @@ -67,6 +69,8 @@ type stellarCoreRunner struct { toml *CaptiveCoreToml useDB bool + captiveCoreNewDBCounter prometheus.Counter + log *log.Entry } @@ -79,7 +83,7 @@ func createRandomHexString(n int) string { return string(b) } -func newStellarCoreRunner(config CaptiveCoreConfig) *stellarCoreRunner { +func newStellarCoreRunner(config CaptiveCoreConfig, captiveCoreNewDBCounter prometheus.Counter) *stellarCoreRunner { ctx, cancel := context.WithCancel(config.Context) runner := &stellarCoreRunner{ @@ -91,7 +95,8 @@ func newStellarCoreRunner(config CaptiveCoreConfig) *stellarCoreRunner { log: config.Log, toml: config.Toml, - systemCaller: realSystemCaller{}, + captiveCoreNewDBCounter: captiveCoreNewDBCounter, + systemCaller: realSystemCaller{}, } return runner @@ -104,7 +109,7 @@ func (r *stellarCoreRunner) context() context.Context { // runFrom executes the run command with a starting ledger on the captive core subprocess func (r *stellarCoreRunner) runFrom(from uint32, hash string) error { - return r.startMetaStream(newRunFromStream(r, from, hash)) + return r.startMetaStream(newRunFromStream(r, from, hash, r.captiveCoreNewDBCounter)) } // catchup executes the catchup command on the captive core subprocess diff --git a/ingest/ledgerbackend/stellar_core_runner_test.go b/ingest/ledgerbackend/stellar_core_runner_test.go index f53cd88328..06b9c85fce 100644 --- a/ingest/ledgerbackend/stellar_core_runner_test.go +++ b/ingest/ledgerbackend/stellar_core_runner_test.go @@ -7,6 +7,8 @@ import ( "testing" "time" + "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -26,7 +28,7 @@ func TestCloseOffline(t *testing.T) { Context: context.Background(), Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", - }) + }, nil) cmdMock := simpleCommandMock() cmdMock.On("Wait").Return(nil) @@ -68,7 +70,7 @@ func TestCloseOnline(t *testing.T) { Context: context.Background(), Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", - }) + }, nil) cmdMock := simpleCommandMock() cmdMock.On("Wait").Return(nil) @@ -112,7 +114,7 @@ func TestCloseOnlineWithError(t *testing.T) { Context: context.Background(), Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", - }) + }, nil) cmdMock := simpleCommandMock() cmdMock.On("Wait").Return(errors.New("wait error")) @@ -166,7 +168,7 @@ func TestCloseConcurrency(t *testing.T) { Context: context.Background(), Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", - }) + }, nil) cmdMock := simpleCommandMock() cmdMock.On("Wait").Return(errors.New("wait error")).WaitUntil(time.After(time.Millisecond * 300)) @@ -223,7 +225,7 @@ func TestRunFromUseDBLedgersMatch(t *testing.T) { Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", UseDB: true, - }) + }, createNewDBCounter()) cmdMock := simpleCommandMock() cmdMock.On("Wait").Return(nil) @@ -263,6 +265,8 @@ func TestRunFromUseDBLedgersMatch(t *testing.T) { assert.NoError(t, runner.runFrom(100, "hash")) assert.NoError(t, runner.close()) + + assert.Equal(t, float64(0), getNewDBCounterMetric(runner)) } func TestRunFromUseDBLedgersBehind(t *testing.T) { @@ -279,7 +283,7 @@ func TestRunFromUseDBLedgersBehind(t *testing.T) { Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", UseDB: true, - }) + }, createNewDBCounter()) newDBCmdMock := simpleCommandMock() newDBCmdMock.On("Run").Return(nil) @@ -325,6 +329,23 @@ func TestRunFromUseDBLedgersBehind(t *testing.T) { assert.NoError(t, runner.runFrom(100, "hash")) assert.NoError(t, runner.close()) + + assert.Equal(t, float64(0), getNewDBCounterMetric(runner)) +} + +func createNewDBCounter() prometheus.Counter { + return prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: "test", Subsystem: "captive_core", Name: "new_db_counter", + }) +} + +func getNewDBCounterMetric(runner *stellarCoreRunner) float64 { + value := &dto.Metric{} + err := runner.captiveCoreNewDBCounter.Write(value) + if err != nil { + panic(err) + } + return value.GetCounter().GetValue() } func TestRunFromUseDBLedgersInFront(t *testing.T) { @@ -341,7 +362,7 @@ func TestRunFromUseDBLedgersInFront(t *testing.T) { Toml: captiveCoreToml, StoragePath: "/tmp/captive-core", UseDB: true, - }) + }, createNewDBCounter()) newDBCmdMock := simpleCommandMock() newDBCmdMock.On("Run").Return(nil) @@ -405,4 +426,5 @@ func TestRunFromUseDBLedgersInFront(t *testing.T) { assert.NoError(t, runner.runFrom(100, "hash")) assert.NoError(t, runner.close()) + assert.Equal(t, float64(1), getNewDBCounterMetric(runner)) } From eb4b2ab750b840f96339ecbc017a68a0ef5272ff Mon Sep 17 00:00:00 2001 From: tamirms Date: Fri, 6 Sep 2024 07:44:26 +0100 Subject: [PATCH 03/13] services/horizon/internal/ingest: reap lookup tables without blocking ingestion (#5405) --- .../internal/db2/history/account_loader.go | 303 +-------------- .../db2/history/account_loader_test.go | 12 +- .../internal/db2/history/asset_loader.go | 5 +- .../internal/db2/history/asset_loader_test.go | 11 +- .../db2/history/claimable_balance_loader.go | 5 +- .../history/claimable_balance_loader_test.go | 11 +- .../effect_batch_insert_builder_test.go | 2 +- .../internal/db2/history/effect_test.go | 6 +- .../internal/db2/history/fee_bump_scenario.go | 2 +- .../horizon/internal/db2/history/key_value.go | 44 +-- .../db2/history/liquidity_pool_loader.go | 7 +- .../db2/history/liquidity_pool_loader_test.go | 11 +- .../horizon/internal/db2/history/loader.go | 365 ++++++++++++++++++ .../db2/history/loader_concurrency_test.go | 197 ++++++++++ services/horizon/internal/db2/history/main.go | 194 ++++++---- .../horizon/internal/db2/history/main_test.go | 24 +- ...n_participant_batch_insert_builder_test.go | 2 +- .../internal/db2/history/operation_test.go | 2 +- .../internal/db2/history/participants_test.go | 2 +- .../horizon/internal/db2/history/reap_test.go | 57 +-- .../internal/db2/history/transaction_test.go | 8 +- .../internal/db2/history/verify_lock.go | 10 +- services/horizon/internal/ingest/main.go | 83 +--- services/horizon/internal/ingest/main_test.go | 20 +- .../internal/ingest/processor_runner.go | 18 +- .../internal/ingest/processor_runner_test.go | 2 +- ...ble_balances_transaction_processor_test.go | 2 +- .../processors/effects_processor_test.go | 12 +- ...uidity_pools_transaction_processor_test.go | 2 +- .../processors/participants_processor_test.go | 2 +- services/horizon/internal/ingest/reap.go | 116 ++++++ .../internal/ingest/resume_state_test.go | 10 - 32 files changed, 984 insertions(+), 563 deletions(-) create mode 100644 services/horizon/internal/db2/history/loader.go create mode 100644 services/horizon/internal/db2/history/loader_concurrency_test.go diff --git a/services/horizon/internal/db2/history/account_loader.go b/services/horizon/internal/db2/history/account_loader.go index 9e15920609..f69e7d7f48 100644 --- a/services/horizon/internal/db2/history/account_loader.go +++ b/services/horizon/internal/db2/history/account_loader.go @@ -2,29 +2,10 @@ package history import ( "cmp" - "context" - "database/sql/driver" - "fmt" - "sort" - "strings" - - "github.com/lib/pq" "github.com/stellar/go/support/collections/set" - "github.com/stellar/go/support/db" - "github.com/stellar/go/support/errors" ) -var errSealed = errors.New("cannot register more entries to Loader after calling Exec()") - -// LoaderStats describes the result of executing a history lookup id Loader -type LoaderStats struct { - // Total is the number of elements registered to the Loader - Total int - // Inserted is the number of elements inserted into the lookup table - Inserted int -} - // FutureAccountID represents a future history account. // A FutureAccountID is created by an AccountLoader and // the account id is available after calling Exec() on @@ -38,7 +19,7 @@ type FutureAccountID = future[string, Account] type AccountLoader = loader[string, Account] // NewAccountLoader will construct a new AccountLoader instance. -func NewAccountLoader() *AccountLoader { +func NewAccountLoader(concurrencyMode ConcurrencyMode) *AccountLoader { return &AccountLoader{ sealed: false, set: set.Set[string]{}, @@ -58,287 +39,11 @@ func NewAccountLoader() *AccountLoader { mappingFromRow: func(account Account) (string, int64) { return account.Address, account.ID }, - less: cmp.Less[string], + less: cmp.Less[string], + concurrencyMode: concurrencyMode, } } -type loader[K comparable, T any] struct { - sealed bool - set set.Set[K] - ids map[K]int64 - stats LoaderStats - name string - table string - columnsForKeys func([]K) []columnValues - mappingFromRow func(T) (K, int64) - less func(K, K) bool -} - -type future[K comparable, T any] struct { - key K - loader *loader[K, T] -} - -// Value implements the database/sql/driver Valuer interface. -func (f future[K, T]) Value() (driver.Value, error) { - return f.loader.GetNow(f.key) -} - -// GetFuture registers the given key into the Loader and -// returns a future which will hold the history id for -// the key after Exec() is called. -func (l *loader[K, T]) GetFuture(key K) future[K, T] { - if l.sealed { - panic(errSealed) - } - - l.set.Add(key) - return future[K, T]{ - key: key, - loader: l, - } -} - -// GetNow returns the history id for the given key. -// GetNow should only be called on values which were registered by -// GetFuture() calls. Also, Exec() must be called before any GetNow -// call can succeed. -func (l *loader[K, T]) GetNow(key K) (int64, error) { - if !l.sealed { - return 0, fmt.Errorf(`invalid loader state, - Exec was not called yet to properly seal and resolve %v id`, key) - } - if internalID, ok := l.ids[key]; !ok { - return 0, fmt.Errorf(`loader key %v was not found`, key) - } else { - return internalID, nil - } -} - -// Exec will look up all the history ids for the keys registered in the Loader. -// If there are no history ids for a given set of keys, Exec will insert rows -// into the corresponding history table to establish a mapping between each key and its history id. -func (l *loader[K, T]) Exec(ctx context.Context, session db.SessionInterface) error { - l.sealed = true - if len(l.set) == 0 { - return nil - } - q := &Q{session} - keys := make([]K, 0, len(l.set)) - for key := range l.set { - keys = append(keys, key) - } - // sort entries before inserting rows to prevent deadlocks on acquiring a ShareLock - // https://github.com/stellar/go/issues/2370 - sort.Slice(keys, func(i, j int) bool { - return l.less(keys[i], keys[j]) - }) - - if count, err := l.insert(ctx, q, keys); err != nil { - return err - } else { - l.stats.Total += count - l.stats.Inserted += count - } - - if count, err := l.query(ctx, q, keys); err != nil { - return err - } else { - l.stats.Total += count - } - - return nil -} - -// Stats returns the number of addresses registered in the Loader and the number of rows -// inserted into the history table. -func (l *loader[K, T]) Stats() LoaderStats { - return l.stats -} - -func (l *loader[K, T]) Name() string { - return l.name -} - -func (l *loader[K, T]) filter(keys []K) []K { - if len(l.ids) == 0 { - return keys - } - - remaining := make([]K, 0, len(keys)) - for _, key := range keys { - if _, ok := l.ids[key]; ok { - continue - } - remaining = append(remaining, key) - } - return remaining -} - -func (l *loader[K, T]) updateMap(rows []T) { - for _, row := range rows { - key, id := l.mappingFromRow(row) - l.ids[key] = id - } -} - -func (l *loader[K, T]) insert(ctx context.Context, q *Q, keys []K) (int, error) { - keys = l.filter(keys) - if len(keys) == 0 { - return 0, nil - } - - var rows []T - err := bulkInsert( - ctx, - q, - l.table, - l.columnsForKeys(keys), - &rows, - ) - if err != nil { - return 0, err - } - - l.updateMap(rows) - return len(rows), nil -} - -func (l *loader[K, T]) query(ctx context.Context, q *Q, keys []K) (int, error) { - keys = l.filter(keys) - if len(keys) == 0 { - return 0, nil - } - - var rows []T - err := bulkGet( - ctx, - q, - l.table, - l.columnsForKeys(keys), - &rows, - ) - if err != nil { - return 0, err - } - - l.updateMap(rows) - return len(rows), nil -} - -type columnValues struct { - name string - dbType string - objects []string -} - -func bulkInsert(ctx context.Context, q *Q, table string, fields []columnValues, response interface{}) error { - unnestPart := make([]string, 0, len(fields)) - insertFieldsPart := make([]string, 0, len(fields)) - pqArrays := make([]interface{}, 0, len(fields)) - - // In the code below we are building the bulk insert query which looks like: - // - // WITH rows AS - // (SELECT - // /* unnestPart */ - // unnest(?::type1[]), /* field1 */ - // unnest(?::type2[]), /* field2 */ - // ... - // ) - // INSERT INTO table ( - // /* insertFieldsPart */ - // field1, - // field2, - // ... - // ) - // SELECT * FROM rows ON CONFLICT (field1, field2, ...) DO NOTHING RETURNING * - // - // Using unnest allows to get around the maximum limit of 65,535 query parameters, - // see https://www.postgresql.org/docs/12/limits.html and - // https://klotzandrew.com/blog/postgres-passing-65535-parameter-limit/ - // - // Without using unnest we would have to use multiple insert statements to insert - // all the rows for large datasets. - for _, field := range fields { - unnestPart = append( - unnestPart, - fmt.Sprintf("unnest(?::%s[]) /* %s */", field.dbType, field.name), - ) - insertFieldsPart = append( - insertFieldsPart, - field.name, - ) - pqArrays = append( - pqArrays, - pq.Array(field.objects), - ) - } - columns := strings.Join(insertFieldsPart, ",") - - sql := ` - WITH rows AS - (SELECT ` + strings.Join(unnestPart, ",") + `) - INSERT INTO ` + table + ` - (` + columns + `) - SELECT * FROM rows - ON CONFLICT (` + columns + `) DO NOTHING - RETURNING *` - - return q.SelectRaw( - ctx, - response, - sql, - pqArrays..., - ) -} - -func bulkGet(ctx context.Context, q *Q, table string, fields []columnValues, response interface{}) error { - unnestPart := make([]string, 0, len(fields)) - columns := make([]string, 0, len(fields)) - pqArrays := make([]interface{}, 0, len(fields)) - - // In the code below we are building the bulk get query which looks like: - // - // SELECT * FROM table WHERE (field1, field2, ...) IN - // (SELECT - // /* unnestPart */ - // unnest(?::type1[]), /* field1 */ - // unnest(?::type2[]), /* field2 */ - // ... - // ) - // - // Using unnest allows to get around the maximum limit of 65,535 query parameters, - // see https://www.postgresql.org/docs/12/limits.html and - // https://klotzandrew.com/blog/postgres-passing-65535-parameter-limit/ - // - // Without using unnest we would have to use multiple select statements to obtain - // all the rows for large datasets. - for _, field := range fields { - unnestPart = append( - unnestPart, - fmt.Sprintf("unnest(?::%s[]) /* %s */", field.dbType, field.name), - ) - columns = append( - columns, - field.name, - ) - pqArrays = append( - pqArrays, - pq.Array(field.objects), - ) - } - sql := `SELECT * FROM ` + table + ` WHERE (` + strings.Join(columns, ",") + `) IN - (SELECT ` + strings.Join(unnestPart, ",") + `)` - - return q.SelectRaw( - ctx, - response, - sql, - pqArrays..., - ) -} - // AccountLoaderStub is a stub wrapper around AccountLoader which allows // you to manually configure the mapping of addresses to history account ids type AccountLoaderStub struct { @@ -347,7 +52,7 @@ type AccountLoaderStub struct { // NewAccountLoaderStub returns a new AccountLoaderStub instance func NewAccountLoaderStub() AccountLoaderStub { - return AccountLoaderStub{Loader: NewAccountLoader()} + return AccountLoaderStub{Loader: NewAccountLoader(ConcurrentInserts)} } // Insert updates the wrapped AccountLoader so that the given account diff --git a/services/horizon/internal/db2/history/account_loader_test.go b/services/horizon/internal/db2/history/account_loader_test.go index 9a9fb30445..83b172b40b 100644 --- a/services/horizon/internal/db2/history/account_loader_test.go +++ b/services/horizon/internal/db2/history/account_loader_test.go @@ -8,6 +8,7 @@ import ( "github.com/stellar/go/keypair" "github.com/stellar/go/services/horizon/internal/test" + "github.com/stellar/go/support/db" ) func TestAccountLoader(t *testing.T) { @@ -16,12 +17,18 @@ func TestAccountLoader(t *testing.T) { test.ResetHorizonDB(t, tt.HorizonDB) session := tt.HorizonSession() + testAccountLoader(t, session, ConcurrentInserts) + test.ResetHorizonDB(t, tt.HorizonDB) + testAccountLoader(t, session, ConcurrentDeletes) +} + +func testAccountLoader(t *testing.T, session *db.Session, mode ConcurrencyMode) { var addresses []string for i := 0; i < 100; i++ { addresses = append(addresses, keypair.MustRandom().Address()) } - loader := NewAccountLoader() + loader := NewAccountLoader(mode) for _, address := range addresses { future := loader.GetFuture(address) _, err := future.Value() @@ -58,7 +65,7 @@ func TestAccountLoader(t *testing.T) { // check that Loader works when all the previous values are already // present in the db and also add 10 more rows to insert - loader = NewAccountLoader() + loader = NewAccountLoader(mode) for i := 0; i < 10; i++ { addresses = append(addresses, keypair.MustRandom().Address()) } @@ -85,5 +92,4 @@ func TestAccountLoader(t *testing.T) { assert.Equal(t, account.ID, internalId) assert.Equal(t, account.Address, address) } - } diff --git a/services/horizon/internal/db2/history/asset_loader.go b/services/horizon/internal/db2/history/asset_loader.go index cdd2a0d714..33c5c333dd 100644 --- a/services/horizon/internal/db2/history/asset_loader.go +++ b/services/horizon/internal/db2/history/asset_loader.go @@ -42,7 +42,7 @@ type FutureAssetID = future[AssetKey, Asset] type AssetLoader = loader[AssetKey, Asset] // NewAssetLoader will construct a new AssetLoader instance. -func NewAssetLoader() *AssetLoader { +func NewAssetLoader(concurrencyMode ConcurrencyMode) *AssetLoader { return &AssetLoader{ sealed: false, set: set.Set[AssetKey]{}, @@ -88,6 +88,7 @@ func NewAssetLoader() *AssetLoader { less: func(a AssetKey, b AssetKey) bool { return a.String() < b.String() }, + concurrencyMode: concurrencyMode, } } @@ -99,7 +100,7 @@ type AssetLoaderStub struct { // NewAssetLoaderStub returns a new AssetLoaderStub instance func NewAssetLoaderStub() AssetLoaderStub { - return AssetLoaderStub{Loader: NewAssetLoader()} + return AssetLoaderStub{Loader: NewAssetLoader(ConcurrentInserts)} } // Insert updates the wrapped AssetLoaderStub so that the given asset diff --git a/services/horizon/internal/db2/history/asset_loader_test.go b/services/horizon/internal/db2/history/asset_loader_test.go index ca65cebb7e..e7a0495cad 100644 --- a/services/horizon/internal/db2/history/asset_loader_test.go +++ b/services/horizon/internal/db2/history/asset_loader_test.go @@ -9,6 +9,7 @@ import ( "github.com/stellar/go/keypair" "github.com/stellar/go/services/horizon/internal/test" + "github.com/stellar/go/support/db" "github.com/stellar/go/xdr" ) @@ -40,6 +41,12 @@ func TestAssetLoader(t *testing.T) { test.ResetHorizonDB(t, tt.HorizonDB) session := tt.HorizonSession() + testAssetLoader(t, session, ConcurrentInserts) + test.ResetHorizonDB(t, tt.HorizonDB) + testAssetLoader(t, session, ConcurrentDeletes) +} + +func testAssetLoader(t *testing.T, session *db.Session, mode ConcurrencyMode) { var keys []AssetKey for i := 0; i < 100; i++ { var key AssetKey @@ -66,7 +73,7 @@ func TestAssetLoader(t *testing.T) { keys = append(keys, key) } - loader := NewAssetLoader() + loader := NewAssetLoader(mode) for _, key := range keys { future := loader.GetFuture(key) _, err := future.Value() @@ -109,7 +116,7 @@ func TestAssetLoader(t *testing.T) { // check that Loader works when all the previous values are already // present in the db and also add 10 more rows to insert - loader = NewAssetLoader() + loader = NewAssetLoader(mode) for i := 0; i < 10; i++ { var key AssetKey if i%2 == 0 { diff --git a/services/horizon/internal/db2/history/claimable_balance_loader.go b/services/horizon/internal/db2/history/claimable_balance_loader.go index f775ea4b24..9107d4fb9f 100644 --- a/services/horizon/internal/db2/history/claimable_balance_loader.go +++ b/services/horizon/internal/db2/history/claimable_balance_loader.go @@ -19,7 +19,7 @@ type FutureClaimableBalanceID = future[string, HistoryClaimableBalance] type ClaimableBalanceLoader = loader[string, HistoryClaimableBalance] // NewClaimableBalanceLoader will construct a new ClaimableBalanceLoader instance. -func NewClaimableBalanceLoader() *ClaimableBalanceLoader { +func NewClaimableBalanceLoader(concurrencyMode ConcurrencyMode) *ClaimableBalanceLoader { return &ClaimableBalanceLoader{ sealed: false, set: set.Set[string]{}, @@ -39,6 +39,7 @@ func NewClaimableBalanceLoader() *ClaimableBalanceLoader { mappingFromRow: func(row HistoryClaimableBalance) (string, int64) { return row.BalanceID, row.InternalID }, - less: cmp.Less[string], + less: cmp.Less[string], + concurrencyMode: concurrencyMode, } } diff --git a/services/horizon/internal/db2/history/claimable_balance_loader_test.go b/services/horizon/internal/db2/history/claimable_balance_loader_test.go index f5759015c7..490d5a0f70 100644 --- a/services/horizon/internal/db2/history/claimable_balance_loader_test.go +++ b/services/horizon/internal/db2/history/claimable_balance_loader_test.go @@ -8,6 +8,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stellar/go/services/horizon/internal/test" + "github.com/stellar/go/support/db" "github.com/stellar/go/xdr" ) @@ -17,6 +18,12 @@ func TestClaimableBalanceLoader(t *testing.T) { test.ResetHorizonDB(t, tt.HorizonDB) session := tt.HorizonSession() + testCBLoader(t, tt, session, ConcurrentInserts) + test.ResetHorizonDB(t, tt.HorizonDB) + testCBLoader(t, tt, session, ConcurrentDeletes) +} + +func testCBLoader(t *testing.T, tt *test.T, session *db.Session, mode ConcurrencyMode) { var ids []string for i := 0; i < 100; i++ { balanceID := xdr.ClaimableBalanceId{ @@ -28,7 +35,7 @@ func TestClaimableBalanceLoader(t *testing.T) { ids = append(ids, id) } - loader := NewClaimableBalanceLoader() + loader := NewClaimableBalanceLoader(mode) var futures []FutureClaimableBalanceID for _, id := range ids { future := loader.GetFuture(id) @@ -70,7 +77,7 @@ func TestClaimableBalanceLoader(t *testing.T) { // check that Loader works when all the previous values are already // present in the db and also add 10 more rows to insert - loader = NewClaimableBalanceLoader() + loader = NewClaimableBalanceLoader(mode) for i := 100; i < 110; i++ { balanceID := xdr.ClaimableBalanceId{ Type: xdr.ClaimableBalanceIdTypeClaimableBalanceIdTypeV0, diff --git a/services/horizon/internal/db2/history/effect_batch_insert_builder_test.go b/services/horizon/internal/db2/history/effect_batch_insert_builder_test.go index e1ac998953..e917983b8f 100644 --- a/services/horizon/internal/db2/history/effect_batch_insert_builder_test.go +++ b/services/horizon/internal/db2/history/effect_batch_insert_builder_test.go @@ -20,7 +20,7 @@ func TestAddEffect(t *testing.T) { address := "GAQAA5L65LSYH7CQ3VTJ7F3HHLGCL3DSLAR2Y47263D56MNNGHSQSTVY" muxedAddres := "MAQAA5L65LSYH7CQ3VTJ7F3HHLGCL3DSLAR2Y47263D56MNNGHSQSAAAAAAAAAAE2LP26" - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) builder := q.NewEffectBatchInsertBuilder() sequence := int32(56) diff --git a/services/horizon/internal/db2/history/effect_test.go b/services/horizon/internal/db2/history/effect_test.go index 19af0ceff8..ba59cf3fd4 100644 --- a/services/horizon/internal/db2/history/effect_test.go +++ b/services/horizon/internal/db2/history/effect_test.go @@ -23,7 +23,7 @@ func TestEffectsForLiquidityPool(t *testing.T) { // Insert Effect address := "GAQAA5L65LSYH7CQ3VTJ7F3HHLGCL3DSLAR2Y47263D56MNNGHSQSTVY" muxedAddres := "MAQAA5L65LSYH7CQ3VTJ7F3HHLGCL3DSLAR2Y47263D56MNNGHSQSAAAAAAAAAAE2LP26" - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) builder := q.NewEffectBatchInsertBuilder() sequence := int32(56) @@ -47,7 +47,7 @@ func TestEffectsForLiquidityPool(t *testing.T) { // Insert Liquidity Pool history liquidityPoolID := "abcde" - lpLoader := NewLiquidityPoolLoader() + lpLoader := NewLiquidityPoolLoader(ConcurrentInserts) operationBuilder := q.NewOperationLiquidityPoolBatchInsertBuilder() tt.Assert.NoError(operationBuilder.Add(opID, lpLoader.GetFuture(liquidityPoolID))) @@ -78,7 +78,7 @@ func TestEffectsForTrustlinesSponsorshipEmptyAssetType(t *testing.T) { address := "GAQAA5L65LSYH7CQ3VTJ7F3HHLGCL3DSLAR2Y47263D56MNNGHSQSTVY" muxedAddres := "MAQAA5L65LSYH7CQ3VTJ7F3HHLGCL3DSLAR2Y47263D56MNNGHSQSAAAAAAAAAAE2LP26" - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) builder := q.NewEffectBatchInsertBuilder() sequence := int32(56) diff --git a/services/horizon/internal/db2/history/fee_bump_scenario.go b/services/horizon/internal/db2/history/fee_bump_scenario.go index da6563c732..e161d686d1 100644 --- a/services/horizon/internal/db2/history/fee_bump_scenario.go +++ b/services/horizon/internal/db2/history/fee_bump_scenario.go @@ -288,7 +288,7 @@ func FeeBumpScenario(tt *test.T, q *Q, successful bool) FeeBumpFixture { details, err = json.Marshal(map[string]interface{}{"new_seq": 98}) tt.Assert.NoError(err) - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) err = effectBuilder.Add( accountLoader.GetFuture(account.Address()), diff --git a/services/horizon/internal/db2/history/key_value.go b/services/horizon/internal/db2/history/key_value.go index 3d23451937..9fee9513c2 100644 --- a/services/horizon/internal/db2/history/key_value.go +++ b/services/horizon/internal/db2/history/key_value.go @@ -5,7 +5,6 @@ import ( "database/sql" "fmt" "strconv" - "strings" sq "github.com/Masterminds/squirrel" @@ -207,41 +206,26 @@ func (q *Q) getValueFromStore(ctx context.Context, key string, forUpdate bool) ( return value, nil } -type KeyValuePair struct { - Key string `db:"key"` - Value string `db:"value"` -} - -func (q *Q) getLookupTableReapOffsets(ctx context.Context) (map[string]int64, error) { - keys := make([]string, 0, len(historyLookupTables)) - for table := range historyLookupTables { - keys = append(keys, table+lookupTableReapOffsetSuffix) - } - offsets := map[string]int64{} - var pairs []KeyValuePair - query := sq.Select("key", "value"). +func (q *Q) getLookupTableReapOffset(ctx context.Context, table string) (int64, error) { + query := sq.Select("value"). From("key_value_store"). Where(map[string]interface{}{ - "key": keys, + "key": table + lookupTableReapOffsetSuffix, }) - err := q.Select(ctx, &pairs, query) + var text string + err := q.Get(ctx, &text, query) if err != nil { - return nil, err - } - for _, pair := range pairs { - table := strings.TrimSuffix(pair.Key, lookupTableReapOffsetSuffix) - if _, ok := historyLookupTables[table]; !ok { - return nil, fmt.Errorf("invalid key: %s", pair.Key) - } - - var offset int64 - offset, err = strconv.ParseInt(pair.Value, 10, 64) - if err != nil { - return nil, fmt.Errorf("invalid offset: %s", pair.Value) + if errors.Cause(err) == sql.ErrNoRows { + return 0, nil } - offsets[table] = offset + return 0, err + } + var offset int64 + offset, err = strconv.ParseInt(text, 10, 64) + if err != nil { + return 0, fmt.Errorf("invalid offset: %s for table %s", text, table) } - return offsets, err + return offset, nil } func (q *Q) updateLookupTableReapOffset(ctx context.Context, table string, offset int64) error { diff --git a/services/horizon/internal/db2/history/liquidity_pool_loader.go b/services/horizon/internal/db2/history/liquidity_pool_loader.go index a03caaa988..5da2a7b6fd 100644 --- a/services/horizon/internal/db2/history/liquidity_pool_loader.go +++ b/services/horizon/internal/db2/history/liquidity_pool_loader.go @@ -19,7 +19,7 @@ type FutureLiquidityPoolID = future[string, HistoryLiquidityPool] type LiquidityPoolLoader = loader[string, HistoryLiquidityPool] // NewLiquidityPoolLoader will construct a new LiquidityPoolLoader instance. -func NewLiquidityPoolLoader() *LiquidityPoolLoader { +func NewLiquidityPoolLoader(concurrencyMode ConcurrencyMode) *LiquidityPoolLoader { return &LiquidityPoolLoader{ sealed: false, set: set.Set[string]{}, @@ -39,7 +39,8 @@ func NewLiquidityPoolLoader() *LiquidityPoolLoader { mappingFromRow: func(row HistoryLiquidityPool) (string, int64) { return row.PoolID, row.InternalID }, - less: cmp.Less[string], + less: cmp.Less[string], + concurrencyMode: concurrencyMode, } } @@ -51,7 +52,7 @@ type LiquidityPoolLoaderStub struct { // NewLiquidityPoolLoaderStub returns a new LiquidityPoolLoader instance func NewLiquidityPoolLoaderStub() LiquidityPoolLoaderStub { - return LiquidityPoolLoaderStub{Loader: NewLiquidityPoolLoader()} + return LiquidityPoolLoaderStub{Loader: NewLiquidityPoolLoader(ConcurrentInserts)} } // Insert updates the wrapped LiquidityPoolLoader so that the given liquidity pool diff --git a/services/horizon/internal/db2/history/liquidity_pool_loader_test.go b/services/horizon/internal/db2/history/liquidity_pool_loader_test.go index aec2fcd886..c7a1282760 100644 --- a/services/horizon/internal/db2/history/liquidity_pool_loader_test.go +++ b/services/horizon/internal/db2/history/liquidity_pool_loader_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stellar/go/services/horizon/internal/test" + "github.com/stellar/go/support/db" "github.com/stellar/go/xdr" ) @@ -16,6 +17,12 @@ func TestLiquidityPoolLoader(t *testing.T) { test.ResetHorizonDB(t, tt.HorizonDB) session := tt.HorizonSession() + testLPLoader(t, tt, session, ConcurrentInserts) + test.ResetHorizonDB(t, tt.HorizonDB) + testLPLoader(t, tt, session, ConcurrentDeletes) +} + +func testLPLoader(t *testing.T, tt *test.T, session *db.Session, mode ConcurrencyMode) { var ids []string for i := 0; i < 100; i++ { poolID := xdr.PoolId{byte(i)} @@ -24,7 +31,7 @@ func TestLiquidityPoolLoader(t *testing.T) { ids = append(ids, id) } - loader := NewLiquidityPoolLoader() + loader := NewLiquidityPoolLoader(mode) for _, id := range ids { future := loader.GetFuture(id) _, err := future.Value() @@ -62,7 +69,7 @@ func TestLiquidityPoolLoader(t *testing.T) { // check that Loader works when all the previous values are already // present in the db and also add 10 more rows to insert - loader = NewLiquidityPoolLoader() + loader = NewLiquidityPoolLoader(mode) for i := 100; i < 110; i++ { poolID := xdr.PoolId{byte(i)} var id string diff --git a/services/horizon/internal/db2/history/loader.go b/services/horizon/internal/db2/history/loader.go new file mode 100644 index 0000000000..dc2236accb --- /dev/null +++ b/services/horizon/internal/db2/history/loader.go @@ -0,0 +1,365 @@ +package history + +import ( + "context" + "database/sql/driver" + "fmt" + "sort" + "strings" + + "github.com/lib/pq" + + "github.com/stellar/go/support/collections/set" + "github.com/stellar/go/support/db" +) + +var errSealed = fmt.Errorf("cannot register more entries to Loader after calling Exec()") + +// ConcurrencyMode is used to configure the level of thread-safety for a loader +type ConcurrencyMode int + +func (cm ConcurrencyMode) String() string { + switch cm { + case ConcurrentInserts: + return "ConcurrentInserts" + case ConcurrentDeletes: + return "ConcurrentDeletes" + default: + return "unknown" + } +} + +const ( + _ ConcurrencyMode = iota + // ConcurrentInserts configures the loader to maintain safety when there are multiple loaders + // inserting into the same table concurrently. This ConcurrencyMode is suitable for parallel reingestion. + // Note while ConcurrentInserts is enabled it is not safe to have deletes occurring concurrently on the + // same table. + ConcurrentInserts + // ConcurrentDeletes configures the loader to maintain safety when there is another thread which is invoking + // reapLookupTable() to delete rows from the same table concurrently. This ConcurrencyMode is suitable for + // live ingestion when reaping of lookup tables is enabled. + // Note while ConcurrentDeletes is enabled it is not safe to have multiple threads inserting concurrently to the + // same table. + ConcurrentDeletes +) + +// LoaderStats describes the result of executing a history lookup id Loader +type LoaderStats struct { + // Total is the number of elements registered to the Loader + Total int + // Inserted is the number of elements inserted into the lookup table + Inserted int +} + +type loader[K comparable, T any] struct { + sealed bool + set set.Set[K] + ids map[K]int64 + stats LoaderStats + name string + table string + columnsForKeys func([]K) []columnValues + mappingFromRow func(T) (K, int64) + less func(K, K) bool + concurrencyMode ConcurrencyMode +} + +type future[K comparable, T any] struct { + key K + loader *loader[K, T] +} + +// Value implements the database/sql/driver Valuer interface. +func (f future[K, T]) Value() (driver.Value, error) { + return f.loader.GetNow(f.key) +} + +// GetFuture registers the given key into the Loader and +// returns a future which will hold the history id for +// the key after Exec() is called. +func (l *loader[K, T]) GetFuture(key K) future[K, T] { + if l.sealed { + panic(errSealed) + } + + l.set.Add(key) + return future[K, T]{ + key: key, + loader: l, + } +} + +// GetNow returns the history id for the given key. +// GetNow should only be called on values which were registered by +// GetFuture() calls. Also, Exec() must be called before any GetNow +// call can succeed. +func (l *loader[K, T]) GetNow(key K) (int64, error) { + if !l.sealed { + return 0, fmt.Errorf(`invalid loader state, + Exec was not called yet to properly seal and resolve %v id`, key) + } + if internalID, ok := l.ids[key]; !ok { + return 0, fmt.Errorf(`loader key %v was not found`, key) + } else { + return internalID, nil + } +} + +// Exec will look up all the history ids for the keys registered in the Loader. +// If there are no history ids for a given set of keys, Exec will insert rows +// into the corresponding history table to establish a mapping between each key and its history id. +func (l *loader[K, T]) Exec(ctx context.Context, session db.SessionInterface) error { + l.sealed = true + if len(l.set) == 0 { + return nil + } + q := &Q{session} + keys := make([]K, 0, len(l.set)) + for key := range l.set { + keys = append(keys, key) + } + // sort entries before inserting rows to prevent deadlocks on acquiring a ShareLock + // https://github.com/stellar/go/issues/2370 + sort.Slice(keys, func(i, j int) bool { + return l.less(keys[i], keys[j]) + }) + + if l.concurrencyMode == ConcurrentInserts { + // if there are other ingestion transactions running concurrently, + // we need to first insert the records (with a ON CONFLICT DO NOTHING + // clause). Then, we can query for the remaining records. + // This order (insert first and then query) is important because + // if multiple concurrent transactions try to insert the same record + // only one of them will succeed and the other transactions will omit + // the record from the RETURNING set. + if count, err := l.insert(ctx, q, keys); err != nil { + return err + } else { + l.stats.Total += count + l.stats.Inserted += count + } + + if count, err := l.query(ctx, q, keys, false); err != nil { + return err + } else { + l.stats.Total += count + } + } else if l.concurrencyMode == ConcurrentDeletes { + // if the lookup table reaping transaction is running concurrently, + // we need to lock the rows from the lookup table to ensure that + // the reaper cannot run until after the ingestion transaction has + // been committed. + if count, err := l.query(ctx, q, keys, true); err != nil { + return err + } else { + l.stats.Total += count + } + + // insert whatever records were not found from l.query() + if count, err := l.insert(ctx, q, keys); err != nil { + return err + } else { + l.stats.Total += count + l.stats.Inserted += count + } + } else { + return fmt.Errorf("concurrency mode %v is invalid", l.concurrencyMode) + } + + return nil +} + +// Stats returns the number of addresses registered in the Loader and the number of rows +// inserted into the history table. +func (l *loader[K, T]) Stats() LoaderStats { + return l.stats +} + +func (l *loader[K, T]) Name() string { + return l.name +} + +func (l *loader[K, T]) filter(keys []K) []K { + if len(l.ids) == 0 { + return keys + } + + remaining := make([]K, 0, len(keys)) + for _, key := range keys { + if _, ok := l.ids[key]; ok { + continue + } + remaining = append(remaining, key) + } + return remaining +} + +func (l *loader[K, T]) updateMap(rows []T) { + for _, row := range rows { + key, id := l.mappingFromRow(row) + l.ids[key] = id + } +} + +func (l *loader[K, T]) insert(ctx context.Context, q *Q, keys []K) (int, error) { + keys = l.filter(keys) + if len(keys) == 0 { + return 0, nil + } + + var rows []T + err := bulkInsert( + ctx, + q, + l.table, + l.columnsForKeys(keys), + &rows, + ) + if err != nil { + return 0, err + } + + l.updateMap(rows) + return len(rows), nil +} + +func (l *loader[K, T]) query(ctx context.Context, q *Q, keys []K, lockRows bool) (int, error) { + keys = l.filter(keys) + if len(keys) == 0 { + return 0, nil + } + var suffix string + if lockRows { + suffix = "ORDER BY id ASC FOR KEY SHARE" + } + + var rows []T + err := bulkGet( + ctx, + q, + l.table, + l.columnsForKeys(keys), + &rows, + suffix, + ) + if err != nil { + return 0, err + } + + l.updateMap(rows) + return len(rows), nil +} + +type columnValues struct { + name string + dbType string + objects []string +} + +func bulkInsert(ctx context.Context, q *Q, table string, fields []columnValues, response interface{}) error { + unnestPart := make([]string, 0, len(fields)) + insertFieldsPart := make([]string, 0, len(fields)) + pqArrays := make([]interface{}, 0, len(fields)) + + // In the code below we are building the bulk insert query which looks like: + // + // WITH rows AS + // (SELECT + // /* unnestPart */ + // unnest(?::type1[]), /* field1 */ + // unnest(?::type2[]), /* field2 */ + // ... + // ) + // INSERT INTO table ( + // /* insertFieldsPart */ + // field1, + // field2, + // ... + // ) + // SELECT * FROM rows ON CONFLICT (field1, field2, ...) DO NOTHING RETURNING * + // + // Using unnest allows to get around the maximum limit of 65,535 query parameters, + // see https://www.postgresql.org/docs/12/limits.html and + // https://klotzandrew.com/blog/postgres-passing-65535-parameter-limit/ + // + // Without using unnest we would have to use multiple insert statements to insert + // all the rows for large datasets. + for _, field := range fields { + unnestPart = append( + unnestPart, + fmt.Sprintf("unnest(?::%s[]) /* %s */", field.dbType, field.name), + ) + insertFieldsPart = append( + insertFieldsPart, + field.name, + ) + pqArrays = append( + pqArrays, + pq.Array(field.objects), + ) + } + columns := strings.Join(insertFieldsPart, ",") + + sql := ` + WITH rows AS + (SELECT ` + strings.Join(unnestPart, ",") + `) + INSERT INTO ` + table + ` + (` + columns + `) + SELECT * FROM rows + ON CONFLICT (` + columns + `) DO NOTHING + RETURNING *` + + return q.SelectRaw( + ctx, + response, + sql, + pqArrays..., + ) +} + +func bulkGet(ctx context.Context, q *Q, table string, fields []columnValues, response interface{}, suffix string) error { + unnestPart := make([]string, 0, len(fields)) + columns := make([]string, 0, len(fields)) + pqArrays := make([]interface{}, 0, len(fields)) + + // In the code below we are building the bulk get query which looks like: + // + // SELECT * FROM table WHERE (field1, field2, ...) IN + // (SELECT + // /* unnestPart */ + // unnest(?::type1[]), /* field1 */ + // unnest(?::type2[]), /* field2 */ + // ... + // ) + // + // Using unnest allows to get around the maximum limit of 65,535 query parameters, + // see https://www.postgresql.org/docs/12/limits.html and + // https://klotzandrew.com/blog/postgres-passing-65535-parameter-limit/ + // + // Without using unnest we would have to use multiple select statements to obtain + // all the rows for large datasets. + for _, field := range fields { + unnestPart = append( + unnestPart, + fmt.Sprintf("unnest(?::%s[]) /* %s */", field.dbType, field.name), + ) + columns = append( + columns, + field.name, + ) + pqArrays = append( + pqArrays, + pq.Array(field.objects), + ) + } + sql := `SELECT * FROM ` + table + ` WHERE (` + strings.Join(columns, ",") + `) IN + (SELECT ` + strings.Join(unnestPart, ",") + `) ` + suffix + + return q.SelectRaw( + ctx, + response, + sql, + pqArrays..., + ) +} diff --git a/services/horizon/internal/db2/history/loader_concurrency_test.go b/services/horizon/internal/db2/history/loader_concurrency_test.go new file mode 100644 index 0000000000..e87d901bd8 --- /dev/null +++ b/services/horizon/internal/db2/history/loader_concurrency_test.go @@ -0,0 +1,197 @@ +package history + +import ( + "context" + "database/sql" + "fmt" + "sync" + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/stellar/go/keypair" + "github.com/stellar/go/services/horizon/internal/test" +) + +func TestLoaderConcurrentInserts(t *testing.T) { + tt := test.Start(t) + defer tt.Finish() + test.ResetHorizonDB(t, tt.HorizonDB) + s1 := tt.HorizonSession() + s2 := s1.Clone() + + for _, testCase := range []struct { + mode ConcurrencyMode + pass bool + }{ + {ConcurrentInserts, true}, + {ConcurrentDeletes, false}, + } { + t.Run(fmt.Sprintf("%v", testCase.mode), func(t *testing.T) { + var addresses []string + for i := 0; i < 10; i++ { + addresses = append(addresses, keypair.MustRandom().Address()) + } + + l1 := NewAccountLoader(testCase.mode) + for _, address := range addresses { + l1.GetFuture(address) + } + + for i := 0; i < 5; i++ { + addresses = append(addresses, keypair.MustRandom().Address()) + } + + l2 := NewAccountLoader(testCase.mode) + for _, address := range addresses { + l2.GetFuture(address) + } + + assert.NoError(t, s1.Begin(context.Background())) + assert.NoError(t, l1.Exec(context.Background(), s1)) + + assert.NoError(t, s2.Begin(context.Background())) + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + <-time.After(time.Second * 3) + assert.NoError(t, s1.Commit()) + }() + // l2.Exec(context.Background(), s2) will block until s1 + // is committed because s1 and s2 both attempt to insert common + // accounts and, since s1 executed first, s2 must wait until + // s1 terminates. + assert.NoError(t, l2.Exec(context.Background(), s2)) + assert.NoError(t, s2.Commit()) + wg.Wait() + + assert.Equal(t, LoaderStats{ + Total: 10, + Inserted: 10, + }, l1.Stats()) + + if testCase.pass { + assert.Equal(t, LoaderStats{ + Total: 15, + Inserted: 5, + }, l2.Stats()) + } else { + assert.Equal(t, LoaderStats{ + Total: 5, + Inserted: 5, + }, l2.Stats()) + return + } + + q := &Q{s1} + for _, address := range addresses[:10] { + l1Id, err := l1.GetNow(address) + assert.NoError(t, err) + + l2Id, err := l2.GetNow(address) + assert.NoError(t, err) + assert.Equal(t, l1Id, l2Id) + + var account Account + assert.NoError(t, q.AccountByAddress(context.Background(), &account, address)) + assert.Equal(t, account.ID, l1Id) + assert.Equal(t, account.Address, address) + } + + for _, address := range addresses[10:] { + l2Id, err := l2.GetNow(address) + assert.NoError(t, err) + + _, err = l1.GetNow(address) + assert.ErrorContains(t, err, "was not found") + + var account Account + assert.NoError(t, q.AccountByAddress(context.Background(), &account, address)) + assert.Equal(t, account.ID, l2Id) + assert.Equal(t, account.Address, address) + } + }) + } +} + +func TestLoaderConcurrentDeletes(t *testing.T) { + tt := test.Start(t) + defer tt.Finish() + test.ResetHorizonDB(t, tt.HorizonDB) + s1 := tt.HorizonSession() + s2 := s1.Clone() + + for _, testCase := range []struct { + mode ConcurrencyMode + pass bool + }{ + {ConcurrentInserts, false}, + {ConcurrentDeletes, true}, + } { + t.Run(fmt.Sprintf("%v", testCase.mode), func(t *testing.T) { + var addresses []string + for i := 0; i < 10; i++ { + addresses = append(addresses, keypair.MustRandom().Address()) + } + + loader := NewAccountLoader(testCase.mode) + for _, address := range addresses { + loader.GetFuture(address) + } + assert.NoError(t, loader.Exec(context.Background(), s1)) + + var ids []int64 + for _, address := range addresses { + id, err := loader.GetNow(address) + assert.NoError(t, err) + ids = append(ids, id) + } + + loader = NewAccountLoader(testCase.mode) + for _, address := range addresses { + loader.GetFuture(address) + } + + assert.NoError(t, s1.Begin(context.Background())) + assert.NoError(t, loader.Exec(context.Background(), s1)) + + assert.NoError(t, s2.Begin(context.Background())) + q2 := &Q{s2} + + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + <-time.After(time.Second * 3) + + q1 := &Q{s1} + for _, address := range addresses { + id, err := loader.GetNow(address) + assert.NoError(t, err) + + var account Account + err = q1.AccountByAddress(context.Background(), &account, address) + if testCase.pass { + assert.NoError(t, err) + assert.Equal(t, account.ID, id) + assert.Equal(t, account.Address, address) + } else { + assert.ErrorContains(t, err, sql.ErrNoRows.Error()) + } + } + assert.NoError(t, s1.Commit()) + }() + + // the reaper should block until s1 has been committed because s1 has locked + // the orphaned rows + deletedCount, err := q2.reapLookupTable(context.Background(), "history_accounts", ids, 1000) + assert.NoError(t, err) + assert.Equal(t, int64(len(addresses)), deletedCount) + assert.NoError(t, s2.Commit()) + + wg.Wait() + }) + } +} diff --git a/services/horizon/internal/db2/history/main.go b/services/horizon/internal/db2/history/main.go index e9d8ffb185..59d828d091 100644 --- a/services/horizon/internal/db2/history/main.go +++ b/services/horizon/internal/db2/history/main.go @@ -9,6 +9,7 @@ import ( "database/sql/driver" "encoding/json" "fmt" + "strconv" "strings" "sync" "time" @@ -282,7 +283,8 @@ type IngestionQ interface { NewTradeBatchInsertBuilder() TradeBatchInsertBuilder RebuildTradeAggregationTimes(ctx context.Context, from, to strtime.Millis, roundingSlippageFilter int) error RebuildTradeAggregationBuckets(ctx context.Context, fromLedger, toLedger uint32, roundingSlippageFilter int) error - ReapLookupTables(ctx context.Context, batchSize int) (map[string]LookupTableReapResult, error) + ReapLookupTable(ctx context.Context, table string, ids []int64, newOffset int64) (int64, error) + FindLookupTableRowsToReap(ctx context.Context, table string, batchSize int) ([]int64, int64, error) CreateAssets(ctx context.Context, assets []xdr.Asset, batchSize int) (map[string]Asset, error) QTransactions QTrustLines @@ -307,6 +309,7 @@ type IngestionQ interface { GetNextLedgerSequence(context.Context, uint32) (uint32, bool, error) TryStateVerificationLock(context.Context) (bool, error) TryReaperLock(context.Context) (bool, error) + TryLookupTableReaperLock(ctx context.Context) (bool, error) ElderLedger(context.Context, interface{}) error } @@ -977,63 +980,70 @@ type LookupTableReapResult struct { Duration time.Duration } -// ReapLookupTables removes rows from lookup tables like history_claimable_balances -// which aren't used (orphaned), i.e. history entries for them were reaped. -// This method must be executed inside ingestion transaction. Otherwise it may -// create invalid state in lookup and history tables. -func (q *Q) ReapLookupTables(ctx context.Context, batchSize int) ( - map[string]LookupTableReapResult, - error, -) { - if q.GetTx() == nil { - return nil, errors.New("cannot be called outside of an ingestion transaction") +func (q *Q) FindLookupTableRowsToReap(ctx context.Context, table string, batchSize int) ([]int64, int64, error) { + offset, err := q.getLookupTableReapOffset(ctx, table) + if err != nil { + return nil, 0, fmt.Errorf("could not obtain offsets: %w", err) } - offsets, err := q.getLookupTableReapOffsets(ctx) + // Find new offset before removing the rows + var newOffset int64 + err = q.GetRaw( + ctx, + &newOffset, + fmt.Sprintf( + "SELECT id FROM %s WHERE id >= %d ORDER BY id ASC LIMIT 1 OFFSET %d", + table, offset, batchSize, + ), + ) if err != nil { - return nil, fmt.Errorf("could not obtain offsets: %w", err) + if q.NoRows(err) { + newOffset = 0 + } else { + return nil, 0, err + } } - results := map[string]LookupTableReapResult{} - for table, historyTables := range historyLookupTables { - startTime := time.Now() - query := constructReapLookupTablesQuery(table, historyTables, batchSize, offsets[table]) + var ids []int64 + err = q.SelectRaw(ctx, &ids, constructFindReapLookupTablesQuery(table, batchSize, offset)) + if err != nil { + return nil, 0, fmt.Errorf("could not query orphaned rows: %w", err) + } - // Find new offset before removing the rows - var newOffset int64 - err := q.GetRaw(ctx, &newOffset, fmt.Sprintf("SELECT id FROM %s where id >= %d limit 1 offset %d", table, offsets[table], batchSize)) - if err != nil { - if q.NoRows(err) { - newOffset = 0 - } else { - return nil, err - } - } + return ids, newOffset, nil +} - res, err := q.ExecRaw( - context.WithValue(ctx, &db.QueryTypeContextKey, db.DeleteQueryType), - query, - ) - if err != nil { - return nil, errors.Wrapf(err, "error running query: %s", query) - } +func (q *Q) ReapLookupTable(ctx context.Context, table string, ids []int64, newOffset int64) (int64, error) { + if err := q.Begin(ctx); err != nil { + return 0, fmt.Errorf("could not start transaction: %w", err) + } + defer q.Rollback() - if err = q.updateLookupTableReapOffset(ctx, table, newOffset); err != nil { - return nil, fmt.Errorf("error updating offset: %w", err) - } + rowsDeleted, err := q.reapLookupTable(ctx, table, ids, newOffset) + if err != nil { + return 0, err + } - rows, err := res.RowsAffected() - if err != nil { - return nil, errors.Wrapf(err, "error running RowsAffected after query: %s", query) - } + if err := q.Commit(); err != nil { + return 0, fmt.Errorf("could not commit transaction: %w", err) + } + return rowsDeleted, nil +} + +func (q *Q) reapLookupTable(ctx context.Context, table string, ids []int64, newOffset int64) (int64, error) { + if err := q.updateLookupTableReapOffset(ctx, table, newOffset); err != nil { + return 0, fmt.Errorf("error updating offset for table %s: %w ", table, err) + } - results[table] = LookupTableReapResult{ - Offset: newOffset, - RowsDeleted: rows, - Duration: time.Since(startTime), + var rowsDeleted int64 + if len(ids) > 0 { + var err error + rowsDeleted, err = q.deleteLookupTableRows(ctx, table, ids) + if err != nil { + return 0, fmt.Errorf("could not delete orphaned rows: %w", err) } } - return results, nil + return rowsDeleted, nil } var historyLookupTables = map[string][]tableObjectFieldPair{ @@ -1100,54 +1110,100 @@ var historyLookupTables = map[string][]tableObjectFieldPair{ }, } -// constructReapLookupTablesQuery creates a query like (using history_claimable_balances +func (q *Q) deleteLookupTableRows(ctx context.Context, table string, ids []int64) (int64, error) { + deleteQuery := constructDeleteLookupTableRowsQuery(table, ids) + result, err := q.ExecRaw( + context.WithValue(ctx, &db.QueryTypeContextKey, db.DeleteQueryType), + deleteQuery, + ) + if err != nil { + return 0, fmt.Errorf("error running query %s : %w", deleteQuery, err) + } + var deletedCount int64 + deletedCount, err = result.RowsAffected() + if err != nil { + return 0, fmt.Errorf("error getting deleted count: %w", err) + } + return deletedCount, nil +} + +// constructDeleteLookupTableRowsQuery creates a query like (using history_claimable_balances // as an example): // -// delete from history_claimable_balances where id in ( -// -// WITH ha_batch AS ( -// SELECT id -// FROM history_claimable_balances -// WHERE id >= 1000 -// ORDER BY id limit 1000 -// ) SELECT e1.id as id FROM ha_batch e1 +// WITH ha_batch AS ( +// SELECT id +// FROM history_claimable_balances +// WHERE IN ($1, $2, ...) ORDER BY id asc FOR UPDATE +// ) DELETE FROM history_claimable_balances WHERE id IN ( +// SELECT e1.id as id FROM ha_batch e1 // WHERE NOT EXISTS (SELECT 1 FROM history_transaction_claimable_balances WHERE history_transaction_claimable_balances.history_claimable_balance_id = id limit 1) // AND NOT EXISTS (SELECT 1 FROM history_operation_claimable_balances WHERE history_operation_claimable_balances.history_claimable_balance_id = id limit 1) // ) // -// In short it checks the 1000 rows omitting 1000 row of history_claimable_balances +// It checks each of the candidate rows provided in the top level IN clause // and counts occurrences of each row in corresponding history tables. // If there are no history rows for a given id, the row in // history_claimable_balances is removed. // -// The offset param should be increased before each execution. Given that -// some rows will be removed and some will be added by ingestion it's -// possible that rows will be skipped from deletion. But offset is reset -// when it reaches the table size so eventually all orphaned rows are -// deleted. -func constructReapLookupTablesQuery(table string, historyTables []tableObjectFieldPair, batchSize int, offset int64) string { +// Note that the rows are locked using via SELECT FOR UPDATE. The reason +// for that is to maintain safety when ingestion is running concurrently. +// The ingestion loaders will also lock rows from the history lookup tables +// via SELECT FOR KEY SHARE. This will ensure that the reaping transaction +// will block until the ingestion transaction commits (or vice-versa). +func constructDeleteLookupTableRowsQuery(table string, ids []int64) string { + var conditions []string + for _, referencedTable := range historyLookupTables[table] { + conditions = append( + conditions, + fmt.Sprintf( + "NOT EXISTS ( SELECT 1 as row FROM %s WHERE %s.%s = id LIMIT 1)", + referencedTable.name, + referencedTable.name, referencedTable.objectField, + ), + ) + } + + stringIds := make([]string, len(ids)) + for i, id := range ids { + stringIds[i] = strconv.FormatInt(id, 10) + } + innerQuery := fmt.Sprintf( + "SELECT id FROM %s WHERE id IN (%s) ORDER BY id asc FOR UPDATE", + table, + strings.Join(stringIds, ", "), + ) + + deleteQuery := fmt.Sprintf( + "WITH ha_batch AS (%s) DELETE FROM %s WHERE id IN ("+ + "SELECT e1.id as id FROM ha_batch e1 WHERE %s)", + innerQuery, + table, + strings.Join(conditions, " AND "), + ) + return deleteQuery +} + +func constructFindReapLookupTablesQuery(table string, batchSize int, offset int64) string { var conditions []string - for _, historyTable := range historyTables { + for _, referencedTable := range historyLookupTables[table] { conditions = append( conditions, fmt.Sprintf( "NOT EXISTS ( SELECT 1 as row FROM %s WHERE %s.%s = id LIMIT 1)", - historyTable.name, - historyTable.name, historyTable.objectField, + referencedTable.name, + referencedTable.name, referencedTable.objectField, ), ) } return fmt.Sprintf( - "DELETE FROM %s WHERE id IN ("+ - "WITH ha_batch AS (SELECT id FROM %s WHERE id >= %d ORDER BY id limit %d) "+ + "WITH ha_batch AS (SELECT id FROM %s WHERE id >= %d ORDER BY id ASC limit %d) "+ "SELECT e1.id as id FROM ha_batch e1 WHERE ", table, - table, offset, batchSize, - ) + strings.Join(conditions, " AND ") + ")" + ) + strings.Join(conditions, " AND ") } // DeleteRangeAll deletes a range of rows from all history tables between diff --git a/services/horizon/internal/db2/history/main_test.go b/services/horizon/internal/db2/history/main_test.go index 1a28b9e584..a86f4c14a4 100644 --- a/services/horizon/internal/db2/history/main_test.go +++ b/services/horizon/internal/db2/history/main_test.go @@ -69,20 +69,34 @@ func TestElderLedger(t *testing.T) { } } +func TestConstructDeleteLookupTableRowsQuery(t *testing.T) { + query := constructDeleteLookupTableRowsQuery( + "history_accounts", + []int64{100, 20, 30}, + ) + + assert.Equal(t, + "WITH ha_batch AS (SELECT id FROM history_accounts WHERE id IN (100, 20, 30) ORDER BY id asc FOR UPDATE) "+ + "DELETE FROM history_accounts WHERE id IN (SELECT e1.id as id FROM ha_batch e1 "+ + "WHERE NOT EXISTS ( SELECT 1 as row FROM history_transaction_participants WHERE history_transaction_participants.history_account_id = id LIMIT 1) "+ + "AND NOT EXISTS ( SELECT 1 as row FROM history_effects WHERE history_effects.history_account_id = id LIMIT 1) "+ + "AND NOT EXISTS ( SELECT 1 as row FROM history_operation_participants WHERE history_operation_participants.history_account_id = id LIMIT 1) "+ + "AND NOT EXISTS ( SELECT 1 as row FROM history_trades WHERE history_trades.base_account_id = id LIMIT 1) "+ + "AND NOT EXISTS ( SELECT 1 as row FROM history_trades WHERE history_trades.counter_account_id = id LIMIT 1))", query) +} + func TestConstructReapLookupTablesQuery(t *testing.T) { - query := constructReapLookupTablesQuery( + query := constructFindReapLookupTablesQuery( "history_accounts", - historyLookupTables["history_accounts"], 10, 0, ) assert.Equal(t, - "DELETE FROM history_accounts WHERE id IN ("+ - "WITH ha_batch AS (SELECT id FROM history_accounts WHERE id >= 0 ORDER BY id limit 10) SELECT e1.id as id FROM ha_batch e1 "+ + "WITH ha_batch AS (SELECT id FROM history_accounts WHERE id >= 0 ORDER BY id ASC limit 10) SELECT e1.id as id FROM ha_batch e1 "+ "WHERE NOT EXISTS ( SELECT 1 as row FROM history_transaction_participants WHERE history_transaction_participants.history_account_id = id LIMIT 1) "+ "AND NOT EXISTS ( SELECT 1 as row FROM history_effects WHERE history_effects.history_account_id = id LIMIT 1) "+ "AND NOT EXISTS ( SELECT 1 as row FROM history_operation_participants WHERE history_operation_participants.history_account_id = id LIMIT 1) "+ "AND NOT EXISTS ( SELECT 1 as row FROM history_trades WHERE history_trades.base_account_id = id LIMIT 1) "+ - "AND NOT EXISTS ( SELECT 1 as row FROM history_trades WHERE history_trades.counter_account_id = id LIMIT 1))", query) + "AND NOT EXISTS ( SELECT 1 as row FROM history_trades WHERE history_trades.counter_account_id = id LIMIT 1)", query) } diff --git a/services/horizon/internal/db2/history/operation_participant_batch_insert_builder_test.go b/services/horizon/internal/db2/history/operation_participant_batch_insert_builder_test.go index 7e823064f2..eb30fe6659 100644 --- a/services/horizon/internal/db2/history/operation_participant_batch_insert_builder_test.go +++ b/services/horizon/internal/db2/history/operation_participant_batch_insert_builder_test.go @@ -15,7 +15,7 @@ func TestAddOperationParticipants(t *testing.T) { test.ResetHorizonDB(t, tt.HorizonDB) q := &Q{tt.HorizonSession()} - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) address := keypair.MustRandom().Address() tt.Assert.NoError(q.Begin(tt.Ctx)) builder := q.NewOperationParticipantBatchInsertBuilder() diff --git a/services/horizon/internal/db2/history/operation_test.go b/services/horizon/internal/db2/history/operation_test.go index 1d20a9cb10..8899bfcdf6 100644 --- a/services/horizon/internal/db2/history/operation_test.go +++ b/services/horizon/internal/db2/history/operation_test.go @@ -125,7 +125,7 @@ func TestOperationByLiquidityPool(t *testing.T) { // Insert Liquidity Pool history liquidityPoolID := "a2f38836a839de008cf1d782c81f45e1253cc5d3dad9110b872965484fec0a49" - lpLoader := NewLiquidityPoolLoader() + lpLoader := NewLiquidityPoolLoader(ConcurrentInserts) lpOperationBuilder := q.NewOperationLiquidityPoolBatchInsertBuilder() tt.Assert.NoError(lpOperationBuilder.Add(opID1, lpLoader.GetFuture(liquidityPoolID))) diff --git a/services/horizon/internal/db2/history/participants_test.go b/services/horizon/internal/db2/history/participants_test.go index 37f7654abb..15d09da0ac 100644 --- a/services/horizon/internal/db2/history/participants_test.go +++ b/services/horizon/internal/db2/history/participants_test.go @@ -35,7 +35,7 @@ func TestTransactionParticipantsBatch(t *testing.T) { q := &Q{tt.HorizonSession()} batch := q.NewTransactionParticipantsBatchInsertBuilder() - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) transactionID := int64(1) otherTransactionID := int64(2) diff --git a/services/horizon/internal/db2/history/reap_test.go b/services/horizon/internal/db2/history/reap_test.go index 5601cd19b6..af20fbc976 100644 --- a/services/horizon/internal/db2/history/reap_test.go +++ b/services/horizon/internal/db2/history/reap_test.go @@ -1,13 +1,43 @@ package history_test import ( + "context" "testing" + "github.com/stretchr/testify/assert" + "github.com/stellar/go/services/horizon/internal/db2/history" "github.com/stellar/go/services/horizon/internal/ingest" "github.com/stellar/go/services/horizon/internal/test" ) +type reapResult struct { + Offset int64 + RowsDeleted int64 +} + +func reapLookupTables(t *testing.T, q *history.Q, batchSize int) map[string]reapResult { + results := map[string]reapResult{} + + for _, table := range []string{ + "history_accounts", + "history_assets", + "history_claimable_balances", + "history_liquidity_pools", + } { + ids, offset, err := q.FindLookupTableRowsToReap(context.Background(), table, batchSize) + assert.NoError(t, err) + rowsDeleted, err := q.ReapLookupTable(context.Background(), table, ids, offset) + assert.NoError(t, err) + results[table] = reapResult{ + Offset: offset, + RowsDeleted: rowsDeleted, + } + } + + return results +} + func TestReapLookupTables(t *testing.T) { tt := test.Start(t) defer tt.Finish() @@ -46,14 +76,7 @@ func TestReapLookupTables(t *testing.T) { q := &history.Q{tt.HorizonSession()} - err = q.Begin(tt.Ctx) - tt.Require.NoError(err) - - results, err := q.ReapLookupTables(tt.Ctx, 5) - tt.Require.NoError(err) - - err = q.Commit() - tt.Require.NoError(err) + results := reapLookupTables(t, q, 5) err = db.GetRaw(tt.Ctx, &curLedgers, `SELECT COUNT(*) FROM history_ledgers`) tt.Require.NoError(err) @@ -91,14 +114,7 @@ func TestReapLookupTables(t *testing.T) { tt.Assert.Equal(int64(0), results["history_claimable_balances"].Offset) tt.Assert.Equal(int64(0), results["history_liquidity_pools"].Offset) - err = q.Begin(tt.Ctx) - tt.Require.NoError(err) - - results, err = q.ReapLookupTables(tt.Ctx, 5) - tt.Require.NoError(err) - - err = q.Commit() - tt.Require.NoError(err) + results = reapLookupTables(t, q, 5) err = db.GetRaw(tt.Ctx, &curAccounts, `SELECT COUNT(*) FROM history_accounts`) tt.Require.NoError(err) @@ -121,14 +137,7 @@ func TestReapLookupTables(t *testing.T) { tt.Assert.Equal(int64(0), results["history_claimable_balances"].Offset) tt.Assert.Equal(int64(0), results["history_liquidity_pools"].Offset) - err = q.Begin(tt.Ctx) - tt.Require.NoError(err) - - results, err = q.ReapLookupTables(tt.Ctx, 1000) - tt.Require.NoError(err) - - err = q.Commit() - tt.Require.NoError(err) + results = reapLookupTables(t, q, 1000) err = db.GetRaw(tt.Ctx, &curAccounts, `SELECT COUNT(*) FROM history_accounts`) tt.Require.NoError(err) diff --git a/services/horizon/internal/db2/history/transaction_test.go b/services/horizon/internal/db2/history/transaction_test.go index 65c6734644..bd8cb1673c 100644 --- a/services/horizon/internal/db2/history/transaction_test.go +++ b/services/horizon/internal/db2/history/transaction_test.go @@ -79,7 +79,7 @@ func TestTransactionByLiquidityPool(t *testing.T) { // Insert Liquidity Pool history liquidityPoolID := "a2f38836a839de008cf1d782c81f45e1253cc5d3dad9110b872965484fec0a49" - lpLoader := NewLiquidityPoolLoader() + lpLoader := NewLiquidityPoolLoader(ConcurrentInserts) lpTransactionBuilder := q.NewTransactionLiquidityPoolBatchInsertBuilder() tt.Assert.NoError(lpTransactionBuilder.Add(txID, lpLoader.GetFuture(liquidityPoolID))) tt.Assert.NoError(lpLoader.Exec(tt.Ctx, q)) @@ -940,15 +940,15 @@ func TestTransactionQueryBuilder(t *testing.T) { tt.Assert.NoError(q.Begin(tt.Ctx)) address := "GBXGQJWVLWOYHFLVTKWV5FGHA3LNYY2JQKM7OAJAUEQFU6LPCSEFVXON" - accountLoader := NewAccountLoader() + accountLoader := NewAccountLoader(ConcurrentInserts) accountLoader.GetFuture(address) cbID := "00000000178826fbfe339e1f5c53417c6fedfe2c05e8bec14303143ec46b38981b09c3f9" - cbLoader := NewClaimableBalanceLoader() + cbLoader := NewClaimableBalanceLoader(ConcurrentInserts) cbLoader.GetFuture(cbID) lpID := "0000a8198b5e25994c1ca5b0556faeb27325ac746296944144e0a7406d501e8a" - lpLoader := NewLiquidityPoolLoader() + lpLoader := NewLiquidityPoolLoader(ConcurrentInserts) lpLoader.GetFuture(lpID) tt.Assert.NoError(accountLoader.Exec(tt.Ctx, q)) diff --git a/services/horizon/internal/db2/history/verify_lock.go b/services/horizon/internal/db2/history/verify_lock.go index 29bc11a473..4d7d1fbde7 100644 --- a/services/horizon/internal/db2/history/verify_lock.go +++ b/services/horizon/internal/db2/history/verify_lock.go @@ -13,9 +13,13 @@ const ( // all ingesting nodes use the same value which is why it's hard coded here.`1 stateVerificationLockId = 73897213 // reaperLockId is the objid for the advisory lock acquired during - // reaping. The value is arbitrary. The only requirement is that + // reaping of history tables. The value is arbitrary. The only requirement is that // all ingesting nodes use the same value which is why it's hard coded here. reaperLockId = 944670730 + // lookupTableReaperLockId is the objid for the advisory lock acquired during + // reaping of lookup tables. The value is arbitrary. The only requirement is that + // all ingesting nodes use the same value which is why it's hard coded here. + lookupTableReaperLockId = 329518896 ) // TryStateVerificationLock attempts to acquire the state verification lock @@ -34,6 +38,10 @@ func (q *Q) TryReaperLock(ctx context.Context) (bool, error) { return q.tryAdvisoryLock(ctx, reaperLockId) } +func (q *Q) TryLookupTableReaperLock(ctx context.Context) (bool, error) { + return q.tryAdvisoryLock(ctx, lookupTableReaperLockId) +} + func (q *Q) tryAdvisoryLock(ctx context.Context, lockId int) (bool, error) { if tx := q.GetTx(); tx == nil { return false, errors.New("cannot be called outside of a transaction") diff --git a/services/horizon/internal/ingest/main.go b/services/horizon/internal/ingest/main.go index 64e4558723..63ee7ba457 100644 --- a/services/horizon/internal/ingest/main.go +++ b/services/horizon/internal/ingest/main.go @@ -70,16 +70,15 @@ const ( // * Ledger ingestion, // * State verifications, // * Metrics updates. - // * Reaping (requires 2 connections, the extra connection is used for holding the advisory lock) - MaxDBConnections = 5 + // * Reaping of history (requires 2 connections, the extra connection is used for holding the advisory lock) + // * Reaping of lookup tables (requires 2 connections, the extra connection is used for holding the advisory lock) + MaxDBConnections = 7 stateVerificationErrorThreshold = 3 // 100 ledgers per flush has shown in stress tests // to be best point on performance curve, default to that. MaxLedgersPerFlush uint32 = 100 - - reapLookupTablesBatchSize = 1000 ) var log = logpkg.DefaultLogger.WithField("service", "ingest") @@ -172,9 +171,6 @@ type Metrics struct { // duration of rebuilding trade aggregation buckets. LedgerIngestionTradeAggregationDuration prometheus.Summary - ReapDurationByLookupTable *prometheus.SummaryVec - RowsReapedByLookupTable *prometheus.SummaryVec - // StateVerifyDuration exposes timing metrics about the rate and // duration of state verification. StateVerifyDuration prometheus.Summary @@ -256,7 +252,8 @@ type system struct { maxLedgerPerFlush uint32 - reaper *Reaper + reaper *Reaper + lookupTableReaper *lookupTableReaper currentStateMutex sync.Mutex currentState State @@ -369,6 +366,7 @@ func NewSystem(config Config) (System, error) { config.ReapConfig, config.HistorySession, ), + lookupTableReaper: newLookupTableReaper(config.HistorySession), } system.initMetrics() @@ -409,18 +407,6 @@ func (s *system) initMetrics() { Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }) - s.metrics.ReapDurationByLookupTable = prometheus.NewSummaryVec(prometheus.SummaryOpts{ - Namespace: "horizon", Subsystem: "ingest", Name: "reap_lookup_tables_duration_seconds", - Help: "reap lookup tables durations, sliding window = 10m", - Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, - }, []string{"table"}) - - s.metrics.RowsReapedByLookupTable = prometheus.NewSummaryVec(prometheus.SummaryOpts{ - Namespace: "horizon", Subsystem: "ingest", Name: "reap_lookup_tables_rows_reaped", - Help: "rows deleted during lookup tables reap, sliding window = 10m", - Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, - }, []string{"table"}) - s.metrics.StateVerifyDuration = prometheus.NewSummary(prometheus.SummaryOpts{ Namespace: "horizon", Subsystem: "ingest", Name: "state_verify_duration_seconds", Help: "state verification durations, sliding window = 10m", @@ -538,8 +524,6 @@ func (s *system) RegisterMetrics(registry *prometheus.Registry) { registry.MustRegister(s.metrics.LocalLatestLedger) registry.MustRegister(s.metrics.LedgerIngestionDuration) registry.MustRegister(s.metrics.LedgerIngestionTradeAggregationDuration) - registry.MustRegister(s.metrics.ReapDurationByLookupTable) - registry.MustRegister(s.metrics.RowsReapedByLookupTable) registry.MustRegister(s.metrics.StateVerifyDuration) registry.MustRegister(s.metrics.StateInvalidGauge) registry.MustRegister(s.metrics.LedgerStatsCounter) @@ -552,6 +536,7 @@ func (s *system) RegisterMetrics(registry *prometheus.Registry) { registry.MustRegister(s.metrics.IngestionErrorCounter) s.ledgerBackend = ledgerbackend.WithMetrics(s.ledgerBackend, registry, "horizon") s.reaper.RegisterMetrics(registry) + s.lookupTableReaper.RegisterMetrics(registry) } // Run starts ingestion system. Ingestion system supports distributed ingestion @@ -822,55 +807,11 @@ func (s *system) maybeReapLookupTables(lastIngestedLedger uint32) { return } - err = s.historyQ.Begin(s.ctx) - if err != nil { - log.WithError(err).Error("Error starting a transaction") - return - } - defer s.historyQ.Rollback() - - // If so block ingestion in the cluster to reap tables - _, err = s.historyQ.GetLastLedgerIngest(s.ctx) - if err != nil { - log.WithError(err).Error(getLastIngestedErrMsg) - return - } - - // Make sure reaping will not take more than 5s, which is average ledger - // closing time. - ctx, cancel := context.WithTimeout(s.ctx, 5*time.Second) - defer cancel() - - reapStart := time.Now() - results, err := s.historyQ.ReapLookupTables(ctx, reapLookupTablesBatchSize) - if err != nil { - log.WithError(err).Warn("Error reaping lookup tables") - return - } - - err = s.historyQ.Commit() - if err != nil { - log.WithError(err).Error("Error committing a transaction") - return - } - - totalDeleted := int64(0) - reapLog := log - for table, result := range results { - totalDeleted += result.RowsDeleted - reapLog = reapLog.WithField(table+"_offset", result.Offset) - reapLog = reapLog.WithField(table+"_duration", result.Duration) - reapLog = reapLog.WithField(table+"_rows_deleted", result.RowsDeleted) - s.Metrics().RowsReapedByLookupTable.With(prometheus.Labels{"table": table}).Observe(float64(result.RowsDeleted)) - s.Metrics().ReapDurationByLookupTable.With(prometheus.Labels{"table": table}).Observe(result.Duration.Seconds()) - } - - if totalDeleted > 0 { - reapLog.Info("Reaper deleted rows from lookup tables") - } - - s.Metrics().RowsReapedByLookupTable.With(prometheus.Labels{"table": "total"}).Observe(float64(totalDeleted)) - s.Metrics().ReapDurationByLookupTable.With(prometheus.Labels{"table": "total"}).Observe(time.Since(reapStart).Seconds()) + s.wg.Add(1) + go func() { + defer s.wg.Done() + s.lookupTableReaper.deleteOrphanedRows(s.ctx) + }() } func (s *system) incrementStateVerificationErrors() int { diff --git a/services/horizon/internal/ingest/main_test.go b/services/horizon/internal/ingest/main_test.go index d5733ee5e4..470039fd92 100644 --- a/services/horizon/internal/ingest/main_test.go +++ b/services/horizon/internal/ingest/main_test.go @@ -462,6 +462,11 @@ func (m *mockDBQ) TryReaperLock(ctx context.Context) (bool, error) { return args.Get(0).(bool), args.Error(1) } +func (m *mockDBQ) TryLookupTableReaperLock(ctx context.Context) (bool, error) { + args := m.Called(ctx) + return args.Get(0).(bool), args.Error(1) +} + func (m *mockDBQ) GetNextLedgerSequence(ctx context.Context, start uint32) (uint32, bool, error) { args := m.Called(ctx, start) return args.Get(0).(uint32), args.Get(1).(bool), args.Error(2) @@ -562,13 +567,14 @@ func (m *mockDBQ) NewTradeBatchInsertBuilder() history.TradeBatchInsertBuilder { return args.Get(0).(history.TradeBatchInsertBuilder) } -func (m *mockDBQ) ReapLookupTables(ctx context.Context, batchSize int) (map[string]history.LookupTableReapResult, error) { - args := m.Called(ctx, batchSize) - var r1 map[string]history.LookupTableReapResult - if args.Get(0) != nil { - r1 = args.Get(0).(map[string]history.LookupTableReapResult) - } - return r1, args.Error(2) +func (m *mockDBQ) FindLookupTableRowsToReap(ctx context.Context, table string, batchSize int) ([]int64, int64, error) { + args := m.Called(ctx, table, batchSize) + return args.Get(0).([]int64), args.Get(1).(int64), args.Error(2) +} + +func (m *mockDBQ) ReapLookupTable(ctx context.Context, table string, ids []int64, offset int64) (int64, error) { + args := m.Called(ctx, table, ids, offset) + return args.Get(0).(int64), args.Error(1) } func (m *mockDBQ) RebuildTradeAggregationTimes(ctx context.Context, from, to strtime.Millis, roundingSlippageFilter int) error { diff --git a/services/horizon/internal/ingest/processor_runner.go b/services/horizon/internal/ingest/processor_runner.go index e6f0e0cf74..75b8645953 100644 --- a/services/horizon/internal/ingest/processor_runner.go +++ b/services/horizon/internal/ingest/processor_runner.go @@ -133,11 +133,11 @@ func buildChangeProcessor( }) } -func (s *ProcessorRunner) buildTransactionProcessor(ledgersProcessor *processors.LedgersProcessor) (groupLoaders, *groupTransactionProcessors) { - accountLoader := history.NewAccountLoader() - assetLoader := history.NewAssetLoader() - lpLoader := history.NewLiquidityPoolLoader() - cbLoader := history.NewClaimableBalanceLoader() +func (s *ProcessorRunner) buildTransactionProcessor(ledgersProcessor *processors.LedgersProcessor, concurrencyMode history.ConcurrencyMode) (groupLoaders, *groupTransactionProcessors) { + accountLoader := history.NewAccountLoader(concurrencyMode) + assetLoader := history.NewAssetLoader(concurrencyMode) + lpLoader := history.NewLiquidityPoolLoader(concurrencyMode) + cbLoader := history.NewClaimableBalanceLoader(concurrencyMode) loaders := newGroupLoaders([]horizonLazyLoader{accountLoader, assetLoader, lpLoader, cbLoader}) statsLedgerTransactionProcessor := processors.NewStatsLedgerTransactionProcessor() @@ -366,7 +366,7 @@ func (s *ProcessorRunner) streamLedger(ledger xdr.LedgerCloseMeta, return nil } -func (s *ProcessorRunner) runTransactionProcessorsOnLedger(registry nameRegistry, ledger xdr.LedgerCloseMeta) ( +func (s *ProcessorRunner) runTransactionProcessorsOnLedger(registry nameRegistry, ledger xdr.LedgerCloseMeta, concurrencyMode history.ConcurrencyMode) ( transactionStats processors.StatsLedgerTransactionProcessorResults, transactionDurations runDurations, tradeStats processors.TradeStats, @@ -381,7 +381,7 @@ func (s *ProcessorRunner) runTransactionProcessorsOnLedger(registry nameRegistry groupTransactionFilterers := s.buildTransactionFilterer() // when in online mode, the submission result processor must always run (regardless of whether filter rules exist or not) groupFilteredOutProcessors := s.buildFilteredOutProcessor() - loaders, groupTransactionProcessors := s.buildTransactionProcessor(ledgersProcessor) + loaders, groupTransactionProcessors := s.buildTransactionProcessor(ledgersProcessor, concurrencyMode) if err = registerTransactionProcessors( registry, @@ -494,7 +494,7 @@ func (s *ProcessorRunner) RunTransactionProcessorsOnLedgers(ledgers []xdr.Ledger groupTransactionFilterers := s.buildTransactionFilterer() // intentionally skip filtered out processor groupFilteredOutProcessors := newGroupTransactionProcessors(nil, nil, nil) - loaders, groupTransactionProcessors := s.buildTransactionProcessor(ledgersProcessor) + loaders, groupTransactionProcessors := s.buildTransactionProcessor(ledgersProcessor, history.ConcurrentInserts) startTime := time.Now() curHeap, sysHeap := getMemStats() @@ -611,7 +611,7 @@ func (s *ProcessorRunner) RunAllProcessorsOnLedger(ledger xdr.LedgerCloseMeta) ( return } - transactionStats, transactionDurations, tradeStats, loaderDurations, loaderStats, err := s.runTransactionProcessorsOnLedger(registry, ledger) + transactionStats, transactionDurations, tradeStats, loaderDurations, loaderStats, err := s.runTransactionProcessorsOnLedger(registry, ledger, history.ConcurrentDeletes) stats.changeStats = changeStatsProcessor.GetResults() stats.changeDurations = groupChangeProcessors.processorsRunDurations diff --git a/services/horizon/internal/ingest/processor_runner_test.go b/services/horizon/internal/ingest/processor_runner_test.go index e6ce6b512c..82c712b737 100644 --- a/services/horizon/internal/ingest/processor_runner_test.go +++ b/services/horizon/internal/ingest/processor_runner_test.go @@ -248,7 +248,7 @@ func TestProcessorRunnerBuildTransactionProcessor(t *testing.T) { ledgersProcessor := &processors.LedgersProcessor{} - _, processor := runner.buildTransactionProcessor(ledgersProcessor) + _, processor := runner.buildTransactionProcessor(ledgersProcessor, history.ConcurrentInserts) assert.IsType(t, &groupTransactionProcessors{}, processor) assert.IsType(t, &processors.StatsLedgerTransactionProcessor{}, processor.processors[0]) assert.IsType(t, &processors.EffectProcessor{}, processor.processors[1]) diff --git a/services/horizon/internal/ingest/processors/claimable_balances_transaction_processor_test.go b/services/horizon/internal/ingest/processors/claimable_balances_transaction_processor_test.go index ca918e08ea..5967ef41b1 100644 --- a/services/horizon/internal/ingest/processors/claimable_balances_transaction_processor_test.go +++ b/services/horizon/internal/ingest/processors/claimable_balances_transaction_processor_test.go @@ -44,7 +44,7 @@ func (s *ClaimableBalancesTransactionProcessorTestSuiteLedger) SetupTest() { }, }, } - s.cbLoader = history.NewClaimableBalanceLoader() + s.cbLoader = history.NewClaimableBalanceLoader(history.ConcurrentInserts) s.processor = NewClaimableBalancesTransactionProcessor( s.cbLoader, diff --git a/services/horizon/internal/ingest/processors/effects_processor_test.go b/services/horizon/internal/ingest/processors/effects_processor_test.go index 0243768fde..276f6fcb03 100644 --- a/services/horizon/internal/ingest/processors/effects_processor_test.go +++ b/services/horizon/internal/ingest/processors/effects_processor_test.go @@ -7,11 +7,11 @@ import ( "crypto/rand" "encoding/hex" "encoding/json" + "math/big" + "strings" "testing" "github.com/guregu/null" - "math/big" - "strings" "github.com/stellar/go/keypair" "github.com/stellar/go/protocols/horizon/base" @@ -62,7 +62,7 @@ func TestEffectsProcessorTestSuiteLedger(t *testing.T) { func (s *EffectsProcessorTestSuiteLedger) SetupTest() { s.ctx = context.Background() - s.accountLoader = history.NewAccountLoader() + s.accountLoader = history.NewAccountLoader(history.ConcurrentInserts) s.mockBatchInsertBuilder = &history.MockEffectBatchInsertBuilder{} s.lcm = xdr.LedgerCloseMeta{ @@ -446,7 +446,7 @@ func TestEffectsCoversAllOperationTypes(t *testing.T) { } assert.True(t, err2 != nil || err == nil, s) }() - err = operation.ingestEffects(history.NewAccountLoader(), &history.MockEffectBatchInsertBuilder{}) + err = operation.ingestEffects(history.NewAccountLoader(history.ConcurrentInserts), &history.MockEffectBatchInsertBuilder{}) }() } @@ -468,7 +468,7 @@ func TestEffectsCoversAllOperationTypes(t *testing.T) { ledgerSequence: 1, } // calling effects should error due to the unknown operation - err := operation.ingestEffects(history.NewAccountLoader(), &history.MockEffectBatchInsertBuilder{}) + err := operation.ingestEffects(history.NewAccountLoader(history.ConcurrentInserts), &history.MockEffectBatchInsertBuilder{}) assert.Contains(t, err.Error(), "Unknown operation type") } @@ -2558,7 +2558,7 @@ type effect struct { } func assertIngestEffects(t *testing.T, operation transactionOperationWrapper, expected []effect) { - accountLoader := history.NewAccountLoader() + accountLoader := history.NewAccountLoader(history.ConcurrentInserts) mockBatchInsertBuilder := &history.MockEffectBatchInsertBuilder{} for _, expectedEffect := range expected { diff --git a/services/horizon/internal/ingest/processors/liquidity_pools_transaction_processor_test.go b/services/horizon/internal/ingest/processors/liquidity_pools_transaction_processor_test.go index 8d08e44d44..cdafc5bcc3 100644 --- a/services/horizon/internal/ingest/processors/liquidity_pools_transaction_processor_test.go +++ b/services/horizon/internal/ingest/processors/liquidity_pools_transaction_processor_test.go @@ -44,7 +44,7 @@ func (s *LiquidityPoolsTransactionProcessorTestSuiteLedger) SetupTest() { }, }, } - s.lpLoader = history.NewLiquidityPoolLoader() + s.lpLoader = history.NewLiquidityPoolLoader(history.ConcurrentInserts) s.processor = NewLiquidityPoolsTransactionProcessor( s.lpLoader, diff --git a/services/horizon/internal/ingest/processors/participants_processor_test.go b/services/horizon/internal/ingest/processors/participants_processor_test.go index b81bd22f67..f6154b2b39 100644 --- a/services/horizon/internal/ingest/processors/participants_processor_test.go +++ b/services/horizon/internal/ingest/processors/participants_processor_test.go @@ -86,7 +86,7 @@ func (s *ParticipantsProcessorTestSuiteLedger) SetupTest() { s.thirdTx.Envelope.V1.Tx.SourceAccount = aid.ToMuxedAccount() s.thirdTxID = toid.New(int32(sequence), 3, 0).ToInt64() - s.accountLoader = history.NewAccountLoader() + s.accountLoader = history.NewAccountLoader(history.ConcurrentInserts) s.addressToFuture = map[string]history.FutureAccountID{} for _, address := range s.addresses { s.addressToFuture[address] = s.accountLoader.GetFuture(address) diff --git a/services/horizon/internal/ingest/reap.go b/services/horizon/internal/ingest/reap.go index 07a61a4cde..63b56de993 100644 --- a/services/horizon/internal/ingest/reap.go +++ b/services/horizon/internal/ingest/reap.go @@ -16,6 +16,8 @@ import ( "github.com/stellar/go/toid" ) +const reapLookupTablesBatchSize = 1000 + // Reaper represents the history reaping subsystem of horizon. type Reaper struct { historyQ history.IngestionQ @@ -243,3 +245,117 @@ func (r *Reaper) deleteBatch(ctx context.Context, batchStartSeq, batchEndSeq uin r.deleteBatchDuration.Observe(elapsedSeconds) return count, nil } + +type lookupTableReaper struct { + historyQ history.IngestionQ + reapLockQ history.IngestionQ + pending atomic.Bool + logger *logpkg.Entry + + reapDurationByLookupTable *prometheus.SummaryVec + rowsReapedByLookupTable *prometheus.SummaryVec +} + +func newLookupTableReaper(dbSession db.SessionInterface) *lookupTableReaper { + return &lookupTableReaper{ + historyQ: &history.Q{dbSession.Clone()}, + reapLockQ: &history.Q{dbSession.Clone()}, + pending: atomic.Bool{}, + logger: log.WithField("subservice", "lookuptable-reaper"), + reapDurationByLookupTable: prometheus.NewSummaryVec(prometheus.SummaryOpts{ + Namespace: "horizon", Subsystem: "ingest", Name: "reap_lookup_tables_duration_seconds", + Help: "reap lookup tables durations, sliding window = 10m", + Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, + }, []string{"table", "type"}), + rowsReapedByLookupTable: prometheus.NewSummaryVec(prometheus.SummaryOpts{ + Namespace: "horizon", Subsystem: "ingest", Name: "reap_lookup_tables_rows_reaped", + Help: "rows deleted during lookup tables reap, sliding window = 10m", + Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, + }, []string{"table"}), + } +} + +func (r *lookupTableReaper) RegisterMetrics(registry *prometheus.Registry) { + registry.MustRegister( + r.reapDurationByLookupTable, + r.rowsReapedByLookupTable, + ) +} + +func (r *lookupTableReaper) deleteOrphanedRows(ctx context.Context) error { + // check if reap is already in progress on this horizon node + if !r.pending.CompareAndSwap(false, true) { + r.logger.Infof("existing reap already in progress, skipping request to start a new one") + return nil + } + defer r.pending.Store(false) + + if err := r.reapLockQ.Begin(ctx); err != nil { + return errors.Wrap(err, "error while starting reaper lock transaction") + } + defer func() { + if err := r.reapLockQ.Rollback(); err != nil { + r.logger.WithField("error", err).Error("failed to release reaper lock") + } + }() + // check if reap is already in progress on another horizon node + if acquired, err := r.reapLockQ.TryLookupTableReaperLock(ctx); err != nil { + return errors.Wrap(err, "error while acquiring reaper database lock") + } else if !acquired { + r.logger.Info("reap already in progress on another node") + return nil + } + + reapStart := time.Now() + var totalQueryDuration, totalDeleteDuration time.Duration + var totalDeleted int64 + for _, table := range []string{ + "history_accounts", "history_claimable_balances", + "history_assets", "history_liquidity_pools", + } { + startTime := time.Now() + ids, offset, err := r.historyQ.FindLookupTableRowsToReap(ctx, table, reapLookupTablesBatchSize) + if err != nil { + r.logger.WithField("table", table).WithError(err).Warn("Error finding orphaned rows") + return err + } + queryDuration := time.Since(startTime) + totalQueryDuration += queryDuration + + deleteStartTime := time.Now() + var rowsDeleted int64 + rowsDeleted, err = r.historyQ.ReapLookupTable(ctx, table, ids, offset) + if err != nil { + r.logger.WithField("table", table).WithError(err).Warn("Error deleting orphaned rows") + return err + } + deleteDuration := time.Since(deleteStartTime) + totalDeleteDuration += deleteDuration + + r.rowsReapedByLookupTable.With(prometheus.Labels{"table": table}). + Observe(float64(rowsDeleted)) + r.reapDurationByLookupTable.With(prometheus.Labels{"table": table, "type": "query"}). + Observe(float64(queryDuration.Seconds())) + r.reapDurationByLookupTable.With(prometheus.Labels{"table": table, "type": "delete"}). + Observe(float64(deleteDuration.Seconds())) + r.reapDurationByLookupTable.With(prometheus.Labels{"table": table, "type": "total"}). + Observe(float64((queryDuration + deleteDuration).Seconds())) + + r.logger.WithField("table", table). + WithField("offset", offset). + WithField("rows_deleted", rowsDeleted). + WithField("query_duration", queryDuration.Seconds()). + WithField("delete_duration", deleteDuration.Seconds()). + Info("Reaper deleted rows from lookup tables") + } + + r.rowsReapedByLookupTable.With(prometheus.Labels{"table": "total"}). + Observe(float64(totalDeleted)) + r.reapDurationByLookupTable.With(prometheus.Labels{"table": "total", "type": "query"}). + Observe(float64(totalQueryDuration.Seconds())) + r.reapDurationByLookupTable.With(prometheus.Labels{"table": "total", "type": "delete"}). + Observe(float64(totalDeleteDuration.Seconds())) + r.reapDurationByLookupTable.With(prometheus.Labels{"table": "total", "type": "total"}). + Observe(time.Since(reapStart).Seconds()) + return nil +} diff --git a/services/horizon/internal/ingest/resume_state_test.go b/services/horizon/internal/ingest/resume_state_test.go index feb5e13bb0..534ec555f6 100644 --- a/services/horizon/internal/ingest/resume_state_test.go +++ b/services/horizon/internal/ingest/resume_state_test.go @@ -402,10 +402,6 @@ func (s *ResumeTestTestSuite) TestReapingObjectsDisabled() { } func (s *ResumeTestTestSuite) TestErrorReapingObjectsIgnored() { - s.system.config.ReapLookupTables = true - defer func() { - s.system.config.ReapLookupTables = false - }() s.historyQ.On("Begin", s.ctx).Return(nil).Once() s.historyQ.On("GetLastLedgerIngest", s.ctx).Return(uint32(100), nil).Once() s.historyQ.On("GetIngestVersion", s.ctx).Return(CurrentVersion, nil).Once() @@ -425,12 +421,6 @@ func (s *ResumeTestTestSuite) TestErrorReapingObjectsIgnored() { s.historyQ.On("GetExpStateInvalid", s.ctx).Return(false, nil).Once() s.historyQ.On("RebuildTradeAggregationBuckets", s.ctx, uint32(101), uint32(101), 0).Return(nil).Once() - // Reap lookup tables: - s.ledgerBackend.On("GetLatestLedgerSequence", s.ctx).Return(uint32(101), nil) - s.historyQ.On("Begin", s.ctx).Return(nil).Once() - s.historyQ.On("GetLastLedgerIngest", s.ctx).Return(uint32(100), nil).Once() - s.historyQ.On("ReapLookupTables", mock.AnythingOfType("*context.timerCtx"), mock.Anything).Return(nil, nil, errors.New("error reaping objects")).Once() - s.historyQ.On("Rollback").Return(nil).Once() mockStats := &historyarchive.MockArchiveStats{} mockStats.On("GetBackendName").Return("name") mockStats.On("GetDownloads").Return(uint32(0)) From 1cd3bbe735310433d542513f0b2683d23c2347a0 Mon Sep 17 00:00:00 2001 From: urvisavla Date: Fri, 6 Sep 2024 15:18:14 -0700 Subject: [PATCH 04/13] services/horizon: Limit sql queries for history endpoints to retention window (#5448) --- services/horizon/internal/actions/effects.go | 4 +- services/horizon/internal/actions/helpers.go | 55 +++--- .../horizon/internal/actions/helpers_test.go | 168 +++++++++++++++--- services/horizon/internal/actions/ledger.go | 4 +- .../horizon/internal/actions/operation.go | 4 +- services/horizon/internal/actions/trade.go | 9 +- .../horizon/internal/actions/transaction.go | 4 +- 7 files changed, 186 insertions(+), 62 deletions(-) diff --git a/services/horizon/internal/actions/effects.go b/services/horizon/internal/actions/effects.go index e04997aca5..d8620fc11f 100644 --- a/services/horizon/internal/actions/effects.go +++ b/services/horizon/internal/actions/effects.go @@ -51,12 +51,12 @@ type GetEffectsHandler struct { } func (handler GetEffectsHandler) GetResourcePage(w HeaderWriter, r *http.Request) ([]hal.Pageable, error) { - pq, err := GetPageQuery(handler.LedgerState, r, DefaultTOID) + pq, err := GetPageQuery(handler.LedgerState, r) if err != nil { return nil, err } - err = validateCursorWithinHistory(handler.LedgerState, pq) + err = validateAndAdjustCursor(handler.LedgerState, &pq) if err != nil { return nil, err } diff --git a/services/horizon/internal/actions/helpers.go b/services/horizon/internal/actions/helpers.go index 2575b13251..99071bfba7 100644 --- a/services/horizon/internal/actions/helpers.go +++ b/services/horizon/internal/actions/helpers.go @@ -3,6 +3,7 @@ package actions import ( "context" "encoding/hex" + "errors" "fmt" "net/http" "net/url" @@ -20,7 +21,6 @@ import ( "github.com/stellar/go/services/horizon/internal/db2" "github.com/stellar/go/services/horizon/internal/ledger" hProblem "github.com/stellar/go/services/horizon/internal/render/problem" - "github.com/stellar/go/support/errors" "github.com/stellar/go/support/ordered" "github.com/stellar/go/support/render/problem" "github.com/stellar/go/toid" @@ -45,8 +45,6 @@ type Opt int const ( // DisableCursorValidation disables cursor validation in GetPageQuery DisableCursorValidation Opt = iota - // DefaultTOID sets a default cursor value in GetPageQuery based on the ledger state - DefaultTOID Opt = iota ) // HeaderWriter is an interface for setting HTTP response headers @@ -171,7 +169,7 @@ func getLimit(r *http.Request, name string, def uint64, max uint64) (uint64, err if asI64 <= 0 { err = errors.New("invalid limit: non-positive value provided") } else if asI64 > int64(max) { - err = errors.Errorf("invalid limit: value provided that is over limit max of %d", max) + err = fmt.Errorf("invalid limit: value provided that is over limit max of %d", max) } if err != nil { @@ -185,14 +183,10 @@ func getLimit(r *http.Request, name string, def uint64, max uint64) (uint64, err // using the results from a call to GetPagingParams() func GetPageQuery(ledgerState *ledger.State, r *http.Request, opts ...Opt) (db2.PageQuery, error) { disableCursorValidation := false - defaultTOID := false for _, opt := range opts { if opt == DisableCursorValidation { disableCursorValidation = true } - if opt == DefaultTOID { - defaultTOID = true - } } cursor, err := getCursor(ledgerState, r, ParamCursor) @@ -221,13 +215,6 @@ func GetPageQuery(ledgerState *ledger.State, r *http.Request, opts ...Opt) (db2. return db2.PageQuery{}, err } - if cursor == "" && defaultTOID { - if pageQuery.Order == db2.OrderAscending { - pageQuery.Cursor = toid.AfterLedger( - ordered.Max(0, ledgerState.CurrentStatus().HistoryElder-1), - ).String() - } - } return pageQuery, nil } @@ -553,19 +540,37 @@ func validateAssetParams(aType, code, issuer, prefix string) error { return nil } -// validateCursorWithinHistory compares the requested page of data against the +// validateAndAdjustCursor compares the requested page of data against the // ledger state of the history database. In the event that the cursor is // guaranteed to return no results, we return a 410 GONE http response. -func validateCursorWithinHistory(ledgerState *ledger.State, pq db2.PageQuery) error { - // an ascending query should never return a gone response: An ascending query - // prior to known history should return results at the beginning of history, - // and an ascending query beyond the end of history should not error out but - // rather return an empty page (allowing code that tracks the procession of - // some resource more easily). - if pq.Order != "desc" { - return nil +// For ascending queries, we adjust the cursor to ensure it starts at +// the oldest available ledger. +func validateAndAdjustCursor(ledgerState *ledger.State, pq *db2.PageQuery) error { + err := validateCursorWithinHistory(ledgerState, *pq) + + if pq.Order == db2.OrderAscending { + // an ascending query should never return a gone response: An ascending query + // prior to known history should return results at the beginning of history, + // and an ascending query beyond the end of history should not error out but + // rather return an empty page (allowing code that tracks the procession of + // some resource more easily). + + // set/modify the cursor for ascending queries to start at the oldest available ledger if it + // precedes the oldest ledger. This avoids inefficient queries caused by index bloat from deleted rows + // that are removed as part of reaping to maintain the retention window. + if pq.Cursor == "" || errors.Is(err, &hProblem.BeforeHistory) { + pq.Cursor = toid.AfterLedger( + ordered.Max(0, ledgerState.CurrentStatus().HistoryElder-1), + ).String() + return nil + } } + return err +} +// validateCursorWithinHistory checks if the cursor is within the known history range. +// If the cursor is before the oldest available ledger, it returns BeforeHistory error. +func validateCursorWithinHistory(ledgerState *ledger.State, pq db2.PageQuery) error { var cursor int64 var err error @@ -596,7 +601,7 @@ func countNonEmpty(params ...interface{}) (int, error) { for _, param := range params { switch param := param.(type) { default: - return 0, errors.Errorf("unexpected type %T", param) + return 0, fmt.Errorf("unexpected type %T", param) case int32: if param != 0 { count++ diff --git a/services/horizon/internal/actions/helpers_test.go b/services/horizon/internal/actions/helpers_test.go index 05e840577e..e393cc357e 100644 --- a/services/horizon/internal/actions/helpers_test.go +++ b/services/horizon/internal/actions/helpers_test.go @@ -16,6 +16,7 @@ import ( horizonContext "github.com/stellar/go/services/horizon/internal/context" "github.com/stellar/go/services/horizon/internal/db2" "github.com/stellar/go/services/horizon/internal/ledger" + hProblem "github.com/stellar/go/services/horizon/internal/render/problem" "github.com/stellar/go/services/horizon/internal/test" "github.com/stellar/go/support/db" "github.com/stellar/go/support/errors" @@ -126,11 +127,21 @@ func TestValidateCursorWithinHistory(t *testing.T) { { cursor: "0", order: "asc", - valid: true, + valid: false, }, { cursor: "0-1234", order: "asc", + valid: false, + }, + { + cursor: "1", + order: "asc", + valid: true, + }, + { + cursor: "1-1234", + order: "asc", valid: true, }, } @@ -291,11 +302,10 @@ func TestGetPageQuery(t *testing.T) { tt.Assert.Error(err) } -func TestGetPageQueryCursorDefaultTOID(t *testing.T) { - ascReq := makeTestActionRequest("/foo-bar/blah?limit=2", testURLParams()) - descReq := makeTestActionRequest("/foo-bar/blah?limit=2&order=desc", testURLParams()) - +func TestPageQueryCursorDefaultOrder(t *testing.T) { ledgerState := &ledger.State{} + + // truncated history ledgerState.SetHorizonStatus(ledger.HorizonStatus{ HistoryLatest: 7000, HistoryLatestClosedAt: time.Now(), @@ -303,30 +313,30 @@ func TestGetPageQueryCursorDefaultTOID(t *testing.T) { ExpHistoryLatest: 7000, }) - pq, err := GetPageQuery(ledgerState, ascReq, DefaultTOID) + req := makeTestActionRequest("/foo-bar/blah?limit=2", testURLParams()) + + // default asc, w/o cursor + pq, err := GetPageQuery(ledgerState, req) assert.NoError(t, err) + assert.Empty(t, pq.Cursor) + assert.NoError(t, validateAndAdjustCursor(ledgerState, &pq)) assert.Equal(t, toid.AfterLedger(299).String(), pq.Cursor) assert.Equal(t, uint64(2), pq.Limit) assert.Equal(t, "asc", pq.Order) - pq, err = GetPageQuery(ledgerState, descReq, DefaultTOID) - assert.NoError(t, err) - assert.Equal(t, "", pq.Cursor) - assert.Equal(t, uint64(2), pq.Limit) - assert.Equal(t, "desc", pq.Order) + cursor := toid.AfterLedger(200).String() + reqWithCursor := makeTestActionRequest(fmt.Sprintf("/foo-bar/blah?cursor=%s&limit=2", cursor), testURLParams()) - pq, err = GetPageQuery(ledgerState, ascReq) + // default asc, w/ cursor + pq, err = GetPageQuery(ledgerState, reqWithCursor) assert.NoError(t, err) - assert.Empty(t, pq.Cursor) + assert.Equal(t, cursor, pq.Cursor) + assert.NoError(t, validateAndAdjustCursor(ledgerState, &pq)) + assert.Equal(t, toid.AfterLedger(299).String(), pq.Cursor) assert.Equal(t, uint64(2), pq.Limit) assert.Equal(t, "asc", pq.Order) - pq, err = GetPageQuery(ledgerState, descReq) - assert.NoError(t, err) - assert.Empty(t, pq.Cursor) - assert.Equal(t, "", pq.Cursor) - assert.Equal(t, "desc", pq.Order) - + // full history ledgerState.SetHorizonStatus(ledger.HorizonStatus{ HistoryLatest: 7000, HistoryLatestClosedAt: time.Now(), @@ -334,18 +344,130 @@ func TestGetPageQueryCursorDefaultTOID(t *testing.T) { ExpHistoryLatest: 7000, }) - pq, err = GetPageQuery(ledgerState, ascReq, DefaultTOID) + // default asc, w/o cursor + pq, err = GetPageQuery(ledgerState, req) assert.NoError(t, err) + assert.Empty(t, pq.Cursor) + assert.NoError(t, validateAndAdjustCursor(ledgerState, &pq)) assert.Equal(t, toid.AfterLedger(0).String(), pq.Cursor) assert.Equal(t, uint64(2), pq.Limit) assert.Equal(t, "asc", pq.Order) - pq, err = GetPageQuery(ledgerState, descReq, DefaultTOID) + // default asc, w/ cursor + pq, err = GetPageQuery(ledgerState, reqWithCursor) assert.NoError(t, err) - assert.Equal(t, "", pq.Cursor) + assert.Equal(t, cursor, pq.Cursor) + assert.NoError(t, validateAndAdjustCursor(ledgerState, &pq)) + assert.Equal(t, cursor, pq.Cursor) assert.Equal(t, uint64(2), pq.Limit) - assert.Equal(t, "desc", pq.Order) + assert.Equal(t, "asc", pq.Order) + +} + +func TestGetPageQueryWithoutCursor(t *testing.T) { + ledgerState := &ledger.State{} + + validateCursor := func(limit uint64, order string, expectedCursor string) { + req := makeTestActionRequest(fmt.Sprintf("/foo-bar/blah?limit=%d&order=%s", limit, order), testURLParams()) + pq, err := GetPageQuery(ledgerState, req) + assert.NoError(t, err) + assert.Empty(t, pq.Cursor) + assert.NoError(t, validateAndAdjustCursor(ledgerState, &pq)) + assert.Equal(t, expectedCursor, pq.Cursor) + assert.Equal(t, limit, pq.Limit) + assert.Equal(t, order, pq.Order) + } + + // truncated history + ledgerState.SetHorizonStatus(ledger.HorizonStatus{ + HistoryLatest: 7000, + HistoryLatestClosedAt: time.Now(), + HistoryElder: 300, + ExpHistoryLatest: 7000, + }) + + validateCursor(2, "asc", toid.AfterLedger(299).String()) + validateCursor(2, "desc", "") + + // full history + ledgerState.SetHorizonStatus(ledger.HorizonStatus{ + HistoryLatest: 7000, + HistoryLatestClosedAt: time.Now(), + HistoryElder: 0, + ExpHistoryLatest: 7000, + }) + + validateCursor(2, "asc", toid.AfterLedger(0).String()) + validateCursor(2, "desc", "") +} + +func TestValidateAndAdjustCursor(t *testing.T) { + ledgerState := &ledger.State{} + + validateCursor := func(cursor string, limit uint64, order string, expectedCursor string, expectedError error) { + pq := db2.PageQuery{Cursor: cursor, + Limit: limit, + Order: order, + } + err := validateAndAdjustCursor(ledgerState, &pq) + if expectedError != nil { + assert.EqualError(t, expectedError, err.Error()) + } else { + assert.NoError(t, err) + } + assert.Equal(t, expectedCursor, pq.Cursor) + assert.Equal(t, limit, pq.Limit) + assert.Equal(t, order, pq.Order) + } + + // full history + ledgerState.SetHorizonStatus(ledger.HorizonStatus{ + HistoryLatest: 7000, + HistoryLatestClosedAt: time.Now(), + HistoryElder: 0, + ExpHistoryLatest: 7000, + }) + + // invalid cursor + validateCursor("blah", 2, "asc", "blah", problem.BadRequest) + validateCursor("blah", 2, "desc", "blah", problem.BadRequest) + + validateCursor(toid.AfterLedger(0).String(), 2, "asc", toid.AfterLedger(0).String(), nil) + validateCursor(toid.AfterLedger(200).String(), 2, "asc", toid.AfterLedger(200).String(), nil) + validateCursor(toid.AfterLedger(7001).String(), 2, "asc", toid.AfterLedger(7001).String(), nil) + + validateCursor(toid.AfterLedger(0).String(), 2, "desc", toid.AfterLedger(0).String(), nil) + validateCursor(toid.AfterLedger(200).String(), 2, "desc", toid.AfterLedger(200).String(), nil) + validateCursor(toid.AfterLedger(7001).String(), 2, "desc", toid.AfterLedger(7001).String(), nil) + + // truncated history + ledgerState.SetHorizonStatus(ledger.HorizonStatus{ + HistoryLatest: 7000, + HistoryLatestClosedAt: time.Now(), + HistoryElder: 300, + ExpHistoryLatest: 7000, + }) + // invalid cursor + validateCursor("blah", 2, "asc", "blah", problem.BadRequest) + validateCursor("blah", 2, "desc", "blah", problem.BadRequest) + + // asc order + validateCursor(toid.AfterLedger(0).String(), 2, "asc", toid.AfterLedger(299).String(), nil) + validateCursor(toid.AfterLedger(200).String(), 2, "asc", toid.AfterLedger(299).String(), nil) + validateCursor(toid.AfterLedger(298).String(), 2, "asc", toid.AfterLedger(299).String(), nil) + validateCursor(toid.AfterLedger(299).String(), 2, "asc", toid.AfterLedger(299).String(), nil) + validateCursor(toid.AfterLedger(300).String(), 2, "asc", toid.AfterLedger(300).String(), nil) + validateCursor(toid.AfterLedger(301).String(), 2, "asc", toid.AfterLedger(301).String(), nil) + validateCursor(toid.AfterLedger(7001).String(), 2, "asc", toid.AfterLedger(7001).String(), nil) + + // desc order + validateCursor(toid.AfterLedger(0).String(), 2, "desc", toid.AfterLedger(0).String(), hProblem.BeforeHistory) + validateCursor(toid.AfterLedger(200).String(), 2, "desc", toid.AfterLedger(200).String(), hProblem.BeforeHistory) + validateCursor(toid.AfterLedger(299).String(), 2, "desc", toid.AfterLedger(299).String(), hProblem.BeforeHistory) + validateCursor(toid.AfterLedger(300).String(), 2, "desc", toid.AfterLedger(300).String(), nil) + validateCursor(toid.AfterLedger(320).String(), 2, "desc", toid.AfterLedger(320).String(), nil) + validateCursor(toid.AfterLedger(7001).String(), 2, "desc", toid.AfterLedger(7001).String(), nil) } func TestGetString(t *testing.T) { diff --git a/services/horizon/internal/actions/ledger.go b/services/horizon/internal/actions/ledger.go index 0b3d51b8e1..0836ba9b10 100644 --- a/services/horizon/internal/actions/ledger.go +++ b/services/horizon/internal/actions/ledger.go @@ -17,12 +17,12 @@ type GetLedgersHandler struct { } func (handler GetLedgersHandler) GetResourcePage(w HeaderWriter, r *http.Request) ([]hal.Pageable, error) { - pq, err := GetPageQuery(handler.LedgerState, r, DefaultTOID) + pq, err := GetPageQuery(handler.LedgerState, r) if err != nil { return nil, err } - err = validateCursorWithinHistory(handler.LedgerState, pq) + err = validateAndAdjustCursor(handler.LedgerState, &pq) if err != nil { return nil, err } diff --git a/services/horizon/internal/actions/operation.go b/services/horizon/internal/actions/operation.go index 9ccadb272e..6b200cba29 100644 --- a/services/horizon/internal/actions/operation.go +++ b/services/horizon/internal/actions/operation.go @@ -72,12 +72,12 @@ type GetOperationsHandler struct { func (handler GetOperationsHandler) GetResourcePage(w HeaderWriter, r *http.Request) ([]hal.Pageable, error) { ctx := r.Context() - pq, err := GetPageQuery(handler.LedgerState, r, DefaultTOID) + pq, err := GetPageQuery(handler.LedgerState, r) if err != nil { return nil, err } - err = validateCursorWithinHistory(handler.LedgerState, pq) + err = validateAndAdjustCursor(handler.LedgerState, &pq) if err != nil { return nil, err } diff --git a/services/horizon/internal/actions/trade.go b/services/horizon/internal/actions/trade.go index b29ad64715..57d97593cf 100644 --- a/services/horizon/internal/actions/trade.go +++ b/services/horizon/internal/actions/trade.go @@ -159,12 +159,12 @@ type GetTradesHandler struct { func (handler GetTradesHandler) GetResourcePage(w HeaderWriter, r *http.Request) ([]hal.Pageable, error) { ctx := r.Context() - pq, err := GetPageQuery(handler.LedgerState, r, DefaultTOID) + pq, err := GetPageQuery(handler.LedgerState, r) if err != nil { return nil, err } - err = validateCursorWithinHistory(handler.LedgerState, pq) + err = validateAndAdjustCursor(handler.LedgerState, &pq) if err != nil { return nil, err } @@ -287,10 +287,7 @@ func (handler GetTradeAggregationsHandler) GetResource(w HeaderWriter, r *http.R if err != nil { return nil, err } - err = validateCursorWithinHistory(handler.LedgerState, pq) - if err != nil { - return nil, err - } + qp := TradeAggregationsQuery{} if err = getParams(&qp, r); err != nil { return nil, err diff --git a/services/horizon/internal/actions/transaction.go b/services/horizon/internal/actions/transaction.go index 6a2fd1c6e2..ed579f9d6f 100644 --- a/services/horizon/internal/actions/transaction.go +++ b/services/horizon/internal/actions/transaction.go @@ -98,12 +98,12 @@ type GetTransactionsHandler struct { func (handler GetTransactionsHandler) GetResourcePage(w HeaderWriter, r *http.Request) ([]hal.Pageable, error) { ctx := r.Context() - pq, err := GetPageQuery(handler.LedgerState, r, DefaultTOID) + pq, err := GetPageQuery(handler.LedgerState, r) if err != nil { return nil, err } - err = validateCursorWithinHistory(handler.LedgerState, pq) + err = validateAndAdjustCursor(handler.LedgerState, &pq) if err != nil { return nil, err } From 3261ecbd36f45d89591c225e61077c360f4cc9c3 Mon Sep 17 00:00:00 2001 From: Aditya Vyas Date: Wed, 11 Sep 2024 15:12:34 -0400 Subject: [PATCH 05/13] update rpc docker image (#5459) --- .github/workflows/horizon.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/horizon.yml b/.github/workflows/horizon.yml index f315e27791..affea796ff 100644 --- a/.github/workflows/horizon.yml +++ b/.github/workflows/horizon.yml @@ -35,7 +35,7 @@ jobs: HORIZON_INTEGRATION_TESTS_CAPTIVE_CORE_USE_DB: true PROTOCOL_21_CORE_DEBIAN_PKG_VERSION: 21.3.1-2007.4ede19620.focal PROTOCOL_21_CORE_DOCKER_IMG: stellar/stellar-core:21.3.1-2007.4ede19620.focal - PROTOCOL_21_SOROBAN_RPC_DOCKER_IMG: stellar/soroban-rpc:21.4.1 + PROTOCOL_21_SOROBAN_RPC_DOCKER_IMG: stellar/soroban-rpc:21.5.0 PGHOST: localhost PGPORT: 5432 PGUSER: postgres From f668d5b831715d0b55010c4f5b8d7ea2d6313065 Mon Sep 17 00:00:00 2001 From: George Date: Mon, 16 Sep 2024 15:37:42 -0700 Subject: [PATCH 06/13] .github: Bump RPC reference to latest patch, v21.5.1 (#5461) --- .github/workflows/horizon.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/horizon.yml b/.github/workflows/horizon.yml index affea796ff..86e68c3d85 100644 --- a/.github/workflows/horizon.yml +++ b/.github/workflows/horizon.yml @@ -35,7 +35,7 @@ jobs: HORIZON_INTEGRATION_TESTS_CAPTIVE_CORE_USE_DB: true PROTOCOL_21_CORE_DEBIAN_PKG_VERSION: 21.3.1-2007.4ede19620.focal PROTOCOL_21_CORE_DOCKER_IMG: stellar/stellar-core:21.3.1-2007.4ede19620.focal - PROTOCOL_21_SOROBAN_RPC_DOCKER_IMG: stellar/soroban-rpc:21.5.0 + PROTOCOL_21_SOROBAN_RPC_DOCKER_IMG: stellar/soroban-rpc:21.5.1 PGHOST: localhost PGPORT: 5432 PGUSER: postgres From 6fbba33f8123b69f398ac3cd7166ebac9311fde1 Mon Sep 17 00:00:00 2001 From: urvisavla Date: Tue, 24 Sep 2024 01:25:00 -0700 Subject: [PATCH 07/13] fix CI failures due to race condition in recoverysigner unit tests (#5472) * fix CI failures due to race condition in recoverysigner unit tests * Update support/db/dbtest/db.go Co-authored-by: tamirms --- support/db/dbtest/db.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/support/db/dbtest/db.go b/support/db/dbtest/db.go index 18de073224..42f252b6f8 100644 --- a/support/db/dbtest/db.go +++ b/support/db/dbtest/db.go @@ -128,9 +128,11 @@ func checkReadOnly(t testing.TB, DSN string) { if !rows.Next() { _, err = tx.Exec("CREATE ROLE user_ro WITH LOGIN PASSWORD 'user_ro';") if err != nil { - // Handle race condition by ignoring the error if it's a duplicate key violation - if pqErr, ok := err.(*pq.Error); ok && pqErr.Code == "23505" { + // Handle race condition by ignoring the error if it's a duplicate key violation or duplicate object error + if pqErr, ok := err.(*pq.Error); ok && (pqErr.Code == "23505" || pqErr.Code == "42710") { return + } else if ok { + t.Logf("pq error code: %s", pqErr.Code) } } require.NoError(t, err) From 9e0c2c0169fe7f260ea1e00d56be74e28f4fdf36 Mon Sep 17 00:00:00 2001 From: mwtzzz <101583293+mwtzzz@users.noreply.github.com> Date: Thu, 26 Sep 2024 11:21:43 -0700 Subject: [PATCH 08/13] updates to horizon docker builds (#5466) --- services/horizon/docker/Dockerfile | 1 + .../horizon/docker/Dockerfile.core-testing | 19 ++++++++++++ services/horizon/docker/Dockerfile.stable | 18 ++++++++++++ services/horizon/docker/Makefile | 29 +++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 services/horizon/docker/Dockerfile.core-testing create mode 100644 services/horizon/docker/Dockerfile.stable diff --git a/services/horizon/docker/Dockerfile b/services/horizon/docker/Dockerfile index 3c090d203c..2d5c7a01a2 100644 --- a/services/horizon/docker/Dockerfile +++ b/services/horizon/docker/Dockerfile @@ -1,3 +1,4 @@ +# install Core from apt "stable" or "unstable" pool, and horizon from apt "testing" pool FROM ubuntu:focal ARG VERSION diff --git a/services/horizon/docker/Dockerfile.core-testing b/services/horizon/docker/Dockerfile.core-testing new file mode 100644 index 0000000000..c0d1dff8e6 --- /dev/null +++ b/services/horizon/docker/Dockerfile.core-testing @@ -0,0 +1,19 @@ +# install both horizon and core from apt "testing" pool +FROM ubuntu:focal + +ARG VERSION +ARG STELLAR_CORE_VERSION +ARG DEBIAN_FRONTEND=noninteractive +ARG ALLOW_CORE_UNSTABLE=no + +RUN apt-get update && apt-get install -y wget apt-transport-https gnupg2 && \ + wget -qO /etc/apt/trusted.gpg.d/SDF.asc https://apt.stellar.org/SDF.asc && \ + echo "deb https://apt.stellar.org focal testing" | tee -a /etc/apt/sources.list.d/SDF.list && \ + cat /etc/apt/sources.list.d/SDF.list && \ + apt-get update && \ + apt-cache madison stellar-core && eval "apt-get install -y stellar-core${STELLAR_CORE_VERSION+=$STELLAR_CORE_VERSION}" && \ + apt-cache madison stellar-horizon && apt-get install -y stellar-horizon=${VERSION} && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /var/log/*.log /var/log/*/*.log + +EXPOSE 8000 +ENTRYPOINT ["/usr/bin/stellar-horizon"] diff --git a/services/horizon/docker/Dockerfile.stable b/services/horizon/docker/Dockerfile.stable new file mode 100644 index 0000000000..63f268873a --- /dev/null +++ b/services/horizon/docker/Dockerfile.stable @@ -0,0 +1,18 @@ +# install Core from apt "stable"and horizon from apt "stable" pool +FROM ubuntu:focal + +ARG VERSION +ARG STELLAR_CORE_VERSION +ARG DEBIAN_FRONTEND=noninteractive +ARG ALLOW_CORE_UNSTABLE=no + +RUN apt-get update && apt-get install -y wget apt-transport-https gnupg2 && \ + wget -qO /etc/apt/trusted.gpg.d/SDF.asc https://apt.stellar.org/SDF.asc && \ + echo "deb https://apt.stellar.org focal stable" | tee -a /etc/apt/sources.list.d/SDF.list && \ + cat /etc/apt/sources.list.d/SDF.list && \ + apt-get update && apt-cache madison stellar-core && eval "apt-get install -y stellar-core${STELLAR_CORE_VERSION+=$STELLAR_CORE_VERSION}" && \ + apt-cache madison stellar-horizon && apt-get install -y stellar-horizon=${VERSION} && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /var/log/*.log /var/log/*/*.log + +EXPOSE 8000 +ENTRYPOINT ["/usr/bin/stellar-horizon"] diff --git a/services/horizon/docker/Makefile b/services/horizon/docker/Makefile index 51ee19f2fe..26d3c892d0 100644 --- a/services/horizon/docker/Makefile +++ b/services/horizon/docker/Makefile @@ -5,6 +5,7 @@ BUILD_DATE := $(shell date -u +%FT%TZ) TAG ?= stellar/stellar-horizon:$(VERSION) +# build with Core from apt "stable" or "unstable", and horizon from apt "testing" docker-build: ifndef VERSION $(error VERSION environment variable must be set. For example VERSION=2.4.1-101 ) @@ -22,6 +23,34 @@ else -t $(TAG) . endif +# build Core and Horizon from apt "testing" +docker-build-core-testing: +ifndef VERSION + $(error VERSION environment variable must be set. For example VERSION=2.4.1-101 ) +endif +ifndef STELLAR_CORE_VERSION + $(error STELLAR_CORE_VERSION environment variable must be set. ) +else + $(SUDO) docker build --file ./Dockerfile.core-testing --pull $(DOCKER_OPTS) \ + --label org.opencontainers.image.created="$(BUILD_DATE)" \ + --build-arg VERSION=$(VERSION) --build-arg STELLAR_CORE_VERSION=$(STELLAR_CORE_VERSION) \ + -t $(TAG) . +endif + +# build Core and Horizon from apt "stable" +docker-build-core-stable: +ifndef VERSION + $(error VERSION environment variable must be set. For example VERSION=2.4.1-101 ) +endif +ifndef STELLAR_CORE_VERSION + $(error STELLAR_CORE_VERSION environment variable must be set. ) +else + $(SUDO) docker build --file ./Dockerfile.stable --pull $(DOCKER_OPTS) \ + --label org.opencontainers.image.created="$(BUILD_DATE)" \ + --build-arg VERSION=$(VERSION) --build-arg STELLAR_CORE_VERSION=$(STELLAR_CORE_VERSION) \ + -t $(TAG) . +endif + docker-push: ifndef TAG $(error Must set VERSION or TAG environment variable. For example VERSION=2.4.1-101 ) From 59f4e2332a6dc67b33fb688ba284f8938544d7c0 Mon Sep 17 00:00:00 2001 From: shawn Date: Tue, 1 Oct 2024 15:05:47 -0700 Subject: [PATCH 09/13] refreshed cdp arch diagram on dev guide (#5483) --- services/galexie/architecture.png | Bin 357065 -> 728351 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/services/galexie/architecture.png b/services/galexie/architecture.png index 85bd6d8b31d6224a6897681351c9b8f90f48d479..c19a313ebef18b2a8b4a74a4b640d4567a2a9151 100644 GIT binary patch literal 728351 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%0DWG3 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≷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Ð2X{ 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

%#R{s&vZ$wQf|b>?5_78mpgDlCf*AVJu&f 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⪼gPTa8J)A`tLES-Q>@V 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