Skip to content

Instantly share code, notes, and snippets.

View belliottsmith's full-sized avatar

Benedict Elliott Smith belliottsmith

View GitHub Profile
* Significant Bugs
* OutboundMessagingConnection
* No limit on number of threads processing single threaded queue (undefined behaviour - possibly lost messages, duplicate messages, corrupt state and kill connection indefinitely)
* OMC.close() invokes a blocking action on the eventLoop. On the large message connection this could be a temporary deadlock, as the message processing thread cannot make progress until the eventLoop flushes, but the eventLoop is blocked on the large message connection thread terminating and running its cleanup. This is only avoided because there is a 5s limit to how long the eventLoop will pause for, but for these five seconds all work would stop for this event loop.
* If this deadlock occurs, cleanup is never run and the backlog remains forever - with a permanent GC root preventing it from being collected
* Large message delivery with a backlog might never shed messages, as current time only refreshed once queue is exhausted. Since expiry ca
@belliottsmith
belliottsmith / BSTBench.java
Created July 6, 2018 22:23
CASSANDRA-7282: Modified benchmark
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"
# Command line suggestions
# user
# ops(insert=100,latest=100,point=10,range=1)
# n=1B
# -rate threads=50
# -pop seq=1..1M
# contents=SORTED
# read-lookback=uniform(1..1M)
# -insert visits=fixed(100K)
# revisit=uniform(1..1M)"