ProfessionalCassandrasupportandservicesTuesday,August10,2010Cassandra:Present&FutureJonathanEllis@spycedTuesday,August10,2010Cassandra0.6&0.7JonathanEllis@spycedTuesday,August10,2010Quietchangeofpolicy•0.5.1wasbugfixesonly•Tooearlytobestrictaboutbugfix-onlypolicyinstablebranch,especiallyw/0.7beinglonger/morebreak-y•Maybeafter1.0?Tuesday,August10,2010037575011251500Jan(0.5)Feb(0.5.1)MarApr(0.6,0.6.1)May(0.6.2)Jun(0.6.3)Jul(0.6.4)mailssentTuesday,August10,2010Lotsofbugfixes•85issuesmarkedResolved/Fixedin0.6branchafter0.6releasedTuesday,August10,2010Runtimeconfiguration•concurrentreads,writes(0.6.2)•makingiteasiertobandageyourfootafteryoushootit•PhiConvictThreshold(0.6.2)Tuesday,August10,2010Performance•JVMGCdefaults(0.6.2)•Fastercommitlog(0.6.2)•Fasterrangeslice,Hadoopjobs(0.6.1,2)•Betterparallelizationofmultiget(0.6.4)•UTF8Type,UUIDTypeoptimizations(0.6.5)Tuesday,August10,2010Bulletproofing•HHdisable(0.6.2)•compactionpriority(0.6.3)•HHhourlyscan(0.6.3)•JMXmetricsforrow-levelbloomfilters(0.6.3)•Flowcontrol(0.6.4,5)•HHpaging(0.6.5)•Dynamicsnitch(0.6.5)Tuesday,August10,2010HintedHandoff•0.6.0:sendhintstonaturalreplicas•0.6.0:fixrow-levelconcurrencybottleneck•0.6.2:optiontodisableentirely•0.6.3:removehourlyscan•0.6.4:lowerpriority•0.6.5:pagingoflargehintedrows•0.7.0:largerowsTuesday,August10,2010WhykeepHHaround?:+UseThreadPriorities\-XX:ThreadPriorityPolicy=42\-Dcassandra.compaction.priority=1\ExtendedtoHHin0.6.4Tuesday,August10,2010filters•o.a.c.db:ColumnFamilyStores•getBloomFilterFalsePositives•[notinnodetoolyet]Tuesday,August10,2010Flowcontrolin0.5•Whybackpressuredoesn’tfitCassandraTuesday,August10,2010FlowControlin0.6.4•Replicanodesdrophopelessrequestsonthefloor•Coordinatornodeisunaffected•TimedOutExceptionsignalsclienttobackoff•RequiresenoughmemorytobufferRPCTimeout’sworthofrequests•(Intheshortterm,you’restillscrewed)Tuesday,August10,2010FlowControl,0.6.4IncomingTcpConnectionMessageDeserializerMutationReadUncappedCappedat4096Tuesday,August10,2010IncomingTcpConnectionMessageDeserializerMutationReadGossipTuesday,August10,2010FlowControl,0.6.5IncomingTcpConnectionMutationReadGossipUncappedTuesday,August10,2010Dynamicsnitch•sortByProximityTuesday,August10,2010Openproblems•Linux/mmap/swapunholytrio(0.6.5)•Memoryfragmentation(0.6.5?)•Compactioneffectoncaches(0.7.1?)Tuesday,August10,2010mmapandswap•Theproblem•Mitigations•mmap_index_only•swappiness=0•turnoffswap•mlockallatstartup(Xms=Xmx)Tuesday,August10,2010GCFragmentation•CulpritofinfamousCASSANDRA-1014?•Mitigation:tunewithmuchlargernewgeneration/tenuringthreshold?Tuesday,August10,2010Compactionandcaches•CompactionswreckstheOSfscache•WrecksCassandrakeycache,too•(butnotrowcache)Tuesday,August10,20100.7Tuesday,August10,2010Newin0.7•liveschemachanges•largerows•secondaryindexes•efficientStreaming•DatacenterStrategyTuesday,August10,2010Liveschemachanges•Details:•0.6:smallerof{2GB,memorylimit}•0.7:in_memory_compaction_limit_in_mbTuesday,August10,2010SecondaryindexesTuesday,August10,2010ALTWF(A-L]Streamingin0.6Tuesday,August10,2010ALTWF(A-F](F-L](A-F]Tuesday,August10,2010ALTWFDataIndexFilterTuesday,August10,2010ALTWFIndexFilterStreamingin0.7Tuesday,August10,2010DatacenterStrategy•RackAwareStrategyistunedfor3replicasand2datacenters•DSallowsconfiguringreplicasperdatacenter,perKeyspaceTuesday,August10,2010Minorfeaturesin0.7•read_repair_chance•per-keyspacerequestscheduling•HadoopOutputFormat•PerCFwhatusedtobeglobal(gc_grace_seconds,memtablethresholds)Tuesday,August10,20100.7APIchanges•Stringkeysbecomebyte[]•Thriftkeyspaceargumentmovedtoset_keyspace•i64timestampbecomesClock•SlicePredicatefor_countmethodsTuesday,August10,20100.7performance•Readsroughly100%faster,thankslargelytoremovingStringcreation•Row-cachedreadsupto8xfasterafteroptimizationsbytjakeandjbellis•Optimizationsforreadsoflargerows•0.7.1?~20%improvementeverywherefromThriftoptimizationsTuesday,August10,2010Thrift•OOMsonmalformedpackets•PythonUnicodestringissues•PHPsupportisbuggyandmaintainerlessTuesday,August10,2010After0.7.0•IndexOperator.GT•Triggers/plugins•Avro?•On-diskdataformatimprovements(Compression,heirarchicaldata?)•AuthTuesday,August10,2010QuestionsTuesday,August10,2010