Merge pull request #5167 from dolthub/daylon/extend-branch-db

Removed branch control database file size limitation
This commit is contained in:
Daylon Wilkins
2023-01-19 06:22:58 -08:00
committed by GitHub
4 changed files with 16 additions and 13 deletions

View File

@@ -364,10 +364,10 @@ func (tbl *Access) insert(database string, branch string, user string, host stri
// Serialize returns the offset for the AccessValue written to the given builder.
func (val *AccessValue) Serialize(b *flatbuffers.Builder) flatbuffers.UOffsetT {
database := b.CreateString(val.Database)
branch := b.CreateString(val.Branch)
user := b.CreateString(val.User)
host := b.CreateString(val.Host)
database := b.CreateSharedString(val.Database)
branch := b.CreateSharedString(val.Branch)
user := b.CreateSharedString(val.User)
host := b.CreateSharedString(val.Host)
serial.BranchControlAccessValueStart(b)
serial.BranchControlAccessValueAddDatabase(b, database)

View File

@@ -203,10 +203,10 @@ func (binlog *Binlog) Rows() []BinlogRow {
// Serialize returns the offset for the BinlogRow written to the given builder.
func (row *BinlogRow) Serialize(b *flatbuffers.Builder) flatbuffers.UOffsetT {
database := b.CreateString(row.Database)
branch := b.CreateString(row.Branch)
user := b.CreateString(row.User)
host := b.CreateString(row.Host)
database := b.CreateSharedString(row.Database)
branch := b.CreateSharedString(row.Branch)
user := b.CreateSharedString(row.User)
host := b.CreateSharedString(row.Host)
serial.BranchControlBinlogRowStart(b)
serial.BranchControlBinlogRowAddIsInsert(b, row.IsInsert)

View File

@@ -158,7 +158,10 @@ func SaveData(ctx context.Context) error {
serial.BranchControlAddAccessTbl(b, accessOffset)
serial.BranchControlAddNamespaceTbl(b, namespaceOffset)
root := serial.BranchControlEnd(b)
data := serial.FinishMessage(b, root, []byte(serial.BranchControlFileID))
// serial.FinishMessage() limits files to 2^24 bytes, so this works around it while maintaining read compatibility
b.Prep(1, flatbuffers.SizeInt32+4+serial.MessagePrefixSz)
b.FinishWithFileIdentifier(root, []byte(serial.BranchControlFileID))
data := b.Bytes[b.Head()-serial.MessagePrefixSz:]
return os.WriteFile(controller.branchControlFilePath, data, 0777)
}

View File

@@ -316,10 +316,10 @@ func (tbl *Namespace) filterHosts(filters []uint32) []MatchExpression {
// Serialize returns the offset for the NamespaceValue written to the given builder.
func (val *NamespaceValue) Serialize(b *flatbuffers.Builder) flatbuffers.UOffsetT {
database := b.CreateString(val.Database)
branch := b.CreateString(val.Branch)
user := b.CreateString(val.User)
host := b.CreateString(val.Host)
database := b.CreateSharedString(val.Database)
branch := b.CreateSharedString(val.Branch)
user := b.CreateSharedString(val.User)
host := b.CreateSharedString(val.Host)
serial.BranchControlNamespaceValueStart(b)
serial.BranchControlNamespaceValueAddDatabase(b, database)