146 Commits

Author SHA1 Message Date
Benjamin Wang
d19b7c8fba test: fix 'loadMetaPage' always read the first meta page
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-26 15:00:45 +08:00
Benjamin Wang
c2efe9f0d8 cmd: split 'surgery freelist' into separate files
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-16 16:51:06 +08:00
Benjamin Wang
065a3e1953 cmd: mark some flags of surgery commands as required
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-16 14:13:15 +08:00
Benjamin Wang
8974e912fb cmd: check source db path for all surgery commands
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-09 08:50:17 +08:00
Benjamin Wang
383d990794 cmd: wrap 'surgery clear-page' options into surgeryClearPageOptions
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-09 08:38:56 +08:00
Benjamin Wang
6e12e088d4 cmd: migrate 'surgery copy-page' command to cobra style command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-09 08:27:04 +08:00
Marek Siarkowicz
f483d799ae Decompose command options
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-05-08 14:18:24 +02:00
Benjamin Wang
81eb691a8e cmd: get all surgery options included in a struct surgeryOptions
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-06 07:06:12 +08:00
Benjamin Wang
b027e485ce cmd: print a warning to abandon the freelist if present in 'surgery copy-page' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-06 06:25:23 +08:00
Benjamin Wang
e618196323 cmd: migrate 'surgery copy-page' command to cobra style comamnd
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-05-05 20:50:14 +08:00
Benjamin Wang
8164464f8e migrate 'surgery revert-meta-page' to cobra style command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-27 04:04:32 +08:00
Benjamin Wang
690c9c9a51 test: add test cases to cover some old commmands
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-26 20:24:39 +08:00
Benjamin Wang
ba26255141 cmd: add 'surgery freelist rebuild' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-15 05:39:35 +08:00
Josh Rickmar
7a957f94b2 Introduce errors package and restore API compatibility
This moves the error variables that had been moved to the
internal/common package during recent refactoring to a non-internal
errors package, once again allowing consumers to test for particular
error conditions.

To preserve API compatibility with bbolt v1.3, these error variables
are also redefined in the bbolt package, with deprecation notice to
migrate to bbolt/errors.

Signed-off-by: Josh Rickmar <jrick@zettaport.com>
2023-04-06 13:26:30 +00:00
Benjamin Wang
1776766466 move copyFile into internal/common/util.go
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-05 14:08:17 +08:00
Benjamin Wang
dc50a72933 cmd: add 'surgery abandon-freelist' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-31 07:04:05 +08:00
Benjamin Wang
74e26bee77 update command 'surgery clear-page-elements' not to automatically abandon freelist
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 09:33:59 +08:00
Benjamin Wang
87eed0ac93 add test case to verify 'surgery-clear-elements' on overflow page
Also resolved a bug related to overflow page.

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 07:42:01 +08:00
Benjamin Wang
a0e5e3a1dd test: add more subcases to verify 'surgery-clear-elements' on branch page
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 07:42:01 +08:00
Benjamin Wang
8902ef92e9 resolve some minor review comments
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 07:42:01 +08:00
Benjamin Wang
a9a9356ea4 test: verify the left elements after clear-page-elements operation should have the same content
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 07:42:01 +08:00
Benjamin Wang
95576a4f10 CMD: add test cases for the 'surgery clear-page-elements' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 07:42:01 +08:00
Benjamin Wang
3c3da590b1 CMD: add cobra style 'surgery clear-page-elements' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-25 07:42:01 +08:00
Cenk Alti
b5a219fd29 Fix progress reporting in bench cmd
Signed-off-by: Cenk Alti <alticen@amazon.com>
2023-03-23 21:37:19 -04:00
Thomas Jungblut
3914515d4f Add test for the bench command
Also making sure the stdio buffers are thread safe.

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2023-03-17 16:36:13 +01:00
Thomas Jungblut
44d4ec5416 fixing small bench errors
BenchResult locking was missing and when the read test was faster than a
second it would fail on a different count than expected.

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2023-03-17 12:15:02 +01:00
Benjamin Wang
5c7326c1dd
Merge pull request #427 from ahrtr/update_check_20230315
bbolt: remove `CheckWithOptions` and add variadic parameter options to method `Check`
2023-03-15 17:10:59 +08:00
Benjamin Wang
f7d0ed5185 bbolt: remove CheckWithOptions and add variadic parameter options to method Check
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-15 15:19:28 +08:00
Benjamin Wang
62f5a3f291 cmd: move function copyFile into utils.go
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-15 08:45:45 +08:00
zhangsong
ab889e1dfa
display progress during benchmark
Signed-off-by: Cenk Alti <cenkalti@gmail.com>
2023-03-13 23:10:54 -04:00
Benjamin Wang
f68adfee81 CMD: update leafPageElement to return both key and value directly
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-04 04:58:53 +08:00
Benjamin Wang
ea511567eb refactor both bolt and guts_cli based on the common package
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-04 04:22:09 +08:00
Marek Siarkowicz
eb39e4c93e Fix redacted format
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-02-20 06:37:36 +08:00
Benjamin Wang
578b94665b update the usage of surgery command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-02-18 04:43:20 +08:00
missinglink
287049ea83 compact: add cli flags to enable NoSync option
Signed-off-by: missinglink <insomnia@rcpt.at>
2023-02-02 12:16:15 +08:00
Benjamin Wang
35c4569bf9 revert the signature of tx.Check and add tx.CheckWithStringer
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-29 19:53:07 +08:00
Marek Siarkowicz
613ea3dffa Add support for using sha256 sum for obfuscating values
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-01-28 07:08:58 +08:00
Benjamin Wang
834868d65d add 'surgery clear-page' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-20 18:46:07 +08:00
Benjamin Wang
d89daae9d5 add 'surgery copy-page' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-18 08:40:57 +08:00
Benjamin Wang
645d5e9ea9 unexport all bbolt command structs
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-17 15:07:15 +08:00
Benjamin Wang
ff467f2ff5 addresed review comments
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-16 19:08:53 +08:00
Benjamin Wang
8df4afc24b add 'bbolt surgery revert-meta-page' command
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-16 18:32:41 +08:00
Benjamin Wang
376af859cb move all common fields into baseCommand
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-16 14:58:01 +08:00
Piotr Tabor
f16e2522ce Address review comments.
Signed-off-by: Piotr Tabor <ptab@google.com>
2023-01-13 19:14:45 +01:00
Piotr Tabor
0c8d75db1e Recursive checker implementation.
Recursive checker confirms database consistency with respect to b-tree
key order constraints:
  - keys on pages must be sorted
  - keys on children pages are between 2 consecutive keys on parent
branch page).

Signed-off-by: Piotr Tabor <ptab@google.com>
2023-01-13 19:14:45 +01:00
Benjamin Wang
6bc57389f0 add PreLoadFreelist to support loading free pages in readonly mode
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-01-11 18:10:12 +08:00
Piotr Tabor
9f841cc213 Fix goimports and scripts.
Signed-off-by: Piotr Tabor <ptab@google.com>
2023-01-03 19:02:55 +01:00
Piotr Tabor
8961219de8 Execution of ./scripts/fix.sh
Signed-off-by: Piotr Tabor <ptab@google.com>
2022-12-30 12:59:02 +01:00
Piotr Tabor
fc83b20869 Factor out low-lever access to pages out of CLI into internal/guts.
Long-term guts_cli should get replaced by the main code from bbolt main code.

Signed-off-by: Piotr Tabor <ptab@google.com>
2022-12-28 16:53:03 +01:00
Piotr Tabor
1f46d6c7e7 cmd/main_test.go is using btesting as well.
Signed-off-by: Piotr Tabor <ptab@google.com>
2022-12-28 15:18:46 +01:00