Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Batch ¶
type Batch struct {
// contains filtered or unexported fields
}
Batch is used to perform multiple object additions/deletions at once.
func (*Batch) AddObject ¶
func (b *Batch) AddObject(meta RemoteObjectMetadata)
AddObject adds a new object to the batch.
The given FileNum must be new - it must not match that of any object that was ever in the catalog.
func (*Batch) DeleteObject ¶
func (b *Batch) DeleteObject(fileNum base.DiskFileNum)
DeleteObject adds an object removal to the batch.
type Catalog ¶
type Catalog struct {
// contains filtered or unexported fields
}
Catalog is used to manage the on-disk remote object catalog.
The catalog file is a log of records, where each record is an encoded VersionEdit.
func (*Catalog) ApplyBatch ¶
ApplyBatch applies a batch of updates; returns after the change is stably recorded on storage.
func (*Catalog) SetCreatorID ¶
func (c *Catalog) SetCreatorID(id objstorage.CreatorID) error
SetCreatorID sets the creator ID. If it is already set, it must match.
type CatalogContents ¶
type CatalogContents struct { // CreatorID, if it is set. CreatorID objstorage.CreatorID Objects []RemoteObjectMetadata }
CatalogContents contains the remote objects in the catalog.
type RemoteObjectMetadata ¶
type RemoteObjectMetadata struct { // FileNum is the identifier for the object within the context of a single DB // instance. FileNum base.DiskFileNum // FileType is the type of the object. Only certain FileTypes are possible. FileType base.FileType // CreatorID identifies the DB instance that originally created the object. CreatorID objstorage.CreatorID // CreatorFileNum is the identifier for the object within the context of the // DB instance that originally created the object. CreatorFileNum base.DiskFileNum // CleanupMethod indicates the method for cleaning up unused shared objects. CleanupMethod objstorage.SharedCleanupMethod // Locator identifies a remote.Storage implementation. Locator remote.Locator // CustomObjectName (if it is set) overrides the object name that is normally // derived from the CreatorID and CreatorFileNum. CustomObjectName string }
RemoteObjectMetadata encapsulates the data stored in the catalog file for each object.
type VersionEdit ¶
type VersionEdit struct { NewObjects []RemoteObjectMetadata DeletedObjects []base.DiskFileNum CreatorID objstorage.CreatorID }
VersionEdit is a modification to the remote object state which can be encoded into a record.
TODO(radu): consider adding creation and deletion time for debugging purposes.
func (*VersionEdit) Apply ¶
func (v *VersionEdit) Apply( creatorID *objstorage.CreatorID, objects map[base.DiskFileNum]RemoteObjectMetadata, ) error
Apply the version edit to a creator ID and a map of objects.