@@ -93,6 +93,7 @@ func BenchmarkQuerier(b *testing.B) {
9393
9494func benchmarkPostingsForMatchers (b * testing.B , ir IndexReader ) {
9595 n1 := labels .MustNewMatcher (labels .MatchEqual , "n" , "1" + postingsBenchSuffix )
96+ nX := labels .MustNewMatcher (labels .MatchNotEqual , "n" , "X" + postingsBenchSuffix )
9697
9798 jFoo := labels .MustNewMatcher (labels .MatchEqual , "j" , "foo" )
9899 jNotFoo := labels .MustNewMatcher (labels .MatchNotEqual , "j" , "foo" )
@@ -109,35 +110,50 @@ func benchmarkPostingsForMatchers(b *testing.B, ir IndexReader) {
109110 iNot2Star := labels .MustNewMatcher (labels .MatchNotRegexp , "i" , "^2.*$" )
110111 iNotStar2Star := labels .MustNewMatcher (labels .MatchNotRegexp , "i" , "^.*2.*$" )
111112 jFooBar := labels .MustNewMatcher (labels .MatchRegexp , "j" , "foo|bar" )
113+ jXXXYYY := labels .MustNewMatcher (labels .MatchRegexp , "j" , "XXX|YYY" )
114+ jXplus := labels .MustNewMatcher (labels .MatchRegexp , "j" , "X.+" )
112115 iCharSet := labels .MustNewMatcher (labels .MatchRegexp , "i" , "1[0-9]" )
113116 iAlternate := labels .MustNewMatcher (labels .MatchRegexp , "i" , "(1|2|3|4|5|6|20|55)" )
117+ iXYZ := labels .MustNewMatcher (labels .MatchRegexp , "i" , "X|Y|Z" )
114118 cases := []struct {
115119 name string
116120 matchers []* labels.Matcher
117121 }{
118122 {`n="1"` , []* labels.Matcher {n1 }},
123+ {`n="X"` , []* labels.Matcher {nX }},
119124 {`n="1",j="foo"` , []* labels.Matcher {n1 , jFoo }},
125+ {`n="X",j="foo"` , []* labels.Matcher {nX , jFoo }},
120126 {`j="foo",n="1"` , []* labels.Matcher {jFoo , n1 }},
121127 {`n="1",j!="foo"` , []* labels.Matcher {n1 , jNotFoo }},
128+ {`n="X",j!="foo"` , []* labels.Matcher {nX , jNotFoo }},
122129 {`i=~"1[0-9]",j=~"foo|bar"` , []* labels.Matcher {iCharSet , jFooBar }},
123130 {`j=~"foo|bar"` , []* labels.Matcher {jFooBar }},
131+ {`j=~"XXX|YYY"` , []* labels.Matcher {jXXXYYY }},
132+ {`j=~"X.+"` , []* labels.Matcher {jXplus }},
124133 {`i=~"(1|2|3|4|5|6|20|55)"` , []* labels.Matcher {iAlternate }},
134+ {`i=~"X|Y|Z"` , []* labels.Matcher {iXYZ }},
125135 {`i=~".*"` , []* labels.Matcher {iStar }},
126136 {`i=~"1.*"` , []* labels.Matcher {i1Star }},
127137 {`i=~".*1"` , []* labels.Matcher {iStar1 }},
128138 {`i=~".+"` , []* labels.Matcher {iPlus }},
139+ {`i=~".+",j=~"X.+"` , []* labels.Matcher {iPlus , jXplus }},
129140 {`i=~""` , []* labels.Matcher {iEmptyRe }},
130141 {`i!=""` , []* labels.Matcher {iNotEmpty }},
131142 {`n="1",i=~".*",j="foo"` , []* labels.Matcher {n1 , iStar , jFoo }},
143+ {`n="X",i=~".*",j="foo"` , []* labels.Matcher {nX , iStar , jFoo }},
132144 {`n="1",i=~".*",i!="2",j="foo"` , []* labels.Matcher {n1 , iStar , iNot2 , jFoo }},
133145 {`n="1",i!=""` , []* labels.Matcher {n1 , iNotEmpty }},
134146 {`n="1",i!="",j="foo"` , []* labels.Matcher {n1 , iNotEmpty , jFoo }},
147+ {`n="1",i!="",j=~"X.+"` , []* labels.Matcher {n1 , iNotEmpty , jXplus }},
148+ {`n="1",i!="",j=~"XXX|YYY"` , []* labels.Matcher {n1 , iNotEmpty , jXXXYYY }},
149+ {`n="1",i=~"X|Y|Z",j="foo"` , []* labels.Matcher {n1 , iXYZ , jFoo }},
135150 {`n="1",i=~".+",j="foo"` , []* labels.Matcher {n1 , iPlus , jFoo }},
136151 {`n="1",i=~"1.+",j="foo"` , []* labels.Matcher {n1 , i1Plus , jFoo }},
137152 {`n="1",i=~".*1.*",j="foo"` , []* labels.Matcher {n1 , iStar1Star , jFoo }},
138153 {`n="1",i=~".+",i!="2",j="foo"` , []* labels.Matcher {n1 , iPlus , iNot2 , jFoo }},
139154 {`n="1",i=~".+",i!~"2.*",j="foo"` , []* labels.Matcher {n1 , iPlus , iNot2Star , jFoo }},
140155 {`n="1",i=~".+",i!~".*2.*",j="foo"` , []* labels.Matcher {n1 , iPlus , iNotStar2Star , jFoo }},
156+ {`n="X",i=~".+",i!~".*2.*",j="foo"` , []* labels.Matcher {nX , iPlus , iNotStar2Star , jFoo }},
141157 }
142158
143159 for _ , c := range cases {
@@ -154,7 +170,10 @@ func benchmarkLabelValuesWithMatchers(b *testing.B, ir IndexReader) {
154170 i1 := labels .MustNewMatcher (labels .MatchEqual , "i" , "1" )
155171 iStar := labels .MustNewMatcher (labels .MatchRegexp , "i" , "^.*$" )
156172 jNotFoo := labels .MustNewMatcher (labels .MatchNotEqual , "j" , "foo" )
173+ jXXXYYY := labels .MustNewMatcher (labels .MatchRegexp , "j" , "XXX|YYY" )
174+ jXplus := labels .MustNewMatcher (labels .MatchRegexp , "j" , "X.+" )
157175 n1 := labels .MustNewMatcher (labels .MatchEqual , "n" , "1" + postingsBenchSuffix )
176+ nX := labels .MustNewMatcher (labels .MatchNotEqual , "n" , "X" + postingsBenchSuffix )
158177 nPlus := labels .MustNewMatcher (labels .MatchRegexp , "i" , "^.+$" )
159178
160179 cases := []struct {
@@ -166,6 +185,9 @@ func benchmarkLabelValuesWithMatchers(b *testing.B, ir IndexReader) {
166185 {`i with n="1"` , "i" , []* labels.Matcher {n1 }},
167186 {`i with n="^.+$"` , "i" , []* labels.Matcher {nPlus }},
168187 {`i with n="1",j!="foo"` , "i" , []* labels.Matcher {n1 , jNotFoo }},
188+ {`i with n="1",j=~"X.+"` , "i" , []* labels.Matcher {n1 , jXplus }},
189+ {`i with n="1",j=~"XXX|YYY"` , "i" , []* labels.Matcher {n1 , jXXXYYY }},
190+ {`i with n="X",j!="foo"` , "i" , []* labels.Matcher {nX , jNotFoo }},
169191 {`i with n="1",i=~"^.*$",j!="foo"` , "i" , []* labels.Matcher {n1 , iStar , jNotFoo }},
170192 // n has 10 values.
171193 {`n with j!="foo"` , "n" , []* labels.Matcher {jNotFoo }},
0 commit comments