Skip to content

Commit 7e27152

Browse files
committed
MB-63831, MB-60971, MB-62182: Making persister and merger more resource
friendly - blevesearch/bleve#2100 - blevesearch/bleve#2134 Change-Id: I8e3e6e8f60d16094d3d4ddee44115c07a872fcfb Reviewed-on: https://review.couchbase.org/c/cbft/+/225100 Reviewed-by: Abhi Dangeti <abhinav@couchbase.com> Tested-by: <thejas.orkombu@couchbase.com> Well-Formed: Build Bot <build@couchbase.com>
1 parent fe794bb commit 7e27152

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ require (
88
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.15
99
github.com/aws/aws-sdk-go-v2/service/s3 v1.48.1
1010
github.com/blevesearch/bleve-mapping-ui v0.6.0
11-
github.com/blevesearch/bleve/v2 v2.4.4-0.20250320075922-5040e2d2092a
11+
github.com/blevesearch/bleve/v2 v2.4.4-0.20250327105221-47f95bceb5e4
1212
github.com/blevesearch/bleve_index_api v1.2.3
1313
github.com/blevesearch/zapx/v11 v11.4.1
1414
github.com/blevesearch/zapx/v12 v12.4.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ github.com/bits-and-blooms/bitset v1.12.0 h1:U/q1fAF7xXRhFCrhROzIfffYnu+dlS38vCZ
9393
github.com/bits-and-blooms/bitset v1.12.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
9494
github.com/blevesearch/bleve-mapping-ui v0.6.0 h1:lTne3hGUNNDnHz/sR5cp9MpIQ8x5AfAsufkc6R83pu0=
9595
github.com/blevesearch/bleve-mapping-ui v0.6.0/go.mod h1:ATheobclG2Dnf5rHpmL/+sOeggsemKW9yEN6GoExA+A=
96-
github.com/blevesearch/bleve/v2 v2.4.4-0.20250320075922-5040e2d2092a h1:UZC9yTvfDW1+n6AAeXCO956l5zrE/mm3CvuXCD59zfE=
97-
github.com/blevesearch/bleve/v2 v2.4.4-0.20250320075922-5040e2d2092a/go.mod h1:7dcR9fviWC63sppS1iZfd2r8y3gZb0gED1mJ2HIH/r8=
96+
github.com/blevesearch/bleve/v2 v2.4.4-0.20250327105221-47f95bceb5e4 h1:2Agz3Q5sBs2wGMwrDCE1vnwVwZufXogWRsXUNfzMThE=
97+
github.com/blevesearch/bleve/v2 v2.4.4-0.20250327105221-47f95bceb5e4/go.mod h1:7dcR9fviWC63sppS1iZfd2r8y3gZb0gED1mJ2HIH/r8=
9898
github.com/blevesearch/bleve_index_api v1.2.3 h1:aJJPhTb30zc68qg2HbvCZLAF1Eh5Hhm296mDAUFaUeg=
9999
github.com/blevesearch/bleve_index_api v1.2.3/go.mod h1:rKQDl4u51uwafZxFrPD1R7xFOwKnzZW7s/LSeK4lgo0=
100100
github.com/blevesearch/geo v0.1.20 h1:paaSpu2Ewh/tn5DKn/FB5SzvH0EWupxHEIwbCk/QPqM=

pindex_bleve.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,40 @@ func PrepareIndexDef(mgr *cbgt.Manager, indexDef *cbgt.IndexDef) (
702702
return nil, cbgt.NewBadRequestError("PrepareIndex, err: cosine similarity metric for vectors " +
703703
"not supported in this cluster")
704704
}
705+
706+
// setting default values for the number of persister workers and how much
707+
// data each worker can handle in memory before flushing to disk.
708+
//
709+
// these defaults can be overridden by the user in the index definition.
710+
// MB-63831 for more details.
711+
// For non-vector indexes, we don't need to be aggressive
712+
// with the flushing and background merging since the
713+
// payload is generally smaller.
714+
var numPersisterWorkers = 4
715+
var maxSizeInMemoryMergePerWorker = 20 * 1024 * 1024
716+
if indexVectorPicture.fields != noVectorFields {
717+
// Keeping things a bit more parallelized and
718+
// making each worker do the
719+
// job on a larger amount of data because
720+
// vector payload is generally higher
721+
numPersisterWorkers = 8
722+
maxSizeInMemoryMergePerWorker = 200 * 1024 * 1024
723+
}
724+
725+
if v, ok := bp.Store["scorchPersisterOptions"].(map[string]interface{}); ok {
726+
if v["numPersisterWorkers"] == nil {
727+
v["numPersisterWorkers"] = numPersisterWorkers
728+
}
729+
if v["maxSizeInMemoryMergePerWorker"] == nil {
730+
v["maxSizeInMemoryMergePerWorker"] = maxSizeInMemoryMergePerWorker
731+
}
732+
} else {
733+
bp.Store["scorchPersisterOptions"] = map[string]interface{}{
734+
"numPersisterWorkers": numPersisterWorkers,
735+
"maxSizeInMemoryMergePerWorker": maxSizeInMemoryMergePerWorker,
736+
}
737+
}
738+
705739
}
706740

707741
segmentVersionSupported := cbgt.IsFeatureSupportedByCluster(

0 commit comments

Comments
 (0)