Lastly I wonder if that number is very same from every node you
connect your nodetool to. Do all nodes see very similar false
positives ratio / number?

On Wed, 17 Apr 2019 at 21:41, Stefan Miklosovic
<stefan.mikloso...@instaclustr.com> wrote:
>
> One thing comes to my mind but my reasoning is questionable as I am
> not an expert in this.
>
> If you think about this, the whole concept of Bloom filter is to check
> if some record is in particular SSTable. False positive mean that,
> obviously, filter thought it was there but in fact it is not. So
> Cassandra did a look unnecessarily. Why does it think that it is there
> in such number of cases? You either make a lot of same requests on
> same partition key over time hence querying same data over and over
> again (but would not that data be cached?) or there was a lot of data
> written with same partition key so it thinks it is there but
> clustering column is different. As ts is of type timeuuid, isnt it
> true that you are doing a lot of queries with some date? It might be
> true that hash is done only on partition keys and not on clustering
> columns so filter gives you "yes" and it goes there, checks it
> clustering column is equal what you queried and its not there. But as
> I say I might be wrong ...
>
> More to it, your read_repair_chance is 0.0 so it will never do a
> repair after successful read (e.g. you have rf 3 and cl quorum so one
> node is somehow behind) so if you dont run repairs maybe it is just
> somehow unsychronized but that is really just my guess.
>
> On Wed, 17 Apr 2019 at 21:39, Martin Mačura <m.mac...@gmail.com> wrote:
> >
> > We cannot run any repairs on these tables.  Whenever we tried it 
> > (incremental or full or partitioner range), it caused a node to run out of 
> > disk space during anticompaction.  We'll try again once Cassandra 4.0 is 
> > released.
> >
> > On Wed, Apr 17, 2019 at 1:07 PM Stefan Miklosovic 
> > <stefan.mikloso...@instaclustr.com> wrote:
> >>
> >> if you invoke nodetool it gets false positives number from this metric
> >>
> >> https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/metrics/TableMetrics.java#L564-L578
> >>
> >> You get high false positives so this accumulates them
> >>
> >> https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/metrics/TableMetrics.java#L572
> >>
> >> If you follow that, that number is computed here
> >>
> >> https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/io/sstable/BloomFilterTracker.java#L44-L55
> >>
> >> In order to have that number so high, the difference has to be so big
> >> so lastFalsePositiveCount is imho significantly lower
> >>
> >> False positives are ever increased only in BigTableReader where it get
> >> complicated very quickly and I am not sure why it is called to be
> >> honest.
> >>
> >> Is all fine with db as such? Do you run repairs? Does that number
> >> increses or decreases over time? Has repair or compaction some effect
> >> on it?
> >>
> >> On Wed, 17 Apr 2019 at 20:48, Martin Mačura <m.mac...@gmail.com> wrote:
> >> >
> >> > Both tables use the default bloom_filter_fp_chance of 0.01 ...
> >> >
> >> > CREATE TABLE ... (
> >> >    a int,
> >> >    b int,
> >> >    bucket timestamp,
> >> >    ts timeuuid,
> >> >    c int,
> >> > ...
> >> >    PRIMARY KEY ((a, b, bucket), ts, c)
> >> > ) WITH CLUSTERING ORDER BY (ts DESC, monitor ASC)
> >> >    AND bloom_filter_fp_chance = 0.01
> >> >    AND compaction = {'class': 
> >> > 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy', 
> >> > 'compaction_window_size': '1', 'compaction_window_unit': 'DAYS', 
> >> > 'tombstone_threshold': '0.9', 'unchecked_tombstone_compaction':
> >> > 'false'}
> >> >    AND dclocal_read_repair_chance = 0.0
> >> >    AND default_time_to_live = 63072000
> >> >    AND gc_grace_seconds = 10800
> >> > ...
> >> >    AND read_repair_chance = 0.0
> >> >    AND speculative_retry = 'NONE';
> >> >
> >> >
> >> > CREATE TABLE ... (
> >> >    c int,
> >> >    b int,
> >> >    bucket timestamp,
> >> >    ts timeuuid,
> >> > ...
> >> >    PRIMARY KEY ((c, b, bucket), ts)
> >> > ) WITH CLUSTERING ORDER BY (ts DESC)
> >> >    AND bloom_filter_fp_chance = 0.01
> >> >    AND compaction = {'class': 
> >> > 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy', 
> >> > 'compaction_window_size': '1', 'compaction_window_unit': 'DAYS', 
> >> > 'tombstone_threshold': '0.9', 'unchecked_tombstone_compaction':
> >> > 'false'}
> >> >    AND dclocal_read_repair_chance = 0.0
> >> >    AND default_time_to_live = 63072000
> >> >    AND gc_grace_seconds = 10800
> >> > ...
> >> >    AND read_repair_chance = 0.0
> >> >    AND speculative_retry = 'NONE';
> >> >
> >> > On Wed, Apr 17, 2019 at 12:25 PM Stefan Miklosovic 
> >> > <stefan.mikloso...@instaclustr.com> wrote:
> >> >>
> >> >> What is your bloom_filter_fp_chance for either table? I guess it is
> >> >> bigger for the first one, bigger that number is between 0 and 1, less
> >> >> memory it will use (17 MiB against 54.9 Mib) which means more false
> >> >> positives you will get.
> >> >>
> >> >> On Wed, 17 Apr 2019 at 19:59, Martin Mačura <m.mac...@gmail.com> wrote:
> >> >> >
> >> >> > Hi,
> >> >> > I have a table with poor bloom filter false ratio:
> >> >> >                SSTable count: 1223
> >> >> >                Space used (live): 726.58 GiB
> >> >> >                Number of partitions (estimate): 8592749
> >> >> >                Bloom filter false positives: 35796352
> >> >> >                Bloom filter false ratio: 0.68472
> >> >> >                Bloom filter space used: 17.82 MiB
> >> >> >                Compacted partition maximum bytes: 386857368
> >> >> >
> >> >> > It's a time series, TWCS compaction, window size 1 day, data 
> >> >> > partitioned in daily buckets, TTL 2 years.
> >> >> >
> >> >> > I have another table with a similar schema, but it is not affected 
> >> >> > for some reason:
> >> >> >                SSTable count: 1114
> >> >> >                Space used (live): 329.87 GiB
> >> >> >                Number of partitions (estimate): 25460768
> >> >> >                Bloom filter false positives: 156942
> >> >> >                Bloom filter false ratio: 0.00010
> >> >> >                Bloom filter space used: 54.9 MiB
> >> >> >                Compacted partition maximum bytes: 20924300
> >> >> >
> >> >> > Thanks for any advice,
> >> >> >
> >> >> > Martin
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
> >> >> For additional commands, e-mail: user-h...@cassandra.apache.org
> >> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
> >> For additional commands, e-mail: user-h...@cassandra.apache.org
> >>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
For additional commands, e-mail: user-h...@cassandra.apache.org

Reply via email to