Commit Graph

67 Commits

Author SHA1 Message Date
Ido Savion edbeb9e03c Shrink: fix renaming on Windows
Changing the behavior to support buntdb across different operating systems
as the following crash encountered on windows while renaming in shrink:

```
panic: buntdb: rename mydb.tmp mydb: Access is denied
```
2024-09-04 13:47:00 +03:00
tidwall e0e630f20f Ensure expired items do not load
See #112
2024-05-16 20:04:06 -07:00
tidwall 4ac2e321b1 Use absolute expiration in peristed db file
This commit ensures that the absolute unix expiration timestamp
is stored for applicable records in the persisted db file.

Previously the relative seconds was stored.

fixes #85
2023-04-13 07:30:20 -07:00
tidwall a54244d6db Added wrapped error
This commit wraps the errors that could, under rare a occasion,
cause a panic. Allowing for a graceful recover by select
conditions.

Please see #82 for more info
2022-04-27 17:05:38 -07:00
tidwall f7014795e8 Minor update and new comments 2021-08-01 09:54:09 -07:00
tidwall 04bc915abd Estimate last oof size on open
addresses #77
2021-07-31 19:29:49 -07:00
tidwall 0bf8239554 Share time.Now calls 2021-07-31 09:17:41 -07:00
tidwall d4c361c59c Use btree with non-concurrent mode
Minor optimization
2021-07-31 07:36:38 -07:00
tidwall b1acd463ca Minimize new allocations
This commit makes the insert method reuse a variable to minimize
new allocations.
2021-06-17 07:27:04 -07:00
Mike Haller 97feb53ded Index pattern not always honored
When creating an index with CreateIndex, a pattern is used to specify
the matching keys that should be stored in the index. It is therefore
unexpected that items that do not match the pattern will be presented to
the less function that is also supplied on CreateIndex.  This change
corrects that problem by applying the pattern in two paths previously
not considered:

1. When an item is replaced in the database.
2. When an item is deleted from the database.
2021-06-15 17:26:56 -06:00
tidwall b6a74904ab Fixes issue where a partial write can corrupt the database 2021-04-01 10:23:25 -07:00
tidwall a41516f180 Fix reload calculation incorrect 2021-03-30 15:36:40 -07:00
tidwall d7ed6a747a Ignore incomplete tail commands and allow for null padding
This commit allows for BuntDB to load data files that were
previously considered invalid or corrupted.

Now when the data file ends with an incomplete command, the data
will be truncated at the end of the previously success command.
Also when a null control character is encountered instead of an
asterix, which indicates the start of a command, the null is
ignored and the cursor moves to the next byte. This allows for
null padding at the head and the tail.

Fixes #71
https://github.com/tidwall/tile38/issues/600
2021-03-29 14:06:22 -07:00
tidwall 62d43edfcf Updated rtree dependency 2021-02-07 17:51:10 -07:00
sora233 6363a756c0 fix set transaction leak 2021-01-10 21:36:17 +08:00
tidwall 07278140d9 Fixed expires out of range
This commit fixes an issue where persisting a value with a
negative expires to the AOF causes the database to not load.

fixes #68
2020-12-10 08:54:47 -07:00
tidwall df8cd8d232 Updated Btree implementation 2020-10-27 05:44:48 -07:00
Petr Mikusek 3c8dd9070b Fix typos 2020-01-26 18:50:22 +01:00
tidwall eeb4b0a11d Remove deprecated warning 2019-11-15 13:27:37 -07:00
Josh Baker 75d89283d5 Added comment about Nearby dist param
closes #31
2018-04-30 04:50:00 -07:00
dc0d 9962a94df0 adding OnExpiredSync callback 2018-03-04 12:00:42 +03:30
Josh Baker 0a064e7588 Nearby operation (kNN) 2018-01-12 16:38:11 -07:00
Josh Baker b67b1b8c16 Added AscendEqual and DescendEqual
AscendEqual and DescendEqual return only the items that equal
a specified value.

Closes #26
2017-08-24 07:40:00 -07:00
Josh Baker 74dc10171b exported Begin/Commit/Rollback, fixes #16 2016-12-02 09:37:38 -07:00
Josh Baker 27d3577d74 added case-insensitive matching for indexes, fixes #14 2016-10-14 10:29:34 -07:00
Josh Baker 68706df6a5 go lint/vet fixes 2016-10-06 11:32:22 -07:00
Josh Baker be5b9f115e added grect lib 2016-10-06 07:16:32 -07:00
Josh Baker 6dbb18799b updated buffer writing 2016-10-02 07:14:14 -07:00
Josh Baker f6366c8b4b custom expired config event 2016-09-30 16:59:57 -07:00
Josh Baker 454b94d04a transactional indexes 2016-09-29 15:54:51 -07:00
Josh Baker 6cd540fffb added GetLess and GetRect tx functions 2016-09-05 14:29:50 -07:00
Josh Baker 301cfc2ead more comments 2016-09-03 12:25:30 -07:00
Josh Baker b559e28540 added DeleteAll function 2016-09-02 19:19:17 -07:00
Josh Baker d570a6fba9 Return error when mutating during iteration. Fixes #12 2016-09-02 10:05:14 -07:00
Josh Baker 2d071d5cbe replace indexes 2016-09-02 06:19:50 -07:00
Josh Baker 7cc7ccf899 key pattern iteration 2016-08-30 11:58:39 -07:00
Josh Baker 74368e4f86 import match package 2016-08-30 07:21:50 -07:00
Josh Baker c5d75aaa71 unicode wildcard patterns 2016-08-29 18:45:29 -07:00
Josh Baker 9f0b48341d Load and Save for :memory: databases 2016-08-28 17:35:46 -07:00
Josh Baker 7fb2c48afb track ttl between database reopens, fixes #11 2016-08-23 08:09:19 -07:00
Josh Baker 93cc8f3fcb load performance boost 2016-08-23 07:23:02 -07:00
Josh Baker 4b91c891c4 removed iterator type 2016-08-19 12:03:20 -07:00
Josh Baker 066fbb7901 descending indexes 2016-08-19 11:56:43 -07:00
Josh Baker 18e872e092 replaced bufferedwriter with bytes.buffer 2016-08-19 10:06:03 -07:00
Josh Baker 9301f51db3 fixed set return value 2016-08-18 13:21:46 -07:00
Josh Baker 1daaa16172 multi value indexes 2016-08-18 09:08:30 -07:00
Josh Baker d8c81d562f seek to end of file 2016-08-14 08:25:50 -07:00
Josh Baker fe766585d1 fix large buffers 2016-08-14 08:23:04 -07:00
Josh Baker 4c43f6a231 disk load optimizations
reuse read buffer
copy minimal string size
2016-08-13 07:31:43 -07:00
Josh Baker 3e58c89ec6 increased default btree degrees 2016-08-12 17:37:29 -07:00