Bump version to 1.1.6; fix storage bugs, tests, CI pipeline and Docker config
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled

Storage fixes:
- Fix bloom filter hash2 OverflowDefect (uint64 instead of int Hash)
- Fix MemTable.put size calculation on overwrite (was leaking size)
- Fix fuzz_test duplicate-key issues in LSM delete and SSTable tests

Test fixes:
- Fix stress_test.nim: replace deprecated threadpool with std/threads
- Fix fuzz_test.nim: add missing imports (tables, algorithm, sets)
- Fix fuzz_test.nim: var sst for close() compatibility
- Remove unused imports from test_all.nim and bench_all.nim

Docker / CI fixes:
- Fix Dockerfile.source: invalid nimlang/nim:2.2.10-alpine tag → 2.2.10 + ubuntu:24.04 runtime
- Fix Dockerfile.source healthcheck (--spider → -qO- for 200 OK)
- Fix Dockerfile run comment ports (9470/9471 → 9912/9913)
- Fix scripts/docker-run.sh healthcheck port (9470 → 9912)
- Add ARG BUILD_DATE/VCS_REF to Dockerfile for docker-build.sh
- Update all version strings 1.1.4 → 1.1.6 across nimble/docker/source/docs
This commit is contained in:
2026-05-19 12:13:33 +03:00
parent 343f479127
commit cd46edcb67
47 changed files with 150 additions and 118 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ import ../query/lexer
import ../query/parser
const
Version = "1.1.4"
Version = "1.1.6"
Prompt = "bara> "
ContinuationPrompt = " .. > "
+2 -2
View File
@@ -199,7 +199,7 @@ proc queryHandler(server: HttpServer): RequestHandler =
proc healthHandler(): RequestHandler =
return proc(request: Request) {.gcsafe.} =
let ctx = newContext(request)
ctx.json(%*{"status": "ok", "version": "1.1.4"})
ctx.json(%*{"status": "ok", "version": "1.1.6"})
proc metricsHandler(server: HttpServer): RequestHandler =
return proc(request: Request) {.gcsafe.} =
@@ -535,7 +535,7 @@ function showTab(idx){
}
setInterval(() => { if(document.querySelectorAll('.panel')[4].classList.contains('active')) loadMetrics() }, 5000)
</script>
<div class='status' style='text-align:center;padding:10px'>BaraDB v1.1.4 — Multimodal Database Engine</div>
<div class='status' style='text-align:center;padding:10px'>BaraDB v1.1.6 — Multimodal Database Engine</div>
</body></html>"""
request.respond(200, @[("Content-Type", "text/html; charset=utf-8")], html)
+1 -1
View File
@@ -116,7 +116,7 @@ proc exportOtlp*(tracer: Tracer, endpoint: string = "http://localhost:4318/v1/tr
{"key": "service.name", "value": {"stringValue": "baradadb"}}
]},
"scopeSpans": [{
"scope": {"name": "baradadb-tracer", "version": "1.1.4"},
"scope": {"name": "baradadb-tracer", "version": "1.1.6"},
"spans": otlpSpans
}]
}]
+2 -2
View File
@@ -503,7 +503,7 @@ proc handleInitialize(params: JsonNode): JsonNode =
"protocolVersion": "2024-11-05",
"serverInfo": {
"name": "BaraDB MCP Server",
"version": "1.1.4"
"version": "1.1.6"
},
"capabilities": {
"tools": {}
@@ -690,7 +690,7 @@ proc processMessage(raw: string): string =
# ---------------------------------------------------------------------------
proc init*(dataDir: string = "./data"): McpServerCtx =
logToStderr("BaraDB MCP Server v1.1.4 initializing...")
logToStderr("BaraDB MCP Server v1.1.6 initializing...")
let db = newLSMTree(dataDir)
let ctx = newExecutionContext(db)
ctx.txnManager = newTxnManager()
+3 -3
View File
@@ -24,10 +24,10 @@ proc hash1*(bf: BloomFilter, data: openArray[byte]): uint64 =
result = uint64(!$h)
proc hash2*(bf: BloomFilter, data: openArray[byte]): uint64 =
var h: Hash = 5381
var h: uint64 = 5381
for b in data:
h = ((h shl 5) + h) + Hash(b)
result = uint64(h)
h = ((h shl 5) + h) + uint64(b)
result = h
proc getHashes(bf: BloomFilter, data: openArray[byte]): seq[int] =
let h1 = bf.hash1(data)
+5 -3
View File
@@ -68,15 +68,17 @@ proc put*(mt: var MemTable, key: string, value: seq[byte], timestamp: uint64, de
let entrySize = key.len + value.len + 16
if entrySize > mt.maxSize:
return false
if mt.size + entrySize > mt.maxSize and mt.entries.len > 0:
return false
let entry = Entry(key: key, value: value, timestamp: timestamp, deleted: deleted)
let pos = mt.entries.lowerBound(entry, proc(a, b: Entry): int = cmp(a.key, b.key))
if pos < mt.entries.len and mt.entries[pos].key == key:
let oldSize = mt.entries[pos].key.len + mt.entries[pos].value.len + 16
mt.entries[pos] = entry
mt.size += entrySize - oldSize
else:
if mt.size + entrySize > mt.maxSize and mt.entries.len > 0:
return false
mt.entries.insert(entry, pos)
mt.size += entrySize
mt.size += entrySize
return true
proc get*(mt: MemTable, key: string): (bool, Entry) =
+1 -1
View File
@@ -211,7 +211,7 @@ proc main() =
# Init structured logger from config
let logLvl = parseEnum[LogLevel]("ll" & capitalizeAscii(config.logLevel))
defaultLogger = newLogger(logLvl, config.logFile)
info("BaraDB v1.1.4 — Multimodal Database Engine")
info("BaraDB v1.1.6 — Multimodal Database Engine")
# Security check: warn if JWT secret is not configured
if config.jwtSecret.len == 0: