初步实验使用KV数据库(pebble)存储缓存索引

This commit is contained in:
刘祥超
2024-03-24 11:25:35 +08:00
parent 22b4a4afbc
commit 03e8394bff
36 changed files with 4564 additions and 21 deletions

View File

@@ -0,0 +1,41 @@
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
package kvstore
import (
"errors"
)
func (this *Table[T]) AddField(fieldName string) error {
if !IsValidName(fieldName) {
return errors.New("invalid field name '" + fieldName + "'")
}
// check existence
for _, field := range this.fieldNames {
if field == fieldName {
return nil
}
}
this.fieldNames = append(this.fieldNames, fieldName)
return nil
}
func (this *Table[T]) AddFields(fieldName ...string) error {
for _, subFieldName := range fieldName {
err := this.AddField(subFieldName)
if err != nil {
return err
}
}
return nil
}
func (this *Table[T]) DropField(fieldName string) error {
this.mu.Lock()
defer this.mu.Unlock()
var start = this.FieldKey(fieldName + "$")
return this.db.store.rawDB.DeleteRange(start, append(start, 0xFF), DefaultWriteOptions)
}