Skip to content

Commit

Permalink
Introduce VersionVector to detect the relationship between changes
Browse files Browse the repository at this point in the history
  • Loading branch information
hackerwins committed Mar 28, 2024
1 parent eadb194 commit 03928f9
Showing 28 changed files with 1,727 additions and 1,201 deletions.
6 changes: 6 additions & 0 deletions admin/client.go
Original file line number Diff line number Diff line change
@@ -327,10 +327,16 @@ func (c *Client) ListChangeSummaries(
return nil, err
}

vector, err := converter.FromVersionVector(snapshotMeta.Msg.VersionVector)
if err != nil {
return nil, err
}

newDoc, err := document.NewInternalDocumentFromSnapshot(
key,
seq,
snapshotMeta.Msg.Lamport,
vector,
snapshotMeta.Msg.Snapshot,
)

42 changes: 39 additions & 3 deletions api/converter/from_pb.go
Original file line number Diff line number Diff line change
@@ -102,14 +102,23 @@ func FromChangePack(pbPack *api.ChangePack) (*change.Pack, error) {
return nil, err
}

return &change.Pack{
pack := &change.Pack{
DocumentKey: key.Key(pbPack.DocumentKey),
Checkpoint: fromCheckpoint(pbPack.Checkpoint),
Changes: changes,
Snapshot: pbPack.Snapshot,
MinSyncedTicket: minSyncedTicket,
IsRemoved: pbPack.IsRemoved,
}, nil
}

if pbPack.Snapshot != nil {
pack.Snapshot = pbPack.Snapshot
pack.SnapshotVersionVector, err = FromVersionVector(pbPack.SnapshotVersionVector)
if err != nil {
return nil, err
}
}

return pack, nil
}

func fromCheckpoint(pbCheckpoint *api.Checkpoint) change.Checkpoint {
@@ -147,14 +156,41 @@ func fromChangeID(id *api.ChangeID) (change.ID, error) {
if err != nil {
return change.InitialID, err
}

vector, err := FromVersionVector(id.VersionVector)
if err != nil {
return change.InitialID, err
}

return change.NewID(
id.ClientSeq,
id.ServerSeq,
id.Lamport,
actorID,
vector,
), nil
}

// FromVersionVector converts the given Protobuf formats to model format.
func FromVersionVector(pbVersionVector *api.VersionVector) (time.VersionVector, error) {
versionVector := make(time.VersionVector)
// TODO(hackerwins): Old clients until v0.4.15 don't send VersionVector.
// Remove this check after all clients are updated to the v0.4.16 or later.
if pbVersionVector == nil {
return versionVector, nil
}

for id, lamport := range pbVersionVector.Vector {
actorID, err := time.ActorIDFromHex(id)
if err != nil {
return nil, err
}
versionVector.Set(actorID, lamport)
}

return versionVector, nil
}

// FromDocumentID converts the given Protobuf formats to model format.
func FromDocumentID(pbID string) (types.ID, error) {
id := types.ID(pbID)
39 changes: 33 additions & 6 deletions api/converter/to_pb.go
Original file line number Diff line number Diff line change
@@ -155,13 +155,35 @@ func ToCheckpoint(cp change.Checkpoint) *api.Checkpoint {
}

// ToChangeID converts the given model format to Protobuf format.
func ToChangeID(id change.ID) *api.ChangeID {
func ToChangeID(id change.ID) (*api.ChangeID, error) {
pbVersionVector, err := ToVersionVector(id.VersionVector())
if err != nil {
return nil, err
}
return &api.ChangeID{
ClientSeq: id.ClientSeq(),
ServerSeq: id.ServerSeq(),
Lamport: id.Lamport(),
ActorId: id.ActorID().Bytes(),
ClientSeq: id.ClientSeq(),
ServerSeq: id.ServerSeq(),
Lamport: id.Lamport(),
ActorId: id.ActorID().Bytes(),
VersionVector: pbVersionVector,
}, nil
}

// ToVersionVector converts the given model format to Protobuf format.
func ToVersionVector(vector time.VersionVector) (*api.VersionVector, error) {
pbVersionVector := make(map[string]int64)
for actor, clock := range vector {
id, err := time.ActorIDFromBytes(actor[:])
if err != nil {
return nil, err
}

pbVersionVector[id.String()] = clock
}

return &api.VersionVector{
Vector: pbVersionVector,
}, nil
}

// ToDocEventType converts the given model format to Protobuf format.
@@ -241,8 +263,13 @@ func ToChanges(changes []*change.Change) ([]*api.Change, error) {
return nil, err
}

pbChangeID, err := ToChangeID(c.ID())
if err != nil {
return nil, err
}

pbChanges = append(pbChanges, &api.Change{
Id: ToChangeID(c.ID()),
Id: pbChangeID,
Message: c.Message(),
Operations: pbOperations,
PresenceChange: ToPresenceChange(c.PresenceChange()),
288 changes: 151 additions & 137 deletions api/yorkie/v1/admin.pb.go

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions api/yorkie/v1/admin.proto
Original file line number Diff line number Diff line change
@@ -130,6 +130,7 @@ message GetSnapshotMetaRequest {
message GetSnapshotMetaResponse {
bytes snapshot = 1;
int64 lamport = 2 [jstype = JS_STRING];
VersionVector version_vector = 3;
}

message SearchDocumentsRequest {
Loading
Oops, something went wrong.

1 comment on commit 03928f9

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Go Benchmark

Benchmark suite Current: 03928f9 Previous: 2e72a87 Ratio
BenchmarkDocument/constructor_test 1488 ns/op 1224 B/op 21 allocs/op 1394 ns/op 1224 B/op 21 allocs/op 1.07
BenchmarkDocument/constructor_test - ns/op 1488 ns/op 1394 ns/op 1.07
BenchmarkDocument/constructor_test - B/op 1224 B/op 1224 B/op 1
BenchmarkDocument/constructor_test - allocs/op 21 allocs/op 21 allocs/op 1
BenchmarkDocument/status_test 840 ns/op 1192 B/op 19 allocs/op 850.9 ns/op 1192 B/op 19 allocs/op 0.99
BenchmarkDocument/status_test - ns/op 840 ns/op 850.9 ns/op 0.99
BenchmarkDocument/status_test - B/op 1192 B/op 1192 B/op 1
BenchmarkDocument/status_test - allocs/op 19 allocs/op 19 allocs/op 1
BenchmarkDocument/equals_test 7742 ns/op 7281 B/op 128 allocs/op 7834 ns/op 7281 B/op 128 allocs/op 0.99
BenchmarkDocument/equals_test - ns/op 7742 ns/op 7834 ns/op 0.99
BenchmarkDocument/equals_test - B/op 7281 B/op 7281 B/op 1
BenchmarkDocument/equals_test - allocs/op 128 allocs/op 128 allocs/op 1
BenchmarkDocument/nested_update_test 17086 ns/op 12363 B/op 264 allocs/op 17072 ns/op 12363 B/op 264 allocs/op 1.00
BenchmarkDocument/nested_update_test - ns/op 17086 ns/op 17072 ns/op 1.00
BenchmarkDocument/nested_update_test - B/op 12363 B/op 12363 B/op 1
BenchmarkDocument/nested_update_test - allocs/op 264 allocs/op 264 allocs/op 1
BenchmarkDocument/delete_test 23396 ns/op 15940 B/op 349 allocs/op 23688 ns/op 15940 B/op 349 allocs/op 0.99
BenchmarkDocument/delete_test - ns/op 23396 ns/op 23688 ns/op 0.99
BenchmarkDocument/delete_test - B/op 15940 B/op 15940 B/op 1
BenchmarkDocument/delete_test - allocs/op 349 allocs/op 349 allocs/op 1
BenchmarkDocument/object_test 8813 ns/op 7057 B/op 122 allocs/op 9097 ns/op 7057 B/op 122 allocs/op 0.97
BenchmarkDocument/object_test - ns/op 8813 ns/op 9097 ns/op 0.97
BenchmarkDocument/object_test - B/op 7057 B/op 7057 B/op 1
BenchmarkDocument/object_test - allocs/op 122 allocs/op 122 allocs/op 1
BenchmarkDocument/array_test 29457 ns/op 12187 B/op 278 allocs/op 34526 ns/op 12187 B/op 278 allocs/op 0.85
BenchmarkDocument/array_test - ns/op 29457 ns/op 34526 ns/op 0.85
BenchmarkDocument/array_test - B/op 12187 B/op 12187 B/op 1
BenchmarkDocument/array_test - allocs/op 278 allocs/op 278 allocs/op 1
BenchmarkDocument/text_test 31541 ns/op 15556 B/op 480 allocs/op 32665 ns/op 15556 B/op 480 allocs/op 0.97
BenchmarkDocument/text_test - ns/op 31541 ns/op 32665 ns/op 0.97
BenchmarkDocument/text_test - B/op 15556 B/op 15556 B/op 1
BenchmarkDocument/text_test - allocs/op 480 allocs/op 480 allocs/op 1
BenchmarkDocument/text_composition_test 29196 ns/op 18734 B/op 483 allocs/op 29722 ns/op 18735 B/op 483 allocs/op 0.98
BenchmarkDocument/text_composition_test - ns/op 29196 ns/op 29722 ns/op 0.98
BenchmarkDocument/text_composition_test - B/op 18734 B/op 18735 B/op 1.00
BenchmarkDocument/text_composition_test - allocs/op 483 allocs/op 483 allocs/op 1
BenchmarkDocument/rich_text_test 82987 ns/op 40389 B/op 1177 allocs/op 86117 ns/op 40390 B/op 1177 allocs/op 0.96
BenchmarkDocument/rich_text_test - ns/op 82987 ns/op 86117 ns/op 0.96
BenchmarkDocument/rich_text_test - B/op 40389 B/op 40390 B/op 1.00
BenchmarkDocument/rich_text_test - allocs/op 1177 allocs/op 1177 allocs/op 1
BenchmarkDocument/counter_test 19196 ns/op 12002 B/op 264 allocs/op 19289 ns/op 12002 B/op 264 allocs/op 1.00
BenchmarkDocument/counter_test - ns/op 19196 ns/op 19289 ns/op 1.00
BenchmarkDocument/counter_test - B/op 12002 B/op 12002 B/op 1
BenchmarkDocument/counter_test - allocs/op 264 allocs/op 264 allocs/op 1
BenchmarkDocument/text_edit_gc_100 2954362 ns/op 1659486 B/op 17105 allocs/op 2936187 ns/op 1659203 B/op 17104 allocs/op 1.01
BenchmarkDocument/text_edit_gc_100 - ns/op 2954362 ns/op 2936187 ns/op 1.01
BenchmarkDocument/text_edit_gc_100 - B/op 1659486 B/op 1659203 B/op 1.00
BenchmarkDocument/text_edit_gc_100 - allocs/op 17105 allocs/op 17104 allocs/op 1.00
BenchmarkDocument/text_edit_gc_1000 230464842 ns/op 144381692 B/op 200923 allocs/op 234041890 ns/op 144375734 B/op 200923 allocs/op 0.98
BenchmarkDocument/text_edit_gc_1000 - ns/op 230464842 ns/op 234041890 ns/op 0.98
BenchmarkDocument/text_edit_gc_1000 - B/op 144381692 B/op 144375734 B/op 1.00
BenchmarkDocument/text_edit_gc_1000 - allocs/op 200923 allocs/op 200923 allocs/op 1
BenchmarkDocument/text_split_gc_100 3388950 ns/op 2317518 B/op 16207 allocs/op 3504542 ns/op 2317536 B/op 16207 allocs/op 0.97
BenchmarkDocument/text_split_gc_100 - ns/op 3388950 ns/op 3504542 ns/op 0.97
BenchmarkDocument/text_split_gc_100 - B/op 2317518 B/op 2317536 B/op 1.00
BenchmarkDocument/text_split_gc_100 - allocs/op 16207 allocs/op 16207 allocs/op 1
BenchmarkDocument/text_split_gc_1000 293192557 ns/op 228905524 B/op 203882 allocs/op 294286877 ns/op 228952936 B/op 204104 allocs/op 1.00
BenchmarkDocument/text_split_gc_1000 - ns/op 293192557 ns/op 294286877 ns/op 1.00
BenchmarkDocument/text_split_gc_1000 - B/op 228905524 B/op 228952936 B/op 1.00
BenchmarkDocument/text_split_gc_1000 - allocs/op 203882 allocs/op 204104 allocs/op 1.00
BenchmarkDocument/text_delete_all_10000 11269225 ns/op 5811663 B/op 40683 allocs/op 11569838 ns/op 5810848 B/op 40680 allocs/op 0.97
BenchmarkDocument/text_delete_all_10000 - ns/op 11269225 ns/op 11569838 ns/op 0.97
BenchmarkDocument/text_delete_all_10000 - B/op 5811663 B/op 5810848 B/op 1.00
BenchmarkDocument/text_delete_all_10000 - allocs/op 40683 allocs/op 40680 allocs/op 1.00
BenchmarkDocument/text_delete_all_100000 185062568 ns/op 81907690 B/op 411677 allocs/op 201331911 ns/op 81893996 B/op 411603 allocs/op 0.92
BenchmarkDocument/text_delete_all_100000 - ns/op 185062568 ns/op 201331911 ns/op 0.92
BenchmarkDocument/text_delete_all_100000 - B/op 81907690 B/op 81893996 B/op 1.00
BenchmarkDocument/text_delete_all_100000 - allocs/op 411677 allocs/op 411603 allocs/op 1.00
BenchmarkDocument/text_100 229622 ns/op 120441 B/op 5086 allocs/op 226157 ns/op 120442 B/op 5086 allocs/op 1.02
BenchmarkDocument/text_100 - ns/op 229622 ns/op 226157 ns/op 1.02
BenchmarkDocument/text_100 - B/op 120441 B/op 120442 B/op 1.00
BenchmarkDocument/text_100 - allocs/op 5086 allocs/op 5086 allocs/op 1
BenchmarkDocument/text_1000 2435495 ns/op 1169430 B/op 50090 allocs/op 2430990 ns/op 1169429 B/op 50090 allocs/op 1.00
BenchmarkDocument/text_1000 - ns/op 2435495 ns/op 2430990 ns/op 1.00
BenchmarkDocument/text_1000 - B/op 1169430 B/op 1169429 B/op 1.00
BenchmarkDocument/text_1000 - allocs/op 50090 allocs/op 50090 allocs/op 1
BenchmarkDocument/array_1000 1268110 ns/op 1091662 B/op 11834 allocs/op 1233798 ns/op 1091743 B/op 11834 allocs/op 1.03
BenchmarkDocument/array_1000 - ns/op 1268110 ns/op 1233798 ns/op 1.03
BenchmarkDocument/array_1000 - B/op 1091662 B/op 1091743 B/op 1.00
BenchmarkDocument/array_1000 - allocs/op 11834 allocs/op 11834 allocs/op 1
BenchmarkDocument/array_10000 13523138 ns/op 9799059 B/op 120293 allocs/op 13755128 ns/op 9800130 B/op 120297 allocs/op 0.98
BenchmarkDocument/array_10000 - ns/op 13523138 ns/op 13755128 ns/op 0.98
BenchmarkDocument/array_10000 - B/op 9799059 B/op 9800130 B/op 1.00
BenchmarkDocument/array_10000 - allocs/op 120293 allocs/op 120297 allocs/op 1.00
BenchmarkDocument/array_gc_100 155467 ns/op 133307 B/op 1268 allocs/op 155779 ns/op 133298 B/op 1268 allocs/op 1.00
BenchmarkDocument/array_gc_100 - ns/op 155467 ns/op 155779 ns/op 1.00
BenchmarkDocument/array_gc_100 - B/op 133307 B/op 133298 B/op 1.00
BenchmarkDocument/array_gc_100 - allocs/op 1268 allocs/op 1268 allocs/op 1
BenchmarkDocument/array_gc_1000 1440779 ns/op 1159665 B/op 12884 allocs/op 1442495 ns/op 1159755 B/op 12884 allocs/op 1.00
BenchmarkDocument/array_gc_1000 - ns/op 1440779 ns/op 1442495 ns/op 1.00
BenchmarkDocument/array_gc_1000 - B/op 1159665 B/op 1159755 B/op 1.00
BenchmarkDocument/array_gc_1000 - allocs/op 12884 allocs/op 12884 allocs/op 1
BenchmarkDocument/counter_1000 214075 ns/op 193317 B/op 5773 allocs/op 206241 ns/op 193316 B/op 5773 allocs/op 1.04
BenchmarkDocument/counter_1000 - ns/op 214075 ns/op 206241 ns/op 1.04
BenchmarkDocument/counter_1000 - B/op 193317 B/op 193316 B/op 1.00
BenchmarkDocument/counter_1000 - allocs/op 5773 allocs/op 5773 allocs/op 1
BenchmarkDocument/counter_10000 2238141 ns/op 2088234 B/op 59780 allocs/op 2179176 ns/op 2088246 B/op 59780 allocs/op 1.03
BenchmarkDocument/counter_10000 - ns/op 2238141 ns/op 2179176 ns/op 1.03
BenchmarkDocument/counter_10000 - B/op 2088234 B/op 2088246 B/op 1.00
BenchmarkDocument/counter_10000 - allocs/op 59780 allocs/op 59780 allocs/op 1
BenchmarkDocument/object_1000 1436863 ns/op 1428357 B/op 9851 allocs/op 1407415 ns/op 1428267 B/op 9851 allocs/op 1.02
BenchmarkDocument/object_1000 - ns/op 1436863 ns/op 1407415 ns/op 1.02
BenchmarkDocument/object_1000 - B/op 1428357 B/op 1428267 B/op 1.00
BenchmarkDocument/object_1000 - allocs/op 9851 allocs/op 9851 allocs/op 1
BenchmarkDocument/object_10000 15501757 ns/op 12168012 B/op 100570 allocs/op 15379507 ns/op 12168545 B/op 100572 allocs/op 1.01
BenchmarkDocument/object_10000 - ns/op 15501757 ns/op 15379507 ns/op 1.01
BenchmarkDocument/object_10000 - B/op 12168012 B/op 12168545 B/op 1.00
BenchmarkDocument/object_10000 - allocs/op 100570 allocs/op 100572 allocs/op 1.00
BenchmarkDocument/tree_100 1079145 ns/op 944087 B/op 6106 allocs/op 1025184 ns/op 944082 B/op 6106 allocs/op 1.05
BenchmarkDocument/tree_100 - ns/op 1079145 ns/op 1025184 ns/op 1.05
BenchmarkDocument/tree_100 - B/op 944087 B/op 944082 B/op 1.00
BenchmarkDocument/tree_100 - allocs/op 6106 allocs/op 6106 allocs/op 1
BenchmarkDocument/tree_1000 81893314 ns/op 86460934 B/op 60120 allocs/op 73758339 ns/op 86460819 B/op 60121 allocs/op 1.11
BenchmarkDocument/tree_1000 - ns/op 81893314 ns/op 73758339 ns/op 1.11
BenchmarkDocument/tree_1000 - B/op 86460934 B/op 86460819 B/op 1.00
BenchmarkDocument/tree_1000 - allocs/op 60120 allocs/op 60121 allocs/op 1.00
BenchmarkDocument/tree_10000 10250890997 ns/op 8580972624 B/op 600229 allocs/op 9832968246 ns/op 8580973152 B/op 600230 allocs/op 1.04
BenchmarkDocument/tree_10000 - ns/op 10250890997 ns/op 9832968246 ns/op 1.04
BenchmarkDocument/tree_10000 - B/op 8580972624 B/op 8580973152 B/op 1.00
BenchmarkDocument/tree_10000 - allocs/op 600229 allocs/op 600230 allocs/op 1.00
BenchmarkDocument/tree_delete_all_1000 81818192 ns/op 86992047 B/op 67766 allocs/op 74310643 ns/op 86991630 B/op 67765 allocs/op 1.10
BenchmarkDocument/tree_delete_all_1000 - ns/op 81818192 ns/op 74310643 ns/op 1.10
BenchmarkDocument/tree_delete_all_1000 - B/op 86992047 B/op 86991630 B/op 1.00
BenchmarkDocument/tree_delete_all_1000 - allocs/op 67766 allocs/op 67765 allocs/op 1.00
BenchmarkDocument/tree_edit_gc_100 3964330 ns/op 4121739 B/op 14369 allocs/op 3707453 ns/op 4121803 B/op 14369 allocs/op 1.07
BenchmarkDocument/tree_edit_gc_100 - ns/op 3964330 ns/op 3707453 ns/op 1.07
BenchmarkDocument/tree_edit_gc_100 - B/op 4121739 B/op 4121803 B/op 1.00
BenchmarkDocument/tree_edit_gc_100 - allocs/op 14369 allocs/op 14369 allocs/op 1
BenchmarkDocument/tree_edit_gc_1000 330787183 ns/op 383468936 B/op 145434 allocs/op 308255704 ns/op 383469210 B/op 145422 allocs/op 1.07
BenchmarkDocument/tree_edit_gc_1000 - ns/op 330787183 ns/op 308255704 ns/op 1.07
BenchmarkDocument/tree_edit_gc_1000 - B/op 383468936 B/op 383469210 B/op 1.00
BenchmarkDocument/tree_edit_gc_1000 - allocs/op 145434 allocs/op 145422 allocs/op 1.00
BenchmarkDocument/tree_split_gc_100 2701084 ns/op 2387628 B/op 10354 allocs/op 2487249 ns/op 2387597 B/op 10354 allocs/op 1.09
BenchmarkDocument/tree_split_gc_100 - ns/op 2701084 ns/op 2487249 ns/op 1.09
BenchmarkDocument/tree_split_gc_100 - B/op 2387628 B/op 2387597 B/op 1.00
BenchmarkDocument/tree_split_gc_100 - allocs/op 10354 allocs/op 10354 allocs/op 1
BenchmarkDocument/tree_split_gc_1000 201472661 ns/op 221993574 B/op 112275 allocs/op 186203922 ns/op 221993516 B/op 112267 allocs/op 1.08
BenchmarkDocument/tree_split_gc_1000 - ns/op 201472661 ns/op 186203922 ns/op 1.08
BenchmarkDocument/tree_split_gc_1000 - B/op 221993574 B/op 221993516 B/op 1.00
BenchmarkDocument/tree_split_gc_1000 - allocs/op 112275 allocs/op 112267 allocs/op 1.00
BenchmarkRPC/client_to_server 385605483 ns/op 18060266 B/op 186689 allocs/op 378787162 ns/op 18048368 B/op 186696 allocs/op 1.02
BenchmarkRPC/client_to_server - ns/op 385605483 ns/op 378787162 ns/op 1.02
BenchmarkRPC/client_to_server - B/op 18060266 B/op 18048368 B/op 1.00
BenchmarkRPC/client_to_server - allocs/op 186689 allocs/op 186696 allocs/op 1.00
BenchmarkRPC/client_to_client_via_server 651700228 ns/op 34892660 B/op 366628 allocs/op 657484802 ns/op 34108152 B/op 366764 allocs/op 0.99
BenchmarkRPC/client_to_client_via_server - ns/op 651700228 ns/op 657484802 ns/op 0.99
BenchmarkRPC/client_to_client_via_server - B/op 34892660 B/op 34108152 B/op 1.02
BenchmarkRPC/client_to_client_via_server - allocs/op 366628 allocs/op 366764 allocs/op 1.00
BenchmarkRPC/attach_large_document 1288534811 ns/op 1915472320 B/op 7877 allocs/op 1499676164 ns/op 1891883224 B/op 7925 allocs/op 0.86
BenchmarkRPC/attach_large_document - ns/op 1288534811 ns/op 1499676164 ns/op 0.86
BenchmarkRPC/attach_large_document - B/op 1915472320 B/op 1891883224 B/op 1.01
BenchmarkRPC/attach_large_document - allocs/op 7877 allocs/op 7925 allocs/op 0.99
BenchmarkRPC/adminCli_to_server 556656863 ns/op 36393516 B/op 289679 allocs/op 553317835 ns/op 35990764 B/op 289663 allocs/op 1.01
BenchmarkRPC/adminCli_to_server - ns/op 556656863 ns/op 553317835 ns/op 1.01
BenchmarkRPC/adminCli_to_server - B/op 36393516 B/op 35990764 B/op 1.01
BenchmarkRPC/adminCli_to_server - allocs/op 289679 allocs/op 289663 allocs/op 1.00
BenchmarkLocker 66.49 ns/op 16 B/op 1 allocs/op 66.68 ns/op 16 B/op 1 allocs/op 1.00
BenchmarkLocker - ns/op 66.49 ns/op 66.68 ns/op 1.00
BenchmarkLocker - B/op 16 B/op 16 B/op 1
BenchmarkLocker - allocs/op 1 allocs/op 1 allocs/op 1
BenchmarkLockerParallel 39.45 ns/op 0 B/op 0 allocs/op 39.75 ns/op 0 B/op 0 allocs/op 0.99
BenchmarkLockerParallel - ns/op 39.45 ns/op 39.75 ns/op 0.99
BenchmarkLockerParallel - B/op 0 B/op 0 B/op 1
BenchmarkLockerParallel - allocs/op 0 allocs/op 0 allocs/op 1
BenchmarkLockerMoreKeys 143.3 ns/op 15 B/op 0 allocs/op 146 ns/op 15 B/op 0 allocs/op 0.98
BenchmarkLockerMoreKeys - ns/op 143.3 ns/op 146 ns/op 0.98
BenchmarkLockerMoreKeys - B/op 15 B/op 15 B/op 1
BenchmarkLockerMoreKeys - allocs/op 0 allocs/op 0 allocs/op 1
BenchmarkChange/Push_10_Changes 4007864 ns/op 135832 B/op 1436 allocs/op 4015763 ns/op 136211 B/op 1443 allocs/op 1.00
BenchmarkChange/Push_10_Changes - ns/op 4007864 ns/op 4015763 ns/op 1.00
BenchmarkChange/Push_10_Changes - B/op 135832 B/op 136211 B/op 1.00
BenchmarkChange/Push_10_Changes - allocs/op 1436 allocs/op 1443 allocs/op 1.00
BenchmarkChange/Push_100_Changes 15472126 ns/op 719619 B/op 8057 allocs/op 15289567 ns/op 714402 B/op 8062 allocs/op 1.01
BenchmarkChange/Push_100_Changes - ns/op 15472126 ns/op 15289567 ns/op 1.01
BenchmarkChange/Push_100_Changes - B/op 719619 B/op 714402 B/op 1.01
BenchmarkChange/Push_100_Changes - allocs/op 8057 allocs/op 8062 allocs/op 1.00
BenchmarkChange/Push_1000_Changes 123679767 ns/op 7079297 B/op 77054 allocs/op 124170015 ns/op 7044849 B/op 77051 allocs/op 1.00
BenchmarkChange/Push_1000_Changes - ns/op 123679767 ns/op 124170015 ns/op 1.00
BenchmarkChange/Push_1000_Changes - B/op 7079297 B/op 7044849 B/op 1.00
BenchmarkChange/Push_1000_Changes - allocs/op 77054 allocs/op 77051 allocs/op 1.00
BenchmarkChange/Pull_10_Changes 2973078 ns/op 109604 B/op 1154 allocs/op 3027472 ns/op 109473 B/op 1154 allocs/op 0.98
BenchmarkChange/Pull_10_Changes - ns/op 2973078 ns/op 3027472 ns/op 0.98
BenchmarkChange/Pull_10_Changes - B/op 109604 B/op 109473 B/op 1.00
BenchmarkChange/Pull_10_Changes - allocs/op 1154 allocs/op 1154 allocs/op 1
BenchmarkChange/Pull_100_Changes 4513834 ns/op 343420 B/op 4700 allocs/op 4636086 ns/op 342920 B/op 4700 allocs/op 0.97
BenchmarkChange/Pull_100_Changes - ns/op 4513834 ns/op 4636086 ns/op 0.97
BenchmarkChange/Pull_100_Changes - B/op 343420 B/op 342920 B/op 1.00
BenchmarkChange/Pull_100_Changes - allocs/op 4700 allocs/op 4700 allocs/op 1
BenchmarkChange/Pull_1000_Changes 10202636 ns/op 2227365 B/op 42499 allocs/op 10410343 ns/op 2211028 B/op 42425 allocs/op 0.98
BenchmarkChange/Pull_1000_Changes - ns/op 10202636 ns/op 10410343 ns/op 0.98
BenchmarkChange/Pull_1000_Changes - B/op 2227365 B/op 2211028 B/op 1.01
BenchmarkChange/Pull_1000_Changes - allocs/op 42499 allocs/op 42425 allocs/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot 17385505 ns/op 874465 B/op 8064 allocs/op 17687341 ns/op 858857 B/op 8066 allocs/op 0.98
BenchmarkSnapshot/Push_3KB_snapshot - ns/op 17385505 ns/op 17687341 ns/op 0.98
BenchmarkSnapshot/Push_3KB_snapshot - B/op 874465 B/op 858857 B/op 1.02
BenchmarkSnapshot/Push_3KB_snapshot - allocs/op 8064 allocs/op 8066 allocs/op 1.00
BenchmarkSnapshot/Push_30KB_snapshot 125946731 ns/op 7421479 B/op 77301 allocs/op 127669933 ns/op 7453005 B/op 77798 allocs/op 0.99
BenchmarkSnapshot/Push_30KB_snapshot - ns/op 125946731 ns/op 127669933 ns/op 0.99
BenchmarkSnapshot/Push_30KB_snapshot - B/op 7421479 B/op 7453005 B/op 1.00
BenchmarkSnapshot/Push_30KB_snapshot - allocs/op 77301 allocs/op 77798 allocs/op 0.99
BenchmarkSnapshot/Pull_3KB_snapshot 6882672 ns/op 1081928 B/op 17962 allocs/op 7089280 ns/op 1068758 B/op 17956 allocs/op 0.97
BenchmarkSnapshot/Pull_3KB_snapshot - ns/op 6882672 ns/op 7089280 ns/op 0.97
BenchmarkSnapshot/Pull_3KB_snapshot - B/op 1081928 B/op 1068758 B/op 1.01
BenchmarkSnapshot/Pull_3KB_snapshot - allocs/op 17962 allocs/op 17956 allocs/op 1.00
BenchmarkSnapshot/Pull_30KB_snapshot 18197696 ns/op 8681803 B/op 175275 allocs/op 19072362 ns/op 8682283 B/op 175436 allocs/op 0.95
BenchmarkSnapshot/Pull_30KB_snapshot - ns/op 18197696 ns/op 19072362 ns/op 0.95
BenchmarkSnapshot/Pull_30KB_snapshot - B/op 8681803 B/op 8682283 B/op 1.00
BenchmarkSnapshot/Pull_30KB_snapshot - allocs/op 175275 allocs/op 175436 allocs/op 1.00
BenchmarkSync/memory_sync_10_test 6913 ns/op 1286 B/op 38 allocs/op 7086 ns/op 1286 B/op 38 allocs/op 0.98
BenchmarkSync/memory_sync_10_test - ns/op 6913 ns/op 7086 ns/op 0.98
BenchmarkSync/memory_sync_10_test - B/op 1286 B/op 1286 B/op 1
BenchmarkSync/memory_sync_10_test - allocs/op 38 allocs/op 38 allocs/op 1
BenchmarkSync/memory_sync_100_test 52484 ns/op 8649 B/op 273 allocs/op 52651 ns/op 8659 B/op 274 allocs/op 1.00
BenchmarkSync/memory_sync_100_test - ns/op 52484 ns/op 52651 ns/op 1.00
BenchmarkSync/memory_sync_100_test - B/op 8649 B/op 8659 B/op 1.00
BenchmarkSync/memory_sync_100_test - allocs/op 273 allocs/op 274 allocs/op 1.00
BenchmarkSync/memory_sync_1000_test 592840 ns/op 74557 B/op 2120 allocs/op 594605 ns/op 74721 B/op 2131 allocs/op 1.00
BenchmarkSync/memory_sync_1000_test - ns/op 592840 ns/op 594605 ns/op 1.00
BenchmarkSync/memory_sync_1000_test - B/op 74557 B/op 74721 B/op 1.00
BenchmarkSync/memory_sync_1000_test - allocs/op 2120 allocs/op 2131 allocs/op 0.99
BenchmarkSync/memory_sync_10000_test 7175536 ns/op 762802 B/op 20538 allocs/op 8792841 ns/op 762484 B/op 20517 allocs/op 0.82
BenchmarkSync/memory_sync_10000_test - ns/op 7175536 ns/op 8792841 ns/op 0.82
BenchmarkSync/memory_sync_10000_test - B/op 762802 B/op 762484 B/op 1.00
BenchmarkSync/memory_sync_10000_test - allocs/op 20538 allocs/op 20517 allocs/op 1.00
BenchmarkTextEditing 18940576861 ns/op 9133927184 B/op 21481282 allocs/op 23150796865 ns/op 9133744248 B/op 21483422 allocs/op 0.82
BenchmarkTextEditing - ns/op 18940576861 ns/op 23150796865 ns/op 0.82
BenchmarkTextEditing - B/op 9133927184 B/op 9133744248 B/op 1.00
BenchmarkTextEditing - allocs/op 21481282 allocs/op 21483422 allocs/op 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.