MCPcopy Create free account
hub / github.com/brimdata/super / commit

Method commit

db/journal/store.go:358–394  ·  view source on GitHub ↗
(ctx context.Context, fn func() error, entries ...Entry)

Source from the content-addressed store, hash-verified

356}
357
358func (s *Store) commit(ctx context.Context, fn func() error, entries ...Entry) error {
359 serializer := bsupbytes.NewSerializer()
360 serializer.Decorate(sup.StylePackage)
361 for _, e := range entries {
362 if err := serializer.Write(e); err != nil {
363 return err
364 }
365 }
366 if err := serializer.Close(); err != nil {
367 return err
368 }
369 for range maxRetries {
370 if err := s.load(ctx); err != nil {
371 return err
372 }
373 s.mu.RLock()
374 at := s.at
375 err := fn()
376 s.mu.RUnlock()
377 if err != nil {
378 return err
379 }
380 if err := s.journal.CommitAt(ctx, at, serializer.Bytes()); err != nil {
381 if os.IsExist(err) {
382 time.Sleep(time.Millisecond)
383 continue
384 }
385 return err
386 }
387 // Force a reload after a change.
388 s.mu.Lock()
389 s.at = Nil
390 s.mu.Unlock()
391 return nil
392 }
393 return ErrRetriesExceeded
394}
395
396func (s *Store) MoveTail(ctx context.Context, newTail ID) error {
397 head, tail, base, err := s.journal.Boundaries(ctx)

Callers 3

InsertMethod · 0.95
MoveMethod · 0.95
commitWithConstraintMethod · 0.95

Calls 7

DecorateMethod · 0.95
WriteMethod · 0.95
CloseMethod · 0.95
loadMethod · 0.95
BytesMethod · 0.95
NewSerializerFunction · 0.92
CommitAtMethod · 0.80

Tested by

no test coverage detected