Documentation
¶
Index ¶
- Constants
- type AsyncWriter
- type Buffer
- type BufferEntry
- type BufferEntryGroup
- type BufferedWriter
- type Cache
- type CacheEntry
- type CacheReader
- type DiskCache
- func (cache *DiskCache) CreateEntry(key string, group string, data []byte) (CacheEntry, error)
- func (cache *DiskCache) DeleteAllEntries()
- func (cache *DiskCache) DeleteAllEntriesForGroup(group string)
- func (cache *DiskCache) DeleteEntry(key string)
- func (cache *DiskCache) GetAvailableSize() int64
- func (cache *DiskCache) GetEntry(key string) CacheEntry
- func (cache *DiskCache) GetEntryKeys() []string
- func (cache *DiskCache) GetEntryKeysForGroup(group string) []string
- func (cache *DiskCache) GetRootPath() string
- func (cache *DiskCache) GetSizeCap() int64
- func (cache *DiskCache) GetTotalEntries() int
- func (cache *DiskCache) GetTotalEntrySize() int64
- func (cache *DiskCache) HasEntry(key string) bool
- func (cache *DiskCache) Release()
- type DiskCacheEntry
- type RAMBuffer
- func (buffer *RAMBuffer) CreateEntryGroup(name string) BufferEntryGroup
- func (buffer *RAMBuffer) DeleteAllEntryGroups()
- func (buffer *RAMBuffer) DeleteEntryGroup(name string)
- func (buffer *RAMBuffer) GetAvailableSize() int64
- func (buffer *RAMBuffer) GetEntryGroup(name string) BufferEntryGroup
- func (buffer *RAMBuffer) GetEntryGroups() []BufferEntryGroup
- func (buffer *RAMBuffer) GetSizeCap() int64
- func (buffer *RAMBuffer) GetTotalEntries() int
- func (buffer *RAMBuffer) GetTotalEntrySize() int64
- func (buffer *RAMBuffer) Release()
- func (buffer *RAMBuffer) WaitForSpace(spaceRequired int64) bool
- type RAMBufferEntry
- type RAMBufferEntryGroup
- func (group *RAMBufferEntryGroup) CreateEntry(key string, data []byte) (BufferEntry, error)
- func (group *RAMBufferEntryGroup) DeleteAllEntries()
- func (group *RAMBufferEntryGroup) DeleteEntry(key string)
- func (group *RAMBufferEntryGroup) GetBuffer() Buffer
- func (group *RAMBufferEntryGroup) GetEntry(key string) BufferEntry
- func (group *RAMBufferEntryGroup) GetEntryCount() int
- func (group *RAMBufferEntryGroup) GetEntryKeys() []string
- func (group *RAMBufferEntryGroup) GetName() string
- func (group *RAMBufferEntryGroup) GetSize() int64
- func (group *RAMBufferEntryGroup) PopEntry(key string) BufferEntry
- type Reader
- type SyncReader
- type SyncWriter
- type Writer
Constants ¶
View Source
const (
BlockSize int = 1024 * 1024 // 1MB
)
View Source
const (
BufferSizeMax int = 1024 * 1024 * 4 // 4MB
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AsyncWriter ¶
type AsyncWriter struct { Path string IRODSFileHandle *irodsfs.FileHandle FileHandleLock *sync.Mutex Buffer Buffer BufferEntryGroupName string WriteWaitTasks sync.WaitGroup WriteQueue channels.Channel PendingErrors []error Mutex sync.Mutex // for WriteIOErrors }
AsyncWriter helps async write
func NewAsyncWriter ¶
func NewAsyncWriter(path string, fileHandleID string, fileHandle *irodsfs.FileHandle, fileHandleLock *sync.Mutex, writeBuffer Buffer) *AsyncWriter
NewAsyncWriter create a new AsyncWriter
func (*AsyncWriter) Flush ¶
func (writer *AsyncWriter) Flush() error
func (*AsyncWriter) GetPendingError ¶
func (writer *AsyncWriter) GetPendingError() error
type Buffer ¶
type Buffer interface { Release() GetSizeCap() int64 GetTotalEntries() int GetTotalEntrySize() int64 GetAvailableSize() int64 WaitForSpace(spaceRequired int64) bool CreateEntryGroup(name string) BufferEntryGroup GetEntryGroup(name string) BufferEntryGroup GetEntryGroups() []BufferEntryGroup DeleteEntryGroup(name string) DeleteAllEntryGroups() }
Buffer is a buffer management object
type BufferEntry ¶
type BufferEntry interface { GetKey() string GetSize() int GetAccessCount() int GetCreationTime() time.Time GetData() []byte }
BufferEntry is a buffer entry (e.g., a file chunk)
type BufferEntryGroup ¶
type BufferEntryGroup interface { GetBuffer() Buffer GetName() string GetEntryCount() int GetSize() int64 GetEntryKeys() []string DeleteAllEntries() CreateEntry(key string, data []byte) (BufferEntry, error) GetEntry(key string) BufferEntry DeleteEntry(key string) PopEntry(key string) BufferEntry }
BufferEntryGroup defines an entry group (e.g., a file)
type BufferedWriter ¶
type BufferedWriter struct { Path string Buffer bytes.Buffer BufferStartOffset int64 Mutex sync.Mutex // lock for WriteBuffer Writer Writer }
func NewBufferedWriter ¶
func NewBufferedWriter(path string, writer Writer) *BufferedWriter
func (*BufferedWriter) Flush ¶
func (writer *BufferedWriter) Flush() error
func (*BufferedWriter) GetPendingError ¶
func (writer *BufferedWriter) GetPendingError() error
func (*BufferedWriter) Release ¶
func (writer *BufferedWriter) Release()
Release releases all resources
type Cache ¶
type Cache interface { Release() GetSizeCap() int64 GetTotalEntries() int GetTotalEntrySize() int64 GetAvailableSize() int64 DeleteAllEntries() DeleteAllEntriesForGroup(group string) GetEntryKeys() []string GetEntryKeysForGroup(group string) []string CreateEntry(key string, group string, data []byte) (CacheEntry, error) HasEntry(key string) bool GetEntry(key string) CacheEntry DeleteEntry(key string) }
Cache is a cache management object
type CacheEntry ¶
type CacheEntry interface { GetKey() string GetGroup() string GetSize() int GetCreationTime() time.Time GetData() ([]byte, error) }
CacheEntry is a cache entry (e.g., a file chunk)
type CacheReader ¶
type CacheReader struct { Path string Checksum string Cache Cache Reader Reader BlockHelper *utils.FileBlockHelper }
CacheReader helps read through cache
func NewCacheReader ¶
func NewCacheReader(path string, checksum string, cache Cache, reader Reader) *CacheReader
NewCacheReader create a new CacheReader
func (*CacheReader) GetPendingError ¶
func (reader *CacheReader) GetPendingError() error
type DiskCache ¶
type DiskCache struct { SizeCap int64 EntryCap int RootPath string Cache *lrucache.Cache Groups map[string]map[string]bool // key = group name, value = cache keys for a group Mutex sync.Mutex }
DiskCache
func (*DiskCache) CreateEntry ¶
func (*DiskCache) DeleteAllEntries ¶
func (cache *DiskCache) DeleteAllEntries()
func (*DiskCache) DeleteAllEntriesForGroup ¶ added in v0.1.1
func (*DiskCache) DeleteEntry ¶
func (*DiskCache) GetAvailableSize ¶
func (*DiskCache) GetEntry ¶
func (cache *DiskCache) GetEntry(key string) CacheEntry
func (*DiskCache) GetEntryKeys ¶
func (*DiskCache) GetEntryKeysForGroup ¶ added in v0.1.1
func (*DiskCache) GetRootPath ¶
func (*DiskCache) GetSizeCap ¶
func (*DiskCache) GetTotalEntries ¶
func (*DiskCache) GetTotalEntrySize ¶
type DiskCacheEntry ¶
type DiskCacheEntry struct { Key string Group string Size int CreationTime time.Time FilePath string }
func NewDiskCacheEntry ¶
func (*DiskCacheEntry) GetCreationTime ¶
func (entry *DiskCacheEntry) GetCreationTime() time.Time
func (*DiskCacheEntry) GetData ¶
func (entry *DiskCacheEntry) GetData() ([]byte, error)
func (*DiskCacheEntry) GetGroup ¶ added in v0.1.1
func (entry *DiskCacheEntry) GetGroup() string
func (*DiskCacheEntry) GetKey ¶
func (entry *DiskCacheEntry) GetKey() string
func (*DiskCacheEntry) GetSize ¶
func (entry *DiskCacheEntry) GetSize() int
type RAMBuffer ¶
type RAMBuffer struct { SizeCap int64 EntryGroupMap map[string]*RAMBufferEntryGroup Mutex *sync.Mutex Condition *sync.Cond }
RAMBuffer
func NewRAMBuffer ¶
func (*RAMBuffer) CreateEntryGroup ¶
func (buffer *RAMBuffer) CreateEntryGroup(name string) BufferEntryGroup
func (*RAMBuffer) DeleteAllEntryGroups ¶
func (buffer *RAMBuffer) DeleteAllEntryGroups()
func (*RAMBuffer) DeleteEntryGroup ¶
func (*RAMBuffer) GetAvailableSize ¶
func (*RAMBuffer) GetEntryGroup ¶
func (buffer *RAMBuffer) GetEntryGroup(name string) BufferEntryGroup
func (*RAMBuffer) GetEntryGroups ¶
func (buffer *RAMBuffer) GetEntryGroups() []BufferEntryGroup
func (*RAMBuffer) GetSizeCap ¶
func (*RAMBuffer) GetTotalEntries ¶
func (*RAMBuffer) GetTotalEntrySize ¶
func (*RAMBuffer) WaitForSpace ¶
type RAMBufferEntry ¶
type RAMBufferEntry struct { Key string Size int AccessCount int CreationTime time.Time Data []byte Mutex sync.Mutex }
func NewRAMBufferEntry ¶
func NewRAMBufferEntry(key string, data []byte) *RAMBufferEntry
func (*RAMBufferEntry) GetAccessCount ¶
func (entry *RAMBufferEntry) GetAccessCount() int
func (*RAMBufferEntry) GetCreationTime ¶
func (entry *RAMBufferEntry) GetCreationTime() time.Time
func (*RAMBufferEntry) GetData ¶
func (entry *RAMBufferEntry) GetData() []byte
func (*RAMBufferEntry) GetKey ¶
func (entry *RAMBufferEntry) GetKey() string
func (*RAMBufferEntry) GetSize ¶
func (entry *RAMBufferEntry) GetSize() int
type RAMBufferEntryGroup ¶
type RAMBufferEntryGroup struct { Buffer *RAMBuffer Name string Size int64 EntryMap map[string]*RAMBufferEntry Mutex sync.Mutex }
RAMBufferEntryGroup defines a group
func NewRAMBufferEntryGroup ¶
func NewRAMBufferEntryGroup(buffer *RAMBuffer, name string) *RAMBufferEntryGroup
func (*RAMBufferEntryGroup) CreateEntry ¶
func (group *RAMBufferEntryGroup) CreateEntry(key string, data []byte) (BufferEntry, error)
func (*RAMBufferEntryGroup) DeleteAllEntries ¶
func (group *RAMBufferEntryGroup) DeleteAllEntries()
func (*RAMBufferEntryGroup) DeleteEntry ¶
func (group *RAMBufferEntryGroup) DeleteEntry(key string)
func (*RAMBufferEntryGroup) GetBuffer ¶
func (group *RAMBufferEntryGroup) GetBuffer() Buffer
func (*RAMBufferEntryGroup) GetEntry ¶
func (group *RAMBufferEntryGroup) GetEntry(key string) BufferEntry
func (*RAMBufferEntryGroup) GetEntryCount ¶
func (group *RAMBufferEntryGroup) GetEntryCount() int
func (*RAMBufferEntryGroup) GetEntryKeys ¶
func (group *RAMBufferEntryGroup) GetEntryKeys() []string
func (*RAMBufferEntryGroup) GetName ¶
func (group *RAMBufferEntryGroup) GetName() string
func (*RAMBufferEntryGroup) GetSize ¶
func (group *RAMBufferEntryGroup) GetSize() int64
func (*RAMBufferEntryGroup) PopEntry ¶
func (group *RAMBufferEntryGroup) PopEntry(key string) BufferEntry
type Reader ¶
type Reader interface { ReadAt(offset int64, length int) ([]byte, error) GetPendingError() error Release() }
Reader helps data read
type SyncReader ¶
type SyncReader struct { Path string IRODSFileHandle *irodsfs.FileHandle FileHandleLock *sync.Mutex }
SyncReader helps sync read
func NewSyncReader ¶
func NewSyncReader(path string, fileHandle *irodsfs.FileHandle, fileHandleLock *sync.Mutex) *SyncReader
NewSyncReader create a new SyncReader
func (*SyncReader) GetPendingError ¶
func (reader *SyncReader) GetPendingError() error
type SyncWriter ¶
type SyncWriter struct { Path string IRODSFileHandle *irodsfs.FileHandle FileHandleLock *sync.Mutex }
SyncWriter helps sync write
func NewSyncWriter ¶
func NewSyncWriter(path string, fileHandle *irodsfs.FileHandle, fileHandleLock *sync.Mutex) *SyncWriter
NewSyncWriter create a new SyncWriter
func (*SyncWriter) Flush ¶
func (writer *SyncWriter) Flush() error
func (*SyncWriter) GetPendingError ¶
func (writer *SyncWriter) GetPendingError() error
Click to show internal directories.
Click to hide internal directories.