func (self *ShardData) Write(request *p.Request) error { request.ShardId = &self.id requestNumber, err := self.wal.AssignSequenceNumbersAndLog(request, self) if err != nil { return err } request.RequestNumber = &requestNumber if self.store != nil { self.store.BufferWrite(request) } for _, server := range self.clusterServers { // we have to create a new reqeust object because the ID gets assigned on each server. requestWithoutId := &p.Request{Type: request.Type, Database: request.Database, MultiSeries: request.MultiSeries, ShardId: &self.id, RequestNumber: request.RequestNumber} server.BufferWrite(requestWithoutId) } return nil }
func (self *ShardData) SyncWrite(request *p.Request, assignSeqNum bool) error { if assignSeqNum { self.wal.AssignSequenceNumbers(request) } request.ShardId = &self.id for _, server := range self.clusterServers { if err := server.Write(request); err != nil { return err } } if self.store == nil { return nil } return self.store.Write(request) }