upside_down process internal rows earlier
With this change, internal rows are processed while we're waiting for backIndex rows to be retrieved.
This commit is contained in:
parent
bb5cd8f3d6
commit
94273d5fa9
@ -790,6 +790,18 @@ func (udc *UpsideDownCouch) Batch(batch *index.Batch) (err error) {
|
||||
|
||||
indexStart := time.Now()
|
||||
|
||||
// add the internal ops
|
||||
for internalKey, internalValue := range batch.InternalOps {
|
||||
if internalValue == nil {
|
||||
// delete
|
||||
deleteInternalRow := NewInternalRow([]byte(internalKey), nil)
|
||||
deleteRows = append(deleteRows, deleteInternalRow)
|
||||
} else {
|
||||
updateInternalRow := NewInternalRow([]byte(internalKey), internalValue)
|
||||
updateRows = append(updateRows, updateInternalRow)
|
||||
}
|
||||
}
|
||||
|
||||
for dbir := range docBackIndexRowCh {
|
||||
if dbir.doc == nil && dbir.backIndexRow != nil {
|
||||
// delete
|
||||
@ -813,18 +825,6 @@ func (udc *UpsideDownCouch) Batch(batch *index.Batch) (err error) {
|
||||
return UnsafeBatchUseDetected
|
||||
}
|
||||
|
||||
// add the internal ops
|
||||
for internalKey, internalValue := range batch.InternalOps {
|
||||
if internalValue == nil {
|
||||
// delete
|
||||
deleteInternalRow := NewInternalRow([]byte(internalKey), nil)
|
||||
deleteRows = append(deleteRows, deleteInternalRow)
|
||||
} else {
|
||||
updateInternalRow := NewInternalRow([]byte(internalKey), internalValue)
|
||||
updateRows = append(updateRows, updateInternalRow)
|
||||
}
|
||||
}
|
||||
|
||||
// start a writer for this batch
|
||||
var kvwriter store.KVWriter
|
||||
kvwriter, err = udc.store.Writer()
|
||||
|
Loading…
Reference in New Issue
Block a user