本文整理汇总了Golang中github.com/couchbase/indexing/secondary/tests/framework/kvutility.SetKeyValues函数的典型用法代码示例。如果您正苦于以下问题:Golang SetKeyValues函数的具体用法?Golang SetKeyValues怎么用?Golang SetKeyValues使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetKeyValues函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: SkipTestCompactionDiskMinSize
func SkipTestCompactionDiskMinSize(t *testing.T) {
log.Printf("In TestCompactionDiskMinSize()")
secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
log.Printf("Emptying the default bucket")
kv.EnableBucketFlush("default", "", clusterconfig.Username, clusterconfig.Password, kvaddress)
kv.FlushBucket("default", "", clusterconfig.Username, clusterconfig.Password, kvaddress)
tc.ClearMap(docs)
time.Sleep(5 * time.Second)
log.Printf("Generating JSON docs")
docs = GenerateJsons(10000, seed, filepath.Join(proddir, "test.prod"), bagdir)
seed++
log.Printf("Setting initial JSON docs in KV")
kv.SetKeyValues(docs, "default", "", clusterconfig.KVAddress)
indexName := "index_compactiontest1"
bucketName := "default"
indexField := "company"
min_sizeValue := float64(320000000)
err := secondaryindex.ChangeIndexerSettings("indexer.settings.compaction.min_size", min_sizeValue, clusterconfig.Username, clusterconfig.Password, kvaddress)
FailTestIfError(err, "Error in ChangeIndexerSettings", t)
log.Printf("Creating a 2i")
err = secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{indexField}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
stats1 := getCompactionStats(indexName, bucketName)
log.Printf("Current Compaction Stats: Fragmentation=%v, Num_Compactions=%v, Disk_Size=%v\n", stats1.frag_percent, stats1.num_compactions, stats1.disk_size)
prev_compactionnumber := stats1.num_compactions
for i := 0; i < 100; i++ {
log.Printf("ITERATION %v", i)
updateDocsFieldForFragmentation(indexField)
kv.SetKeyValues(docs, "default", "", clusterconfig.KVAddress)
stats2 := getCompactionStats(indexName, bucketName)
log.Printf("Current Compaction Stats: Fragmentation=%v, Num_Compactions=%v, Disk_Size=%0.0f\n", stats2.frag_percent, stats2.num_compactions, stats2.disk_size)
if stats2.num_compactions > prev_compactionnumber {
time.Sleep(10 * time.Second)
stats3 := getCompactionStats(indexName, bucketName)
if stats3.disk_size < min_sizeValue {
errstr := fmt.Sprintf("Index compaction occurred before disk size %0.0f reached the set min_size %0.0f", stats3.disk_size, min_sizeValue)
log.Printf(errstr)
err := errors.New(errstr)
FailTestIfError(err, "Error in TestCompactionDiskMinSize", t)
}
}
prev_compactionnumber = stats2.num_compactions
}
err = secondaryindex.ChangeIndexerSettings("indexer.settings.compaction.min_size", float64(1048576), clusterconfig.Username, clusterconfig.Password, kvaddress)
FailTestIfError(err, "Error in ChangeIndexerSettings", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:56,代码来源:setg_compaction_stats_settings_test.go
示例2: compactionFragmentationTest
func compactionFragmentationTest(fragmentationValue float64, updateFragmentationValue bool, indexName, bucketName, indexField string, updateCount int, t *testing.T) {
secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
log.Printf("Emptying the default bucket")
kv.EnableBucketFlush("default", "", clusterconfig.Username, clusterconfig.Password, kvaddress)
kv.FlushBucket("default", "", clusterconfig.Username, clusterconfig.Password, kvaddress)
tc.ClearMap(docs)
time.Sleep(5 * time.Second)
log.Printf("Generating JSON docs")
docs = GenerateJsons(10000, seed, filepath.Join(proddir, "test.prod"), bagdir)
seed++
log.Printf("Setting initial JSON docs in KV")
kv.SetKeyValues(docs, "default", "", clusterconfig.KVAddress)
if updateFragmentationValue {
err := secondaryindex.ChangeIndexerSettings("indexer.settings.compaction.min_frag", fragmentationValue, clusterconfig.Username, clusterconfig.Password, kvaddress)
FailTestIfError(err, "Error in ChangeIndexerSettings", t)
}
log.Printf("Creating a 2i")
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{indexField}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
stats1 := getCompactionStats(indexName, bucketName)
log.Printf("Compaction Stats are: Fragmentation = %v and Num of Compactions = %v\n", stats1.frag_percent, stats1.num_compactions)
prev_compactionnumber := stats1.num_compactions
for i := 0; i < updateCount; i++ {
log.Printf("ITERATION %v", i)
updateDocsFieldForFragmentation(indexField)
kv.SetKeyValues(docs, "default", "", clusterconfig.KVAddress)
stats2 := getCompactionStats(indexName, bucketName)
log.Printf("Current Compaction Stats are: Fragmentation = %v and Num of Compactions = %v\n", stats2.frag_percent, stats2.num_compactions)
if stats2.frag_percent > fragmentationValue {
time.Sleep(40 * time.Second)
stats3 := getCompactionStats(indexName, bucketName)
if stats3.num_compactions <= prev_compactionnumber {
errorStr := fmt.Sprintf("Expected compaction to occur at %v but did not occur. Number of compactions = %v", fragmentationValue, stats3.num_compactions)
log.Printf(errorStr)
FailTestIfError(errors.New(errorStr), "Error in TestDefaultCompactionBehavior", t)
}
stats1 = getCompactionStats(indexName, bucketName)
log.Printf("Compaction occured :: Compaction Stats are: Fragmentation = %v and Num of Compactions = %v\n", stats1.frag_percent, stats1.num_compactions)
}
prev_compactionnumber = stats1.num_compactions
}
err = secondaryindex.ChangeIndexerSettings("indexer.settings.compaction.min_frag", float64(30), clusterconfig.Username, clusterconfig.Password, kvaddress)
FailTestIfError(err, "Error in ChangeIndexerSettings", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:54,代码来源:setg_compaction_stats_settings_test.go
示例3: TestLargeMutations
// Test with large number of mutations
func TestLargeMutations(t *testing.T) {
log.Printf("In TestLargeMutations()")
var index1 = "indexmut_1"
var index2 = "indexmut_2"
var bucketName = "default"
var field1 = "company"
var field2 = "gender"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
docsToCreate := generateDocs(20000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
kv.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(index1, bucketName, indexManagementAddress, "", []string{field1}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field1)
scanResults, err := secondaryindex.ScanAll(index1, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
for i := 0; i <= 10; i++ {
log.Printf("ITERATION %v\n", i)
docsToCreate = generateDocs(10000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
kv.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(index2, bucketName, indexManagementAddress, "", []string{field2}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults = datautility.ExpectedScanAllResponse(docs, field1)
scanResults, err = secondaryindex.ScanAll(index1, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
docScanResults = datautility.ExpectedScanAllResponse(docs, field2)
scanResults, err = secondaryindex.ScanAll(index2, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
err = secondaryindex.DropSecondaryIndex(index2, bucketName, indexManagementAddress)
FailTestIfError(err, "Error in drop index", t)
}
}
开发者ID:jchris,项目名称:indexing,代码行数:54,代码来源:mutations_test.go
示例4: TestUpdateMutations_AddField
func TestUpdateMutations_AddField(t *testing.T) {
log.Printf("In TestUpdateMutations_AddField()")
var bucketName = "default"
var indexName = "index_newField"
var field = "newField"
docsToCreate := generateDocs(1000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Count of scan results before add field mutations: %d", len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
// Create mutations with add fields
AddFieldMutations(300, field) // Update documents by adding the indexed field
docScanResults = datautility.ExpectedScanAllResponse(docs, field)
scanResults, err = secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Count of scan results after add field mutations: %d", len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:34,代码来源:setd_misc_test.go
示例5: TestLargePrimaryKeyLength
// Test case for testing primary key values with longest length possible
func TestLargePrimaryKeyLength(t *testing.T) {
log.Printf("In TestLargePrimaryKeyLength()")
indexName := "index_LongPrimaryField"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
largePrimaryKeyDocs := generateLargePrimaryKeyDocs(1000, "docid")
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(largePrimaryKeyDocs, "default", "", clusterconfig.KVAddress)
// Create a primary index
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", nil, true, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
if len(scanResults) != len(docs) {
log.Printf("Len of scanResults is incorrect. Expected and Actual are: %d and %d", len(docs), len(scanResults))
err = errors.New("Len of scanResults is incorrect.")
FailTestIfError(err, "Len of scanResults is incorrect", t)
}
log.Printf("Lengths of num of docs and scanResults are: %d and %d", len(docs), len(scanResults))
log.Printf("End: Length of kv docs is %d", len(docs))
}
开发者ID:jchris,项目名称:indexing,代码行数:30,代码来源:setd_misc_test.go
示例6: TestLargeSecondaryKeyLength
// Test case for testing secondary key field values as very huge
func TestLargeSecondaryKeyLength(t *testing.T) {
log.Printf("In TestLargeSecondaryKeyLength()")
field := "LongSecField"
indexName := "index_LongSecField"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
largeKeyDocs := generateLargeSecondayKeyDocs(1000, field)
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(largeKeyDocs, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("ScanAll: Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
docScanResults = datautility.ExpectedScanResponse_string(docs, field, "A", "zzzz", 3)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"A"}, []interface{}{"zzzz"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Range: Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("End: Length of kv docs is %d", len(docs))
}
开发者ID:jchris,项目名称:indexing,代码行数:34,代码来源:setd_misc_test.go
示例7: TestMixedDatatypesScanAll
func TestMixedDatatypesScanAll(t *testing.T) {
log.Printf("In TestMixedDatatypesScanAll()")
log.Printf("Before test begin: Length of kv docs is %d", len(docs))
field := "md_street"
indexName := "index_mixeddt"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
docsToCreate := generateJSONSMixedDatatype(1000, "md_street")
log.Printf("After generate docs: Length of kv docs is %d", len(docs))
seed++
log.Printf("Setting mixed datatypes JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
log.Printf("End: Length of kv docs is %d", len(docs))
}
开发者ID:jchris,项目名称:indexing,代码行数:27,代码来源:setd_misc_test.go
示例8: TestIndexNameValidation
func TestIndexNameValidation(t *testing.T) {
log.Printf("In TestIndexNameValidation()")
var bucketName = "default"
var validIndexName = "#primary-Index_test"
var invalidIndexName = "ÌñÐÉx&(abc_%"
var field = "balance"
docsToCreate := generateDocs(1000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(invalidIndexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
errMsg := "Expected index name validation error for index " + invalidIndexName
FailTestIfNoError(err, errMsg, t)
log.Printf("Creation of index with invalid name %v failed as expected", invalidIndexName)
err = secondaryindex.CreateSecondaryIndex(validIndexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_string(docs, field, "$4", "$7", 3)
scanResults, err := secondaryindex.Range(validIndexName, bucketName, indexScanAddress, []interface{}{"$4"}, []interface{}{"$7"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:29,代码来源:sete_datashapes_test.go
示例9: TestRangeWithConcurrentDelMuts
func TestRangeWithConcurrentDelMuts(t *testing.T) {
log.Printf("In TestRangeWithConcurrentDelMuts()")
var wg sync.WaitGroup
prodfile = filepath.Join(proddir, "test.prod")
// secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
log.Printf("Generating JSON docs")
kvdocs = GenerateJsons(30000, seed, prodfile, bagdir)
seed++
log.Printf("Setting initial JSON docs in KV")
kv.SetKeyValues(kvdocs, "default", "", clusterconfig.KVAddress)
var indexName = "index_company"
var bucketName = "default"
log.Printf("Creating a 2i")
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"company"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
wg.Add(2)
go DeleteDocsForDuration(&wg, 120)
go RangeScanForDuration_ltr("Thread 1: ", &wg, 120, t, indexName, bucketName, indexScanAddress)
wg.Wait()
}
开发者ID:jchris,项目名称:indexing,代码行数:25,代码来源:concurrency_test.go
示例10: DataTypeChangeMutations_BoolToString
func DataTypeChangeMutations_BoolToString(num int, field string) {
i := 0
keys := make(tc.KeyValues)
for key, value := range docs {
keys[key] = value
i++
if i == num {
break
}
}
keysToBeUpdated := make(tc.KeyValues)
for key, value := range keys {
json := value.(map[string]interface{})
if json[field] == true {
json[field] = "true"
} else {
json[field] = "false"
}
docs[key] = json
keysToBeUpdated[key] = json
}
kvutility.SetKeyValues(keysToBeUpdated, "default", "", clusterconfig.KVAddress)
}
开发者ID:jchris,项目名称:indexing,代码行数:25,代码来源:setd_misc_test.go
示例11: TestFieldsWithSpecialCharacters
func TestFieldsWithSpecialCharacters(t *testing.T) {
log.Printf("In TestFieldsWithSpecialCharacters()")
var bucketName = "default"
var indexName = "index_specialchar"
var field = "splfield"
docsToCreate := generateDocsWithSpecialCharacters(1000, "users.prod", field)
UpdateKVDocs(docsToCreate, docs)
var valueToLookup string
for _, v := range docsToCreate {
json := v.(map[string]interface{})
valueToLookup = json[field].(string)
break
}
kvutility.SetKeyValues(docsToCreate, bucketName, "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
log.Printf("Looking up for value %v", valueToLookup)
docScanResults := datautility.ExpectedScanResponse_string(docs, field, valueToLookup, valueToLookup, 3)
scanResults, err := secondaryindex.Lookup(indexName, bucketName, indexScanAddress, []interface{}{valueToLookup}, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:28,代码来源:sete_datashapes_test.go
示例12: TestLargeDocumentSize
func TestLargeDocumentSize(t *testing.T) {
log.Printf("In TestLargeDocumentSize()")
u, _ := user.Current()
datapath := filepath.Join(u.HomeDir, "testdata/TwitterFeed1.txt.gz")
tc.DownloadDataFile(tc.IndexTypesTwitterFeed1JSONDataS3, datapath, true)
largeDocs := datautility.LoadJSONFromCompressedFile(datapath, "id_str")
UpdateKVDocs(largeDocs, docs)
log.Printf("Length of docs and largeDocs = %d and %d", len(docs), len(largeDocs))
bucketName := "default"
index1 := "index_userscreenname"
kvutility.SetKeyValues(largeDocs, bucketName, "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(index1, bucketName, indexManagementAddress, "", []string{"`user`.screen_name"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, "user.screen_name")
scanResults, err := secondaryindex.ScanAll(index1, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 1: ", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan 1: result validation", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:25,代码来源:sete_datashapes_test.go
示例13: UpdateDocs
func UpdateDocs(num int) {
i := 0
// Pick some docs from mut_docs
keysFromMutDocs := make(tc.KeyValues)
for key, value := range mut_docs {
keysFromMutDocs[key] = value
i++
if i == num {
break
}
}
// and , Add them to docs
keysToBeSet := make(tc.KeyValues)
for _, value := range keysFromMutDocs {
n := randomNum(0, float64(len(docs)-1))
i = 0
var k string
for k, _ = range docs {
if i == n {
break
}
i++
}
docs[k] = value
keysToBeSet[k] = value
}
log.Printf("Num of keysFromMutDocs: %d", len(keysFromMutDocs))
log.Printf("Updating number of documents: %d", len(keysToBeSet))
kv.SetKeyValues(keysToBeSet, "default", "", clusterconfig.KVAddress)
}
开发者ID:jchris,项目名称:indexing,代码行数:31,代码来源:mutations_test.go
示例14: CreateDeleteDocsForDuration
func CreateDeleteDocsForDuration(wg *sync.WaitGroup, seconds float64) {
log.Printf("CreateDocs:: Creating mutations")
defer wg.Done()
start := time.Now()
for {
elapsed := time.Since(start)
if elapsed.Seconds() >= seconds {
break
}
docsToBeCreated := GenerateJsons(100, seed, prodfile, bagdir)
seed++
kv.SetKeyValues(docsToBeCreated, "default", "", clusterconfig.KVAddress)
for key, value := range docsToBeCreated {
kvdocs[key] = value
}
log.Printf("CreateDocs:: Len of kvdocs: %v", len(kvdocs))
i := 0
keysToBeDeleted := make(tc.KeyValues)
for key, value := range kvdocs {
keysToBeDeleted[key] = value
i++
if i == 5 {
break
}
}
kv.DeleteKeys(keysToBeDeleted, "default", "", clusterconfig.KVAddress)
// Update docs object with deleted keys
for key, _ := range keysToBeDeleted {
delete(kvdocs, key)
}
}
}
开发者ID:jchris,项目名称:indexing,代码行数:35,代码来源:concurrency_test.go
示例15: TestMutationsWithMultipleIndexBuilds
func TestMutationsWithMultipleIndexBuilds(t *testing.T) {
log.Printf("In TestMutationsWithMultipleIndexBuilds()")
prodfile = filepath.Join(proddir, "test.prod")
secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
log.Printf("Generating JSON docs")
kvdocs = GenerateJsons(100000, seed, prodfile, bagdir)
seed++
log.Printf("Setting initial JSON docs in KV")
kv.SetKeyValues(kvdocs, "default", "", clusterconfig.KVAddress)
var index_p = "index_primary"
var bucketName = "default"
indexes := []string{"index_company", "index_age", "index_firstname", "index_lastname"}
fields := []string{"company", "age", "`first-name`", "`last-name`"}
// Create a primary index
err := secondaryindex.CreateSecondaryIndex(index_p, bucketName, indexManagementAddress, "", nil, true, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
log.Printf("Creating multiple indexes in deferred mode")
for i := range indexes {
e := secondaryindex.CreateSecondaryIndexAsync(indexes[i], bucketName, indexManagementAddress, "", []string{fields[i]}, false, []byte("{\"defer_build\": true}"), true, nil)
FailTestIfError(e, "Error in creating the index", t)
}
log.Printf("Build Indexes and wait for indexes to become active: %v", indexes)
err = secondaryindex.BuildIndexes(indexes, bucketName, indexManagementAddress, 2000)
FailTestIfError(err, "Error in deferred index build", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:31,代码来源:concurrency_test.go
示例16: SkipTestPerfRangeWithoutMutations_1M
func SkipTestPerfRangeWithoutMutations_1M(t *testing.T) {
log.Printf("In TestPerfQueryWithoutMutations_1M()")
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
prodfile := "../../../../../prataprc/monster/prods/test.prod"
bagdir := "../../../../../prataprc/monster/bags/"
log.Printf("Generating JSON docs")
count := 1000000
keyValues := GenerateJsons(count, 1, prodfile, bagdir)
log.Printf("Setting JSON docs in KV")
kv.SetKeyValues(keyValues, "default", "", clusterconfig.KVAddress)
var indexName = "index_company"
var bucketName = "default"
log.Printf("Creating a 2i")
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"company"}, false, nil, true, 1500, nil)
FailTestIfError(err, "Error in creating the index", t)
start := time.Now()
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"E"}, []interface{}{"N"}, 3, true, defaultlimit, c.AnyConsistency, nil)
elapsed := time.Since(start)
log.Printf("RangeScan:: Len of scanResults is: %d", len(scanResults))
log.Printf("Range Scan of %d user documents took %s\n", count, elapsed)
}
开发者ID:jchris,项目名称:indexing,代码行数:27,代码来源:perf_test.go
示例17: TestSameFieldNameAtDifferentLevels
func TestSameFieldNameAtDifferentLevels(t *testing.T) {
log.Printf("In TestSameFieldNameAtDifferentLevels()")
var bucketName = "default"
var indexName = "cityindex"
var field = "city"
docsToCreate := generateDocs(1000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
docsToUpload := make(tc.KeyValues)
for k, v := range docsToCreate {
json := v.(map[string]interface{})
address := json["address"].(map[string]interface{})
city := address["city"].(string)
json[field] = city
address["city"] = "ThisIsNestedCity " + city
docsToUpload[k] = json
}
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(docsToUpload, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_string(docs, field, "A", "K", 3)
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"A"}, []interface{}{"K"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:33,代码来源:sete_datashapes_test.go
示例18: SkipTestPerfPrimaryIndexBuild_SimpleJson
func SkipTestPerfPrimaryIndexBuild_SimpleJson(t *testing.T) {
log.Printf("In TestPerfInitialIndexBuild()")
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
prodfile = filepath.Join(proddir, "test.prod")
log.Printf("Generating JSON docs")
count := 100000000
keyValues := GenerateJsons(count, 1, prodfile, bagdir)
log.Printf("Setting JSON docs in KV")
kv.SetKeyValues(keyValues, "default", "", clusterconfig.KVAddress)
var indexName = "index_primary"
var bucketName = "default"
log.Printf("Creating a 2i")
start := time.Now()
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", nil, true, nil, true, 1500, nil)
FailTestIfError(err, "Error in creating the index", t)
elapsed := time.Since(start)
log.Printf("Index build of %d user documents took %s\n", count, elapsed)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
if len(scanResults) != len(keyValues) {
log.Printf("Len of scanResults is incorrect. Expected and Actual are: %d and %d", len(keyValues), len(scanResults))
err = errors.New("Len of scanResults is incorrect.")
}
FailTestIfError(err, "Len of scanResults is incorrect", t)
}
开发者ID:jchris,项目名称:indexing,代码行数:29,代码来源:perf_test.go
示例19: SkipTestPerfRangeWithConcurrentKVMuts
func SkipTestPerfRangeWithConcurrentKVMuts(t *testing.T) {
log.Printf("In TestPerfRangeWithConcurrentKVMuts()")
var wg sync.WaitGroup
prodfile = "../../../../../prataprc/monster/prods/test.prod"
bagdir = "../../../../../prataprc/monster/bags/"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
log.Printf("Generating JSON docs")
kvdocs = GenerateJsons(1000, seed, prodfile, bagdir)
seed++
log.Printf("Setting initial JSON docs in KV")
kv.SetKeyValues(kvdocs, "default", "", clusterconfig.KVAddress)
var indexName = "index_company"
var bucketName = "default"
log.Printf("Creating a 2i")
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"company"}, false, nil, true, 1500, nil)
FailTestIfError(err, "Error in creating the index", t)
wg.Add(2)
go CreateDeleteDocsForDuration(&wg, 60)
go RangeScanForDuration_ltr("Range Thread: ", &wg, 60, t, indexName, bucketName, indexScanAddress)
wg.Wait()
}
开发者ID:jchris,项目名称:indexing,代码行数:27,代码来源:perf_test.go
示例20: TestMixedDatatypesRange_Float
func TestMixedDatatypesRange_Float(t *testing.T) {
log.Printf("In TestMixedDatatypesRange_Float()")
field := "mixed_field"
indexName := "index_mixeddt"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
docsToCreate := generateJSONSMixedDatatype(1000, field)
seed++
log.Printf("Setting mixed datatypes JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_float64(docs, field, 100, 1000, 3)
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{100}, []interface{}{1000}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
docScanResults = datautility.ExpectedScanResponse_float64(docs, field, 1, 100, 2)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{1}, []interface{}{100}, 2, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
log.Printf("Length of kv docs is %d", len(docs))
}
开发者ID:jchris,项目名称:indexing,代码行数:33,代码来源:setd_misc_test.go
注:本文中的github.com/couchbase/indexing/secondary/tests/framework/kvutility.SetKeyValues函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论