Skip to content
Snippets Groups Projects
Unverified Commit 65605ac6 authored by XuPeng-SH's avatar XuPeng-SH Committed by GitHub
Browse files

Update event listener and related dependency (#1304)

parent f3e45622
No related branches found
No related tags found
No related merge requests found
...@@ -325,7 +325,7 @@ func TestShard2(t *testing.T) { ...@@ -325,7 +325,7 @@ func TestShard2(t *testing.T) {
} }
assert.Equal(t, 0, total) assert.Equal(t, 0, total)
for _, shard := range shards { for _, shard := range shards {
testutils.WaitExpect(400, func() bool { testutils.WaitExpect(800, func() bool {
return shard.gen.Get() == shard.getSafeId() return shard.gen.Get() == shard.getSafeId()
}) })
} }
......
...@@ -177,10 +177,12 @@ func (splitter *Splitter) Prepare() error { ...@@ -177,10 +177,12 @@ func (splitter *Splitter) Prepare() error {
} }
func (splitter *Splitter) Commit() error { func (splitter *Splitter) Commit() error {
err := splitter.msplitter.Commit() err := splitter.dbImpl.Opts.EventListener.OnPreSplit(splitter.event)
if err == nil { if err != nil {
splitter.dbImpl.Opts.EventListener.OnDatabaseSplitted(splitter.event) panic(err)
} }
err = splitter.msplitter.Commit()
splitter.dbImpl.Opts.EventListener.OnPostSplit(err, splitter.event)
return err return err
} }
......
...@@ -12,10 +12,20 @@ func NewListensers(l1, l2 Listener) *listensers { ...@@ -12,10 +12,20 @@ func NewListensers(l1, l2 Listener) *listensers {
return s return s
} }
func (s *listensers) OnDatabaseSplitted(event *SplitEvent) error { func (s *listensers) OnPreSplit(event *SplitEvent) error {
var err error var err error
for _, l := range s.ls { for _, l := range s.ls {
if err = l.OnDatabaseSplitted(event); err != nil { if err = l.OnPreSplit(event); err != nil {
break
}
}
return err
}
func (s *listensers) OnPostSplit(res error, event *SplitEvent) error {
var err error
for _, l := range s.ls {
if err = l.OnPostSplit(res, event); err != nil {
break break
} }
} }
......
...@@ -24,8 +24,18 @@ func NewLoggingListener() *loggingListener { ...@@ -24,8 +24,18 @@ func NewLoggingListener() *loggingListener {
return new(loggingListener) return new(loggingListener)
} }
func (l *loggingListener) OnDatabaseSplitted(event *SplitEvent) error { func (l *loggingListener) OnPreSplit(event *SplitEvent) error {
logutil.Info(event.String()) return nil
}
func (l *loggingListener) OnPostSplit(res error, event *SplitEvent) error {
var state string
if res != nil {
state = res.Error()
} else {
state = "Done"
}
logutil.Infof("%s | %s", event.String(), state)
return nil return nil
} }
......
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
package event package event
import "fmt" import (
"fmt"
)
type SplitEvent struct { type SplitEvent struct {
DB string DB string
...@@ -22,7 +24,7 @@ type SplitEvent struct { ...@@ -22,7 +24,7 @@ type SplitEvent struct {
} }
func (e *SplitEvent) String() string { func (e *SplitEvent) String() string {
info := fmt.Sprintf("DB<\"%s\"> Splitted | {", e.DB) info := fmt.Sprintf("DB<\"%s\"> Splitting | {", e.DB)
for db, tables := range e.Names { for db, tables := range e.Names {
dbInfo := fmt.Sprintf("[\"%s\"]: ", db) dbInfo := fmt.Sprintf("[\"%s\"]: ", db)
for _, table := range tables { for _, table := range tables {
...@@ -36,7 +38,8 @@ func (e *SplitEvent) String() string { ...@@ -36,7 +38,8 @@ func (e *SplitEvent) String() string {
} }
type Listener interface { type Listener interface {
OnDatabaseSplitted(*SplitEvent) error OnPreSplit(*SplitEvent) error
OnPostSplit(error, *SplitEvent) error
OnBackgroundError(error) error OnBackgroundError(error) error
} }
......
...@@ -870,7 +870,7 @@ func (db *Database) onNewTable(entry *Table) error { ...@@ -870,7 +870,7 @@ func (db *Database) onNewTable(entry *Table) error {
if nn != nil { if nn != nil {
e := nn.GetTable() e := nn.GetTable()
// Conflict checks all committed and uncommitted entries. // Conflict checks all committed and uncommitted entries.
if !e.IsDeletedLocked() { if !e.IsDeleted() {
return DuplicateErr return DuplicateErr
} }
db.TableSet[entry.Id] = entry db.TableSet[entry.Id] = entry
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment