Я использую Go для хранения ключей / значений в базе данных levelDB.Пока я вставляю новый ключ / значения в LevelDB, я проверил дисковое пространство, используемое папкой leveldbfile, оно увеличивается, а затем уменьшается циклами.
➜ loomio git:(master) ✗ du -h leveldbfile
7.4M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
1.2M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
8.3M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
8.4M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
6.0M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
3.6M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
11M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
10M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
3.7M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
1.2M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
8.3M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
6.0M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
3.7M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
1.4M leveldbfile
➜ loomio git:(master) ✗ du -h leveldbfile
8.5M leveldbfile
Код для хранения электронной почты, пароль для пользователей:
func AddUser(dbSession config.Database, user *models.User) (string, error) {
user_id := uuid.NewV4()
user.UserID = user_id.String()
ok := RetreiveSecondaryIndex(dbSession, user.Email)
if ok {
log.Println("This is the user id found in secondary index", ok)
return "", errors.New("The email is already registered")
}
var network bytes.Buffer // Stand-in for a network connection
enc := gob.NewEncoder(&network)
err := enc.Encode(user)
if err != nil {
log.Println("Error in encoding gob")
return "", err
}
err = dbSession.DBSession.Put([]byte(user.UserID), network.Bytes(), nil)
//dberr := userCollection.Insert(user)
fmt.Println(err)
if err != nil {
log.Println(err)
return "", err
}
AddSecondaryIndex(dbSession, user.Username, user.Email)
return user.UserID, nil
}
Почему LevelDB перенастраивает свое дисковое пространство и на каком основании?