github.com/nutsdb/nutsdb@v1.0.4/CHANGELOG.md (about) 1 ## v0.1.0 (2019-2-28) 2 * [New feature] Support Put/Get/Delete Operations 3 * [New feature] Support TTL 4 * [New feature] Support Range/Prefix Scanning 5 * [New feature] Support Merge Operation 6 * [New feature] Support BackUp Operation 7 * [New feature] Support Bucket 8 9 ## v0.2.0 (2019-3-05) 10 * [New feature] Support list 11 * [New feature] Support set 12 * [New feature] Support sorted set 13 * [Bug Fix] Fix error when batch put operations 14 * [Change] Update README && CHANGELOG 15 16 ## v0.3.0(2019-3-11) 17 * [New feature] Support persistence 18 * [Bug Fix] Fix when fn is nil 19 * [Change] Discard mmap package 20 * [Change] Discard EntryIdxMode options: HintAndRAMIdxMode and HintAndMemoryMapIdxMode 21 * [Change] Add new EntryIdxMode options: HintKeyValAndRAMIdxMode and HintKeyAndRAMIdxMode 22 23 ## v0.4.0(2019-3-15) 24 * [New feature] Support mmap loading file 25 * [Bug Fix] Fix tx bug when a tx commits 26 * [Change] Add rwmanager interface 27 * [Change] Add new options: RWMode, SyncEnable and StartFileLoadingMode 28 * [Change] Clean up some codes 29 * [Change] Update README && CHANGELOG 30 31 ## v0.5.0 (2019-11-28) 32 * [New feature] Support EntryIdxMode: HintBPTSparseIdxMode 33 * [New feature] Support GetAll() function for all models 34 * [Bug Fix] Fix error too many open files in system 35 * [Bug Fix] Fix constant 2147483648 overflows int 36 * [Bug Fix] Fix when the number of files waiting to be merged not at least 2 37 * [Bug Fix] Fix data pollution when executing the merge method 38 * [Change] Modify Records type && Entries type 39 * [Change] Refactor for tx Commit function 40 * [Change] Update Iterating over keys about README 41 * [Change] Fix some grammatical mistakes about README 42 * [Change] Rename variable for func ReadBPTreeRootIdxAt 43 * [Change] Add issue templates 44 * [Change] Update README && CHANGELOG 45 46 ## v0.6.0 (2021-03-21) 47 * [New Feature] Add PrefixSearchScan() with regexp search ability(#53) 48 * [New Feature] Allow put with timestamp (#88 ) 49 * [Bug Fix] Fix ZMembers bug (#58 ) 50 * [Bug Fix] Repeated key merge fix (#83 ) 51 * [Bug Fix] The LRem implementation is not consistent with the description (#92 ) 52 * [Refactor] Improve buildBPTreeRootIdxes file reading (#67) 53 * [Docs] Update README && CHANGELOG 54 55 ## v0.7.0 (2022-03-06) 56 * [New Feature] support im memory db (#109) 57 * [New Feature] Add backup with tar+gz (#111) 58 * [New Feature] Add IterateBuckets() and DeleteBucket() 59 * [Refactor] refactor error (#112) 60 * [Bug Fix] Windows The process cannot access the file because it is being used by another process. (#110) 61 * [Docs] Update README && CHANGELOG 62 63 ## v0.7.1 (2022-03-06) 64 * [Bug Fix] Delete buckets without persistence.(#115) 65 66 ## v0.8.0 (2022-04-01) 67 * [Perf] optimize tx commit for batch write (#132) 68 * [Bug Fix] fix: open file by variable (#118) 69 * [Bug Fix] fix close file before error check(#122) 70 * [Bug Fix] fix rwManager.Close order(#133) 71 * [Bug Fix] fix last entry status error (#134) 72 * [Bug Fix] fix: read ErrIndexOutOfBound err 73 * [CI] add unit-test action (#120) 74 * [Chore] add constant ErrKeyNotFound and ErrKeyNotExist (#125) 75 * [Chore] chore: remove unnecessary conversion (#126) 76 * [Chore] chore(ds/list): replace for-loop with append (#127) 77 * [Chore] add push check for lint, typo (#131) 78 * [Style] style: fix typo and ineffectual assignment (#130) 79 80 ## v0.9.0 (2022-06-17) 81 * [Bug Fix] close file before error check &remove redundant judgments (#137) @xujiajun 82 * [Bug Fix] update golang.org/x/sys to support go1.18 build (#139)@ag9920 83 * [Bug Fix] when use merge, error: The process cannot access the file because it is being used by another process (#166) @xujiajun 84 * [Bug Fix] fix code example. (#143) @gphper 85 * [Bug Fix] merge error after delete bucket (#153) @xujiajun 86 * [Perf] add fd cache(#164) @elliotchenzichang 87 * [Perf] optimize sadd function inserting duplicate data leads to datafile growth (#146) @gphper 88 * [Refactor] rewrite managed to support panic rollback (#136)@ag9920 89 * [Refactor] errors: optimize error management (#163) @xpzouying 90 * [Test] Update testcase: use testify test tools (#138) @xpzouying 91 * [Test] change list and set test with table driven test and testify (#145) @bigdaronlee163 92 * [Test] refactor db_test for string use testify (#147) @Rand01ph 93 * [Test] add [bucket_meat/entry] unit test (#148) @gphper 94 * [Test] update bptree unittest (#149) @xpzouying 95 * [Test] Update tx bptree testcase (#155) @xpzouying 96 * [Test] complete zset tests with testify (#151) @bigdaronlee163 97 * [Test] optimization tx_bucket_test and bucket_meta_test (#156) @gphper 98 * [Test] test:complete tx_zset tests with testify (#162) @bigdaronlee163 99 * [Chore] remove unused member (#157) @xpzouying 100 * [Style] format code comments etc. (#140) @moyrne 101 102 ## v0.10.0(2022-08-13) 103 * [Bug Fix]List data structure with count parameter negative, lack of boundary judgment (#183) @andrewhzy 104 * [New Feature] add LRemByIndex (#174) @Nailcui 105 * [New Feature] add LKeys SKeys ZKeys API (#175) @Nailcui 106 * [New Feature] add Iterator API (HintKeyAndRAMIdxMode and HintKeyValAndRAMIdxMode)(#191) @zeina1i 107 * [Refactor] graceful options parameters (#185) @Nailcui 108 * [Test] Add rwmanager fileio test (#170) @zeina1i 109 * [Test] Improve code coverage about list (#183) @andrewhzy 110 * [Test] Test coverage improvement for inmemory (#187) @andrewhzy 111 * [Docs] A few corrections in ReadME file (#171) @kwakubiney 112 113 ## v0.11.0(2022-10-31) 114 * [Bug Fix] In BPTSparse when combination of bucket and key is repeated (#207) @ShiMaRing 115 * [Bug Fix] MInInt function compatible with 32-bit operating systems (#208) @xujiajun 116 * [Bug Fix] Index EOF issue#213 (#214) @xujiajun 117 * [Perf] Optimize concurrent read performance (#205) @elliotchenzichang 118 * [Perf] Use biobuf optimaze startspeed (#212) @elliotchenzichang 119 * [New Feature] Support reverse iterator (EntryIdxMode: HintKeyAndRAMIdxMode and HintKeyValAndRAMIdxMode) (#202) @zeina1i 120 * [New Feature] Add support for IterateBuckets regularized matching (#198) @Nailcui 121 * [New Feature] list all key of bucket in memory mode (#206) @Nailcui 122 * [New Feature] Add PrefixScan in memory mode (#211) @Nailcui 123 * [Refactor] make default options to be created in a factory method (#196) @elliotchenzichang 124 * [Refactor] use size constant value (#204) @elliotchenzichang 125 * [Chore] add iterator example (#209) @xujiajun 126 * [Chore] remove option StartFileLoadingMode (#218) @xujiajun 127 128 ## v0.11.1(2022-11-13) 129 * [Bug Fix] avoid nil of it.current (#233) @mindon 130 * [Bug Fix] it.current may be nil when options.Reverse is false (#234) @xujiajun 131 * [Refactor] changing the lock to be one of property of the structure can make the code more readable.(#228) @elliotchenzichang 132 * [New Feature] add buffer size of recovery reader as param (#230) @elliotchenzichang 133 134 ## v0.12.0(2023-02-26) 135 * [New Feature] feat:support ttl function for list (feat:support ttl function for list #263) @xuyukeviki 136 * [Bug Fix] fix: panic: db.buildIndexes error: unexpected EOF issue (panic: db.buildIndexes error: unexpected EOF #244) @xujiajun 137 * [Bug Fix] issue NewIterator with Reverse=true stop at 28 records #250 :: Andrew :: bug fixed (issue #250 :: Andrew :: bug fixed #266) @andrewhzy 138 * [Bug Fix] Fix issues LIST "start or end error" after deleting the last item from list #280: LIST "start or end error" after deleting the last item Fix issues #280: LIST "start or end error" after deleting the last item #282 @ShawnHXH 139 * [Performance] Use file recovery in merge (Use file recovery in merge #259) @elliotchenzichang 140 * [Performance] perf(read): reduce one read I/O perf(read): reduce one read I/O #271 @lugosix 141 * [Refactor] add options function of BufferSizeOfRecovery (add options function of BufferSizeOfRecovery #236) @elliotchenzichang 142 * [Refactor] add fd release logic to file recovery reader (add fd release logic to file recovery reader #242 ) @elliotchenzichang 143 * [Refactor] rebuild parse meta func (rebuild parse meta func #243 ) @elliotchenzichang 144 * [Refactor] change the xujiajun/nutsdb -> nutsdb/nutsdb change the xujiajun/nutsdb -> nutsdb/nutsdb #281 @elliotchenzichang 145 * [Refactor] Update doc Update doc #285 @elliotchenzichang 146 * [Refactor] Fix verify logic Fix verify logic #286 @elliotchenzichang 147 * [Refactor] fix: issue (Error description problem about IsPrefixSearchScan #288) fix: issue (#288) #289 @CodePrometheus 148 * [Refactor] docs: fix typo( docs: fix typo #252) @icpd 149 * [Refactor] fix a typo in code fix a typo #291 @elliotchenzichang 150 * [UnitTest] Adding a test of readEntry() and refacting readEntry() (Adding a test of readEntry() and refacting readEntry() #237 ) @wangxuanni 151 * [UnitTest] test coverage improvement (fix: issue (#213) #214 ) @andrewhzy 152 * [UnitTest] adding a test for IsKeyEmpty func in github.com/xujiajun/nutsdb/errors.go:26 (adding a test for IsKeyEmpty func in github.com/xujiajun/nutsdb/errors.go:26: #265) @lyr-2000 153 * [UnitTest] Add test for SetKeyPosMap in nutsdb/bptree.go (Add test for SetKeyPosMap in nutsdb/bptree.go #268) @ShawnHXH 154 * [UnitTest] Add test for ToBinary in bptree.go Add test for ToBinary in bptree.go #272 @ShawnHXH 155 * [UnitTest] Add test for bucket in errors.go Add test for bucket in errors.go #278 @ShawnHXH 156 * [UnitTest] add test for rwmanger_mmap.Release add test for rwmanger_mmap.Release #283 @vegetabledogdog 157 * [UnitTest] test: add tests for IsDBClosed, IsPrefixScan and IsPrefixSearchScan test: add tests for IsDBClosed, IsPrefixScan and IsPrefixSearchScan #290 @CodePrometheus 158 159 ## v0.12.1(2023-05-19) 160 * [Bug Fix] fix delete non exist will not raise error bug by @elliotchenzichang in #331 161 * [Bug Fix] issue #306 - added a MAX_SIZE const that fits 32 and 64bit arch by @hivenet-philippe in #308 162 * [New Feature] add GetListTTL by @wangxuanni in #316 163 * [Refactor] delete a repeat error validation logic by @elliotchenzichang in #324 164 * [Refactor] make bucket value as a property in entry by @elliotchenzichang in #323 165 * [Refactor] move crc property into meta struct by @elliotchenzichang in #325 166 * [Refactor] delete the position property of entry struct by @elliotchenzichang in #326 167 * [Refactor] Refactor-actor method isFilterEntry by @elliotchenzichang in #327 168 * [Refactor] add function return the status of DB by @elliotchenzichang in #329 169 * [Refactor] add status management by @elliotchenzichang in #330 170 * [Refactor] rebuild the status management code by @elliotchenzichang in #332 171 * [Refactor] delete the param of writelen by @elliotchenzichang in #333 172 * [Refactor] Refactor entry length check by @elliotchenzichang in #334 173 * [Test] Add test for PutWithTimestamp in tx.go by @rayz in #307 174 * [Docs] docs(readme): format code by @rfyiamcool in #319 175 176 ## v0.12.2(2023-05-21) 177 * [Bug Fix] fix ignore bucket when db recovering by @elliotchenzichang in #336 178 179 ## v0.12.3(2023-06-23) 180 * [Bug Fix] fix the bucket issue by @elliotchenzichang in #337 181 * [Bug Fix] fix: err desc for ErrWhenBuildListIdx by @xujiajun in #338 182 * [Bug Fix] fix: r.E.Bucket err by @xujiajun in #341 183 184 ## v0.12.4(2023-07-25) 185 * [Bug Fix] fix: remove unnecessary null checks when writing to a list. by @bigboss2063 in #353 186 * [Bug Fix] fix the bug of nil entry by @elliotchenzichang in #377 187 * [Bug Fix] bug fix, add defer function to release lock to avoid deadlock by @elliotchenzichang in #356 188 * [Bug Fix] Fix the bug of nil entry by @elliotchenzichang in #380 189 * [Bug Fix] fix: deadlock caused by error by @lyl156 in #371 190 * [New Feature] feature: make all objects set to nil after the user calls the close f… by @tobehardest in #374 191 * [New Feature] feat: implement file lock by @bigboss2063 in #372 192 * [Refactor] just move the index structure in a rightful space by @elliotchenzichang in #343 193 * [Refactor] fix some issue in go mod config by @elliotchenzichang in #345 194 * [Refactor] rebuild the index module for index struct by @elliotchenzichang in #346 195 * [Refactor] rebuild the add function in list index by @elliotchenzichang in #350 196 * [Refactor] use bytes.Equal instead bytes.Compare by @testwill in #355 197 * [Refactor] rebuild the way to create hint object by @elliotchenzichang in #357 198 * [Refactor] rebuild isFilter function by @elliotchenzichang in #358 199 * [Refactor] rebuild the way to new Entry Object by @elliotchenzichang in #359 200 * [Refactor] add comments in entry file by @elliotchenzichang in #362 201 * [Refactor] rebuilt the way to new Record object by @elliotchenzichang in #365 202 * [Refactor] rebuild part of recovery logic by @elliotchenzichang in #366 203 * [Refactor] refactor: use a const to replace magic string by @bigboss2063 in #376 204 * [Test] Add test WithNodeNum in nutsdb/options.go by @dongzhiwei-git in #361 205 * [Test] test: test WithRWMode by @JingchenZhang in #368 206 * [Test] test: test rw manager mmap by @lyl156 in #363 207 * [Test] add test case for ErrWhenBuildListIdx func in db.go and optimize enqueue func in bptree.go and add test case by @damotiansheng in #370 208 * [Test] test with ReadNode ,WithCleanFdsCacheThreshold,WithMaxFdNumsInCache,WithSyncEnable by @JingchenZhang in #369 209 * [Test] test: rebuild unit tests in db_test.go(issue#374, task 4) by @bigboss2063 in #375 210 * [Chore] chore: remove element in cache on closing fd manager by @lyl156 in #364 211 212 ## v0.12.6(2023-07-26) 213 * [Refactor] refactor: refactoring the initialization way of the MetaData by @bigboss2063 in #381 214 * [Refactor] Small scope refactoring code:move some util func to utils.go from db.go by @damotiansheng in #379 215 216 ## v0.13.0(2023-08-01) 217 * [Bug Fix] fix: fix the bug that allows deletion of a non-existent bucket. by @bigboss2063 in #388 218 * [Perf] pref: remove sync.Pool and prev allocate buffer for small tx by @bigboss2063 in #384 219 * [New Feature] feat: implement automatic merging by @bigboss2063 in #393 220 * [New Feature] feat: add custom comparator by @lyl156 in #389 221 * [New Feature] feat: refactor list data structure by using doubly linked list and support HintKeyAndRAMIdxMode by @bigboss2063 in #390 222 * [Docs] doc: update options doc by @lyl156 in #391 223 * [Docs] doc: add a new option and update the default option by @bigboss2063 in #396 224 * [Chore] chore: add error handler for error occurred during transaction by @lyl156 in #383 225 ## v0.14.0 (2023-9-1) 226 ### Features 227 - feat: make Set support HintKeyAndRAMIdxMode by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/397 228 - add batch write by @damotiansheng in https://github.com/nutsdb/nutsdb/pull/398 229 - fix: fixed the issue where deletion did not actually remove the record from memory. by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/407 230 - feat: make sorted set to support HintKeyAndRAMIdxMode by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/426 231 - pref: refactor index item to save memory usage by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/434 232 - feat: implemented configurable automatic expiration deletion, optional time heap or time wheel by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/435 233 ### BugFix 234 - repair tx.SMembers bug by @damotiansheng in https://github.com/nutsdb/nutsdb/pull/404 235 - fix: fix dead lock during merging by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/417 236 - [bugFix]Add tx data handle logic in recovery by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/418 237 - [bug fix]add skip entry zero error when recovery by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/420 238 - fix: fix the problem that an error occurs when switching between the first and the second mode at startup by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/423 239 - fix: recover panic when executing tx by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/429 240 - fix: fix the problem of allowing delete the non-exist member of a set by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/432 241 - fix: fix the bugs of ttl effective time and IsExpired method by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/437 242 - [bugFix]fix the bug in prase data in an tx by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/441 243 - fix: fix bug in `txZCard` by @G-XD in https://github.com/nutsdb/nutsdb/pull/444 244 - [bugFix]fix the bug in data in tx logic by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/453 245 - fix: merge not allowed when using list type (temporary fix) by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/457 246 ### Other 247 - create dir if not exist by @moyrne in https://github.com/nutsdb/nutsdb/pull/399 248 - optimize parseDataFiles error check by @moyrne in https://github.com/nutsdb/nutsdb/pull/401 249 - [Test] Restart the database using three modes by @RuiHuaLiu2023 in https://github.com/nutsdb/nutsdb/pull/406 250 - chore: update ci.yml by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/409 251 - style: remove useless code by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/411 252 - chore: add change log by @xujiajun in https://github.com/nutsdb/nutsdb/pull/412 253 - ref: use goto refactor recovery logic by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/414 254 - [ref]delete the map db.committedTxIds, it will not needed any more by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/421 255 - [ref]rebuild the recovery logic, and delete the unconfirmedRecordList by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/422 256 - doc: update README.md and add comments for tx_zset.go by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/427 257 - delete getActiveFileWriteOff func by @damotiansheng in https://github.com/nutsdb/nutsdb/pull/428 258 - [ref] rebuild the error handling logic in recovery by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/430 259 - refactor: unified delete bucket in buildNotDSIdxes by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/433 260 - doc: update README.md and README-CN.md by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/436 261 - refactor: use chained calls instead of direct initialization by @bigboss2063 in https://github.com/nutsdb/nutsdb/pull/439 262 - [ref] move the errors in db file to another separated file. by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/440 263 - [refactor] Refactoring commit by @RuiHuaLiu2023 in https://github.com/nutsdb/nutsdb/pull/438 264 - test: refactor `tx_set_test` by @G-XD in https://github.com/nutsdb/nutsdb/pull/445 265 - test: refactor `tx_bucket_test` by @G-XD in https://github.com/nutsdb/nutsdb/pull/446 266 - [ref]move the tx error to separated file by @elliotchenzichang in https://github.com/nutsdb/nutsdb/pull/447 267 - refactor: remove func ErrWhenBuildListIdx by @TremblingV5 in https://github.com/nutsdb/nutsdb/pull/443 268 269 ## v0.14.1 (2023-9-16) 270 271 ### Features 272 273 - add max write records control by [@damotiansheng](https://github.com/damotiansheng) in [#459](https://github.com/nutsdb/nutsdb/pull/459) 274 - feat(doc): organize README.md by [@hanxuanliang](https://github.com/hanxuanliang) in [#461](https://github.com/nutsdb/nutsdb/pull/461) 275 276 ### BugFix 277 278 - fix: deadlock when test failed by [@G-XD](https://github.com/G-XD) in [#464](https://github.com/nutsdb/nutsdb/pull/464) 279 - fix: fix the bug of ttl when restart by [@bigboss2063](https://github.com/bigboss2063) in [#466](https://github.com/nutsdb/nutsdb/pull/466) 280 281 ### Other 282 283 - refactor: Remove the 3rd mode by [@bigboss2063](https://github.com/bigboss2063) in [#456](https://github.com/nutsdb/nutsdb/pull/456) 284 - style: reduce duplicate code by [@bigboss2063](https://github.com/bigboss2063) in [#458](https://github.com/nutsdb/nutsdb/pull/458) 285 - refactor: refactor index by generics by [@G-XD](https://github.com/G-XD) in [#462](https://github.com/nutsdb/nutsdb/pull/462) 286 287 ## v0.14.2 (2023-11-06) 288 289 ### Features 290 291 - finish auto merge by [@damotiansheng](https://github.com/damotiansheng) in [#471](https://github.com/nutsdb/nutsdb/pull/471) 292 293 ### BugFix 294 295 - fix: return ErrListNotFound when calling tx.LRemByIndex with non-existent bucket name by [@TremblingV5](https://github.com/TremblingV5) in [#470](https://github.com/nutsdb/nutsdb/pull/470) 296 297 ### Other 298 299 - list index refractor by [@damotiansheng](https://github.com/damotiansheng) in [#467](https://github.com/nutsdb/nutsdb/pull/467) 300 - refactor: refactor unit test of tx_list by [@TremblingV5](https://github.com/TremblingV5) in [#468](https://github.com/nutsdb/nutsdb/pull/468) 301 - [ref]add a function that can automatically get the disk size of meta header by [@elliotchenzichang](https://github.com/elliotchenzichang) in [#478](https://github.com/nutsdb/nutsdb/pull/478) 302 - refactor: Optimize the code structure so that DB and Tx use a set of indexing processes by [@bigboss2063](https://github.com/bigboss2063) in [#479](https://github.com/nutsdb/nutsdb/pull/479) 303 - style: rename or remove some code by [@bigboss2063](https://github.com/bigboss2063) in [#480](https://github.com/nutsdb/nutsdb/pull/480) 304 - [ref]add a common function to get the special size buffer object by [@elliotchenzichang](https://github.com/elliotchenzichang) in [#482](https://github.com/nutsdb/nutsdb/pull/482) 305 - ref: refactor `buildBTreeIdx` method by [@bigboss2063](https://github.com/bigboss2063) in [#483](https://github.com/nutsdb/nutsdb/pull/483) 306 - ref: use errors.Is to remove useless code by [@bigboss2063](https://github.com/bigboss2063) in [#485](https://github.com/nutsdb/nutsdb/pull/485) 307 - decrease batch write unit test time by [@damotiansheng](https://github.com/damotiansheng) in [#487](https://github.com/nutsdb/nutsdb/pull/487) 308 309 ## v0.14.3 (2023-11-21) 310 311 ### BugFix 312 313 - fix: use constants instead of iota to prevent forward compatibility. by [@bigboss2063](https://github.com/bigboss2063) in [#490](https://github.com/nutsdb/nutsdb/pull/490) 314 315 ## v1.0.0 (2023-11-27) 316 317 ### Features 318 319 - [feat]Serperate bucket from entry and build the bucket management system by [@elliotchenzichang](https://github.com/elliotchenzichang) in [#484](https://github.com/nutsdb/nutsdb/pull/484) 320 - add lru cache for second index mode of HintKeyAndRAMIdxMode by [@damotiansheng](https://github.com/damotiansheng) in [#495](https://github.com/nutsdb/nutsdb/pull/495) 321 - add more api for bucket by [@elliotchenzichang](https://github.com/elliotchenzichang) in [#502](https://github.com/nutsdb/nutsdb/pull/502) 322 - feat: use variable length storage to implement storage protocols to save disk space by [@bigboss2063](https://github.com/bigboss2063) in [#501](https://github.com/nutsdb/nutsdb/pull/501) 323 - pref: reduce unnecessary fields in Record and save memory by [@bigboss2063](https://github.com/bigboss2063) in [#506](https://github.com/nutsdb/nutsdb/pull/506) 324 325 ### BugFix 326 327 - Only overwrite the managed error when a rollback error occurs by [@xy3](https://github.com/xy3) in [#493](https://github.com/nutsdb/nutsdb/pull/493) 328 - add lru cache when commit only for HintKeyAndRAMIdxMode by [@damotiansheng](https://github.com/damotiansheng) in [#504](https://github.com/nutsdb/nutsdb/pull/504) 329 - fix: use sync.Map to avoid data race by [@bigboss2063](https://github.com/bigboss2063) in [#509](https://github.com/nutsdb/nutsdb/pull/509)