mirror of
https://github.com/luxfi/zapdb.git
synced 2026-10-30 15:12:20 +00:00
As explained in https://discuss.dgraph.io/t/go-modules-on-badger-and-dgraph/4662, Go Modules force an import path rename that currently breaks support for most other dependency management systems, including dep. It seems an effort is being made to add support for this import path renaming by patching the go tool itself, but until the community hasn't settled and Go Modules is an easier option to adopt, we are simply not supporting them. For those willing to use badger v2 from Go modules it is still very simple, you might notice that once you set the version to be v2.0.0 a +incompatible will be added to it indicating the dependency has not opted-in into Go Modules. That's normal and not to be a concern.
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
/*
|
|
* Copyright 2018 Dgraph Labs, Inc. and Contributors
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"github.com/dgraph-io/badger"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var flattenCmd = &cobra.Command{
|
|
Use: "flatten",
|
|
Short: "Flatten the LSM tree.",
|
|
Long: `
|
|
This command would compact all the LSM tables into one level.
|
|
`,
|
|
RunE: flatten,
|
|
}
|
|
|
|
var numWorkers int
|
|
|
|
func init() {
|
|
RootCmd.AddCommand(flattenCmd)
|
|
flattenCmd.Flags().IntVarP(&numWorkers, "num-workers", "w", 1,
|
|
"Number of concurrent compactors to run. More compactors would use more"+
|
|
" server resources to potentially achieve faster compactions.")
|
|
}
|
|
|
|
func flatten(cmd *cobra.Command, args []string) error {
|
|
db, err := badger.Open(badger.DefaultOptions(sstDir).
|
|
WithValueDir(vlogDir).
|
|
WithTruncate(truncate).
|
|
WithNumCompactors(0))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer db.Close()
|
|
|
|
return db.Flatten(numWorkers)
|
|
}
|