<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Aquiles</title><link>http://aquiles.codeplex.com/project/feeds/rss</link><description>Aquiles is a .NET &amp;#40;v3.5 or above&amp;#41; Client for Apache Cassandra version 0.6.X or above using Thrift API. Basically it is a , thread-safe and configurable solution that offers a look-like use as you were connecting to a SQL Database, node balancing and defensive node health check.</description><item><title>Reopened Issue: divide by zero in SizeControlledConnectionPool.controlIdleClientSizeMethod [11340]</title><link>http://aquiles.codeplex.com/workitem/11340</link><description>I was testing the library with a basic configuration &amp;#40;see below&amp;#41; and my server reported a divide by zero exception in SizeControlledConnectionPool.controlIdleClientSizeMethod.  I think it&amp;#39;s because I did not specify the magicNumber in the config and the defaults aren&amp;#39;t being properly applied.  From the code it looks like it only sets the default values on a parse failure and not if the key&amp;#47;value does not exist in the SpecialConnectionParameterCollection.  Once I added the magicNumber to the config it worked fine.&lt;br /&gt;&amp;#160;&lt;br /&gt;Also, it wasn&amp;#39;t a problem but you might consider moving the creation of the TimerTask for controlIdleClientSizeMethod to the Initialize method to guarantee that all the settings have been initialized before the first time the TimerTask is triggered.&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#9;&amp;#60;aquilesConfiguration&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#60;&amp;#33;--&amp;#60;loggingManager&amp;#62;Aquiles.Test.Logging.Logger,Aquiles.Test&amp;#60;&amp;#47;loggingManager&amp;#62;--&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#60;clusters&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#60;add friendlyName&amp;#61;&amp;#34;Service&amp;#34;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;connection poolType&amp;#61;&amp;#34;SIZECONTROLLEDPOOL&amp;#34; factoryType&amp;#61;&amp;#34;BUFFERED&amp;#34; &amp;#47;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;endpointManager type&amp;#61;&amp;#34;ROUNDROBIN&amp;#34; defaultTimeout&amp;#61;&amp;#34;6000&amp;#34;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;cassandraEndpoints&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;add address&amp;#61;&amp;#34;RT3&amp;#34; port&amp;#61;&amp;#34;9160&amp;#34;&amp;#47;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;&amp;#47;cassandraEndpoints&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;&amp;#47;endpointManager&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#60;&amp;#47;add&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#60;&amp;#47;clusters&amp;#62;&lt;br /&gt;&amp;#9;&amp;#60;&amp;#47;aquilesConfiguration&amp;#62;&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Fri, 14 Jun 2013 07:16:10 GMT</pubDate><guid isPermaLink="false">Reopened Issue: divide by zero in SizeControlledConnectionPool.controlIdleClientSizeMethod [11340] 20130614071610A</guid></item><item><title>Reopened Issue: DeleteCommand validation exception when column value is null [11456]</title><link>http://aquiles.codeplex.com/workitem/11456</link><description>When using a DeleteCommand the input column must contain a not null value even though it is not actually needed for the deletation operation.&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Fri, 14 Jun 2013 07:16:10 GMT</pubDate><guid isPermaLink="false">Reopened Issue: DeleteCommand validation exception when column value is null [11456] 20130614071610A</guid></item><item><title>Reopened Issue: BatchMutateCommand with SuperColumns over a Standard ColumnFamily [11744]</title><link>http://aquiles.codeplex.com/workitem/11744</link><description>BatchMutateCommand does not validate the ColumnFamily Type before proceeding with the execution. Doing so, you can try to push an insert with a SuperColumn over a Standard SuperColumn.&lt;br /&gt;&amp;#160;&lt;br /&gt;This is also enable when using BatchMutateCommand with DeletationMutation.&lt;br /&gt;&amp;#160;&lt;br /&gt;Suppose the following code&amp;#58; &lt;br /&gt;&amp;#160;&lt;br /&gt;            Guid id &amp;#61; Guid.NewGuid&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            BatchMutateCommand insertCMD &amp;#61; new BatchMutateCommand&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.KeySpace &amp;#61; &amp;#34;Keyspace1&amp;#34;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62; keyMutations &amp;#61; new Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62; columnMutation &amp;#61; new Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            List&amp;#60;IAquilesMutation&amp;#62; mutations &amp;#61; new List&amp;#60;IAquilesMutation&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSetMutation insertContextDataMutation &amp;#61; new AquilesSetMutation&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn &amp;#61; new AquilesSuperColumn&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                Name &amp;#61; &amp;#34;Data&amp;#34;,&lt;br /&gt;                Columns &amp;#61; new List&amp;#60;AquilesColumn&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#125;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, false&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            mutations.Add&amp;#40;insertContextDataMutation&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            columnMutation.Add&amp;#40;&amp;#34;Standard1&amp;#34;, mutations&amp;#41;&amp;#59;&lt;br /&gt;            string key &amp;#61; id.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            keyMutations.Add&amp;#40;key, columnMutation&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.Mutations &amp;#61; keyMutations&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            &lt;br /&gt;&amp;#160;&lt;br /&gt;            using &amp;#40;IAquilesConnection connection &amp;#61; AquilesHelper.RetrieveConnection&amp;#40;&amp;#34;TestCluster1&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                connection.Execute&amp;#40;insertCMD&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Fri, 14 Jun 2013 07:16:10 GMT</pubDate><guid isPermaLink="false">Reopened Issue: BatchMutateCommand with SuperColumns over a Standard ColumnFamily [11744] 20130614071610A</guid></item><item><title>Reopened Issue: MultiGetSliceCommand without SuperColumn over a Super ColumnFamily Type [11745]</title><link>http://aquiles.codeplex.com/workitem/11745</link><description>If you tried to execute a MultiGetSliceCommand without setting the SuperColumn &amp;#40;because you want to get all the child SuperColumns&amp;#41; over a ColumnFamily that is Super, you will get an exception with the message&amp;#58; &amp;#34;SuperColumn cannot be null or empty when accesing a Super type ColumnFamily.&amp;#34;.&lt;br /&gt;&amp;#160;&lt;br /&gt;Suppose the following code&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;           Guid id &amp;#61; Guid.NewGuid&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            BatchMutateCommand insertCMD &amp;#61; new BatchMutateCommand&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.KeySpace &amp;#61; &amp;#34;Keyspace1&amp;#34;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62;  keyMutations &amp;#61; new Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string,List&amp;#60;IAquilesMutation&amp;#62;&amp;#62; columnMutation &amp;#61; new Dictionary&amp;#60;string,List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            List&amp;#60;IAquilesMutation&amp;#62; mutations &amp;#61; new List&amp;#60;IAquilesMutation&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSetMutation insertContextDataMutation &amp;#61; new AquilesSetMutation&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn &amp;#61; new AquilesSuperColumn&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                Name &amp;#61; &amp;#34;Data&amp;#34;,&lt;br /&gt;                Columns &amp;#61; new List&amp;#60;AquilesColumn&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#125;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, false&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;            mutations.Add&amp;#40;insertContextDataMutation&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            columnMutation.Add&amp;#40;&amp;#34;Super1&amp;#34;, mutations&amp;#41;&amp;#59;&lt;br /&gt;            string key &amp;#61; id.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            keyMutations.Add&amp;#40;key, columnMutation&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.Mutations &amp;#61; keyMutations&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            MultiGetSliceCommand multiGetSliceCMD &amp;#61; new MultiGetSliceCommand&amp;#40;&amp;#41; &amp;#123; KeySpace &amp;#61; &amp;#34;Keyspace1&amp;#34;, ColumnFamily &amp;#61; &amp;#34;Super1&amp;#34; &amp;#125;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSliceRange range &amp;#61; new AquilesSliceRange&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            range.FinishColumn &amp;#61; DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            range.Reversed &amp;#61; true&amp;#59;&lt;br /&gt;            range.Count &amp;#61; int.MaxValue&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSlicePredicate predicate &amp;#61; new AquilesSlicePredicate&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            predicate.SliceRange &amp;#61; range&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            multiGetSliceCMD.Keys &amp;#61; new List&amp;#60;string&amp;#62;&amp;#40;&amp;#41; &amp;#123; key &amp;#125;&amp;#59;&lt;br /&gt;            multiGetSliceCMD.Predicate &amp;#61; predicate&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            using &amp;#40;IAquilesConnection connection &amp;#61; AquilesHelper.RetrieveConnection&amp;#40;&amp;#34;TestCluster1&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                connection.Open&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                connection.Execute&amp;#40;insertCMD&amp;#41;&amp;#59;&lt;br /&gt;                connection.Execute&amp;#40;multiGetSliceCMD&amp;#41;&amp;#59;&lt;br /&gt;                connection.Close&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;            Assert.IsNotNull&amp;#40;multiGetSliceCMD.Output&amp;#41;&amp;#59;&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Fri, 14 Jun 2013 07:16:10 GMT</pubDate><guid isPermaLink="false">Reopened Issue: MultiGetSliceCommand without SuperColumn over a Super ColumnFamily Type [11745] 20130614071610A</guid></item><item><title>Reopened Issue: GuidGenerator generates same Guid if called fast [12557]</title><link>http://aquiles.codeplex.com/workitem/12557</link><description>I try to generate multiple timeuuid using GuidGenerator.cs, but looks like it can generate duplicate uuid values sometimes.&lt;br /&gt;&amp;#160;&lt;br /&gt;Here is my code&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;for &amp;#40;int i &amp;#61; 0&amp;#59; i &amp;#60; 10&amp;#59; i&amp;#43;&amp;#43;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    Guid guid &amp;#61; Aquiles.Helpers.GuidGenerator.GenerateTimeBasedGuid&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    Console.WriteLine&amp;#40;guid.ToString&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;Here is the result&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;7fda8f95-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdaddb6-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdaddb6-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdaddb6-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;&amp;#160;&lt;br /&gt;Is it a problem&amp;#63; Some of my CFs are using TimeUUIDType, if there are some insert actions at the same time, the uuid will be the same. Any solutions&amp;#63; Thanks.&lt;br /&gt;&amp;#160;&lt;br /&gt;Posted by&amp;#58; xamlguide on discussions&lt;br /&gt;</description><author>apack12</author><pubDate>Fri, 14 Jun 2013 07:16:10 GMT</pubDate><guid isPermaLink="false">Reopened Issue: GuidGenerator generates same Guid if called fast [12557] 20130614071610A</guid></item><item><title>Reopened Issue: GetKeyRangeSliceCommand doesn't support for empty Start and End Key [12796]</title><link>http://aquiles.codeplex.com/workitem/12796</link><description>To get all the entries in a columnfamily, cassandra expects the first startkey value to have StartKey.Length &amp;#61;&amp;#61; 0. Current code doesn&amp;#39;t allow this need something like the following&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;1. Change AquilesKeyRange.cs ValidateNullOrEmptyStartKey to something like&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;        private void ValidateNullOrEmptyStartKey&amp;#40;&amp;#41;        &lt;br /&gt;&amp;#9;&amp;#123;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#47;&amp;#47; StartKey length &amp;#61;&amp;#61; 0 means get the first available item            &lt;br /&gt;&amp;#9;&amp;#9;if &amp;#40;this.StartKey &amp;#61;&amp;#61; null&amp;#41;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;                &lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;throw new AquilesCommandParameterException&amp;#40;&amp;#34;StartKey must not be null.&amp;#34;&amp;#41;&amp;#59;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;        &lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;2. Also need to make an empty EndKey allowable - so something like&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;        private void ValidateNullOrEmptyEndKey&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#47;&amp;#47; EndKey can be null - means get as many as allowed by Count        &lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;3. Also need a type converter for IAquilesKeyTokenRange implementations - in ModelConverterHelper.cs around line 78 something like&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;            &amp;#47;&amp;#47;Aquiles IAquilesKeyTokenRange converter&lt;br /&gt;            converter &amp;#61; new AquilesTokenRangeConverter&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            converters.Add&amp;#40;typeof&amp;#40;AquilesTokenRange&amp;#41;, converter&amp;#41;&amp;#59;&lt;br /&gt;            converters.Add&amp;#40;typeof&amp;#40;AquilesKeyRange&amp;#41;, converter&amp;#41;&amp;#59;&lt;br /&gt;            converters.Add&amp;#40;typeof&amp;#40;KeyRange&amp;#41;, converter&amp;#41;&amp;#59; &lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;4. Plus an implementation of the converter - something like&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt; &lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Collections.Generic&amp;#59;&lt;br /&gt;using System.Linq&amp;#59;&lt;br /&gt;using System.Text&amp;#59;&lt;br /&gt;using Aquiles.Model&amp;#59;&lt;br /&gt;using Apache.Cassandra&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;namespace Aquiles.Converter.Model.Impl&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; &amp;#60;summary&amp;#62;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; Converts from Aquiles.Model.IAquilesKeyTokenRange &amp;#40;Aquiles.Model.AquilesTokenRange&amp;#41; to Apache.Cassandra.KeyRange&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; &amp;#60;&amp;#47;summary&amp;#62;&lt;br /&gt;    class AquilesTokenRangeConverter &amp;#58; IThriftConverter&amp;#60;IAquilesKeyTokenRange, KeyRange&amp;#62;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#35;region IThriftConverter&amp;#60;IAquilesKeyTokenRange,KeyRange&amp;#62; Members&lt;br /&gt;&amp;#160;&lt;br /&gt;        public KeyRange Transform&amp;#40;IAquilesKeyTokenRange objectA&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;objectA is AquilesTokenRange&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                AquilesTokenRange tokenRange &amp;#61; &amp;#40;AquilesTokenRange&amp;#41;objectA&amp;#59;&lt;br /&gt;                return tokenRange.ToThrift&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#47;&amp;#47;KeyRange result &amp;#61; new KeyRange&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#123;&lt;br /&gt;                &amp;#47;&amp;#47;    Count &amp;#61; tokenRange.Count,&lt;br /&gt;                &amp;#47;&amp;#47;    Start_token &amp;#61; tokenRange.StartToken,&lt;br /&gt;                &amp;#47;&amp;#47;    End_token &amp;#61; tokenRange.EndToken&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            else if &amp;#40;objectA is AquilesKeyRange&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                AquilesKeyRange keyRange &amp;#61; &amp;#40;AquilesKeyRange&amp;#41;objectA&amp;#59;&lt;br /&gt;                return keyRange.ToThrift&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#47;&amp;#47;KeyRange result &amp;#61; new KeyRange&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#123;&lt;br /&gt;                &amp;#47;&amp;#47;    Count &amp;#61; keyRange.Count,&lt;br /&gt;                &amp;#47;&amp;#47;    Start_key &amp;#61; keyRange.StartKey,&lt;br /&gt;                &amp;#47;&amp;#47;    End_key &amp;#61; keyRange.EndKey&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            else&lt;br /&gt;                throw new ArgumentException&amp;#40;string.Format&amp;#40;&amp;#34;Don&amp;#39;t know how to convert &amp;#123;0&amp;#125;&amp;#34;, objectA&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;        public IAquilesKeyTokenRange Transform&amp;#40;KeyRange objectB&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;objectB.End_token &amp;#33;&amp;#61; null &amp;#124;&amp;#124; objectB.Start_token &amp;#33;&amp;#61; null&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return new AquilesTokenRange&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    StartToken &amp;#61; objectB.Start_token,&lt;br /&gt;                    EndToken &amp;#61; objectB.End_token,&lt;br /&gt;                    Count &amp;#61; objectB.Count&lt;br /&gt;                &amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            else&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return new AquilesKeyRange&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    StartKey &amp;#61; objectB.Start_key,&lt;br /&gt;                    EndKey &amp;#61; objectB.End_key,&lt;br /&gt;                    Count &amp;#61; objectB.Count&lt;br /&gt;                &amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;        &amp;#35;endregion&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;found by&amp;#58; patrickthompson&lt;br /&gt;Discussion&amp;#58; http&amp;#58;&amp;#47;&amp;#47;aquiles.codeplex.com&amp;#47;Thread&amp;#47;View.aspx&amp;#63;ThreadId&amp;#61;240791&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Fri, 14 Jun 2013 07:16:10 GMT</pubDate><guid isPermaLink="false">Reopened Issue: GetKeyRangeSliceCommand doesn't support for empty Start and End Key [12796] 20130614071610A</guid></item><item><title>Reopened Issue: UnavailableException and TimedOutException is not meaning of connection broken [12869]</title><link>http://aquiles.codeplex.com/workitem/12869</link><description>By reading again the Thrift Documentation, it seems that the UnavailableException and TimedOutException doesn&amp;#39;t mean that the node you are connected is down or not healthy, so invaliding the connection and banning the endpoint is not a very clever idea.&lt;br /&gt;&amp;#160;&lt;br /&gt;I&amp;#39;m copying the part of the documention associated with it&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#42;UnavailableException&amp;#42;&lt;br /&gt;Not all the replicas required could be created and&amp;#47;or read.&lt;br /&gt;&amp;#42;TimedOutException&amp;#42;&lt;br /&gt;The node responsible for the write or read did not respond during the rpc interval specified in your configuration &amp;#40;default 10s&amp;#41;. This can happen if the request is too large, the node is oversaturated with requests, or the node is down but the failure detector has not yet realized it &amp;#40;usually this takes &amp;#60; 30s&amp;#41;.&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Fri, 14 Jun 2013 07:16:09 GMT</pubDate><guid isPermaLink="false">Reopened Issue: UnavailableException and TimedOutException is not meaning of connection broken [12869] 20130614071609A</guid></item><item><title>Closed Issue: divide by zero in SizeControlledConnectionPool.controlIdleClientSizeMethod [11340]</title><link>http://aquiles.codeplex.com/workitem/11340</link><description>I was testing the library with a basic configuration &amp;#40;see below&amp;#41; and my server reported a divide by zero exception in SizeControlledConnectionPool.controlIdleClientSizeMethod.  I think it&amp;#39;s because I did not specify the magicNumber in the config and the defaults aren&amp;#39;t being properly applied.  From the code it looks like it only sets the default values on a parse failure and not if the key&amp;#47;value does not exist in the SpecialConnectionParameterCollection.  Once I added the magicNumber to the config it worked fine.&lt;br /&gt;&amp;#160;&lt;br /&gt;Also, it wasn&amp;#39;t a problem but you might consider moving the creation of the TimerTask for controlIdleClientSizeMethod to the Initialize method to guarantee that all the settings have been initialized before the first time the TimerTask is triggered.&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#9;&amp;#60;aquilesConfiguration&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#60;&amp;#33;--&amp;#60;loggingManager&amp;#62;Aquiles.Test.Logging.Logger,Aquiles.Test&amp;#60;&amp;#47;loggingManager&amp;#62;--&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#60;clusters&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#60;add friendlyName&amp;#61;&amp;#34;Service&amp;#34;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;connection poolType&amp;#61;&amp;#34;SIZECONTROLLEDPOOL&amp;#34; factoryType&amp;#61;&amp;#34;BUFFERED&amp;#34; &amp;#47;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;endpointManager type&amp;#61;&amp;#34;ROUNDROBIN&amp;#34; defaultTimeout&amp;#61;&amp;#34;6000&amp;#34;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;cassandraEndpoints&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;add address&amp;#61;&amp;#34;RT3&amp;#34; port&amp;#61;&amp;#34;9160&amp;#34;&amp;#47;&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;&amp;#47;cassandraEndpoints&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#60;&amp;#47;endpointManager&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#60;&amp;#47;add&amp;#62;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#60;&amp;#47;clusters&amp;#62;&lt;br /&gt;&amp;#9;&amp;#60;&amp;#47;aquilesConfiguration&amp;#62;&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Thu, 16 May 2013 10:32:03 GMT</pubDate><guid isPermaLink="false">Closed Issue: divide by zero in SizeControlledConnectionPool.controlIdleClientSizeMethod [11340] 20130516103203A</guid></item><item><title>Closed Issue: DeleteCommand validation exception when column value is null [11456]</title><link>http://aquiles.codeplex.com/workitem/11456</link><description>When using a DeleteCommand the input column must contain a not null value even though it is not actually needed for the deletation operation.&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Thu, 16 May 2013 10:32:03 GMT</pubDate><guid isPermaLink="false">Closed Issue: DeleteCommand validation exception when column value is null [11456] 20130516103203A</guid></item><item><title>Closed Issue: BatchMutateCommand with SuperColumns over a Standard ColumnFamily [11744]</title><link>http://aquiles.codeplex.com/workitem/11744</link><description>BatchMutateCommand does not validate the ColumnFamily Type before proceeding with the execution. Doing so, you can try to push an insert with a SuperColumn over a Standard SuperColumn.&lt;br /&gt;&amp;#160;&lt;br /&gt;This is also enable when using BatchMutateCommand with DeletationMutation.&lt;br /&gt;&amp;#160;&lt;br /&gt;Suppose the following code&amp;#58; &lt;br /&gt;&amp;#160;&lt;br /&gt;            Guid id &amp;#61; Guid.NewGuid&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            BatchMutateCommand insertCMD &amp;#61; new BatchMutateCommand&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.KeySpace &amp;#61; &amp;#34;Keyspace1&amp;#34;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62; keyMutations &amp;#61; new Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62; columnMutation &amp;#61; new Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            List&amp;#60;IAquilesMutation&amp;#62; mutations &amp;#61; new List&amp;#60;IAquilesMutation&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSetMutation insertContextDataMutation &amp;#61; new AquilesSetMutation&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn &amp;#61; new AquilesSuperColumn&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                Name &amp;#61; &amp;#34;Data&amp;#34;,&lt;br /&gt;                Columns &amp;#61; new List&amp;#60;AquilesColumn&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#125;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, false&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            mutations.Add&amp;#40;insertContextDataMutation&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            columnMutation.Add&amp;#40;&amp;#34;Standard1&amp;#34;, mutations&amp;#41;&amp;#59;&lt;br /&gt;            string key &amp;#61; id.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            keyMutations.Add&amp;#40;key, columnMutation&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.Mutations &amp;#61; keyMutations&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            &lt;br /&gt;&amp;#160;&lt;br /&gt;            using &amp;#40;IAquilesConnection connection &amp;#61; AquilesHelper.RetrieveConnection&amp;#40;&amp;#34;TestCluster1&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                connection.Execute&amp;#40;insertCMD&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Thu, 16 May 2013 10:32:03 GMT</pubDate><guid isPermaLink="false">Closed Issue: BatchMutateCommand with SuperColumns over a Standard ColumnFamily [11744] 20130516103203A</guid></item><item><title>Closed Issue: MultiGetSliceCommand without SuperColumn over a Super ColumnFamily Type [11745]</title><link>http://aquiles.codeplex.com/workitem/11745</link><description>If you tried to execute a MultiGetSliceCommand without setting the SuperColumn &amp;#40;because you want to get all the child SuperColumns&amp;#41; over a ColumnFamily that is Super, you will get an exception with the message&amp;#58; &amp;#34;SuperColumn cannot be null or empty when accesing a Super type ColumnFamily.&amp;#34;.&lt;br /&gt;&amp;#160;&lt;br /&gt;Suppose the following code&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;           Guid id &amp;#61; Guid.NewGuid&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            BatchMutateCommand insertCMD &amp;#61; new BatchMutateCommand&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.KeySpace &amp;#61; &amp;#34;Keyspace1&amp;#34;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62;  keyMutations &amp;#61; new Dictionary&amp;#60;string, Dictionary&amp;#60;string, List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            Dictionary&amp;#60;string,List&amp;#60;IAquilesMutation&amp;#62;&amp;#62; columnMutation &amp;#61; new Dictionary&amp;#60;string,List&amp;#60;IAquilesMutation&amp;#62;&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            List&amp;#60;IAquilesMutation&amp;#62; mutations &amp;#61; new List&amp;#60;IAquilesMutation&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSetMutation insertContextDataMutation &amp;#61; new AquilesSetMutation&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn &amp;#61; new AquilesSuperColumn&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                Name &amp;#61; &amp;#34;Data&amp;#34;,&lt;br /&gt;                Columns &amp;#61; new List&amp;#60;AquilesColumn&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#125;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, DateTime.UtcNow&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, false&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            insertContextDataMutation.SuperColumn.Columns.Add&amp;#40;this.CreateColumn&amp;#40;DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;, 0&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;            mutations.Add&amp;#40;insertContextDataMutation&amp;#41;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            columnMutation.Add&amp;#40;&amp;#34;Super1&amp;#34;, mutations&amp;#41;&amp;#59;&lt;br /&gt;            string key &amp;#61; id.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            keyMutations.Add&amp;#40;key, columnMutation&amp;#41;&amp;#59;&lt;br /&gt;            insertCMD.Mutations &amp;#61; keyMutations&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            MultiGetSliceCommand multiGetSliceCMD &amp;#61; new MultiGetSliceCommand&amp;#40;&amp;#41; &amp;#123; KeySpace &amp;#61; &amp;#34;Keyspace1&amp;#34;, ColumnFamily &amp;#61; &amp;#34;Super1&amp;#34; &amp;#125;&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSliceRange range &amp;#61; new AquilesSliceRange&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            range.FinishColumn &amp;#61; DateTime.Now.ToUniversalTime&amp;#40;&amp;#41;.Ticks.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            range.Reversed &amp;#61; true&amp;#59;&lt;br /&gt;            range.Count &amp;#61; int.MaxValue&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            AquilesSlicePredicate predicate &amp;#61; new AquilesSlicePredicate&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            predicate.SliceRange &amp;#61; range&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            multiGetSliceCMD.Keys &amp;#61; new List&amp;#60;string&amp;#62;&amp;#40;&amp;#41; &amp;#123; key &amp;#125;&amp;#59;&lt;br /&gt;            multiGetSliceCMD.Predicate &amp;#61; predicate&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;            using &amp;#40;IAquilesConnection connection &amp;#61; AquilesHelper.RetrieveConnection&amp;#40;&amp;#34;TestCluster1&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                connection.Open&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                connection.Execute&amp;#40;insertCMD&amp;#41;&amp;#59;&lt;br /&gt;                connection.Execute&amp;#40;multiGetSliceCMD&amp;#41;&amp;#59;&lt;br /&gt;                connection.Close&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;            Assert.IsNotNull&amp;#40;multiGetSliceCMD.Output&amp;#41;&amp;#59;&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Thu, 16 May 2013 10:32:02 GMT</pubDate><guid isPermaLink="false">Closed Issue: MultiGetSliceCommand without SuperColumn over a Super ColumnFamily Type [11745] 20130516103202A</guid></item><item><title>Closed Issue: GuidGenerator generates same Guid if called fast [12557]</title><link>http://aquiles.codeplex.com/workitem/12557</link><description>I try to generate multiple timeuuid using GuidGenerator.cs, but looks like it can generate duplicate uuid values sometimes.&lt;br /&gt;&amp;#160;&lt;br /&gt;Here is my code&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;for &amp;#40;int i &amp;#61; 0&amp;#59; i &amp;#60; 10&amp;#59; i&amp;#43;&amp;#43;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    Guid guid &amp;#61; Aquiles.Helpers.GuidGenerator.GenerateTimeBasedGuid&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    Console.WriteLine&amp;#40;guid.ToString&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;Here is the result&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;7fda8f95-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdaddb6-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdaddb6-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdaddb6-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;7fdb04c7-f444-11df-af7e-2cbfe486a130&lt;br /&gt;&amp;#160;&lt;br /&gt;Is it a problem&amp;#63; Some of my CFs are using TimeUUIDType, if there are some insert actions at the same time, the uuid will be the same. Any solutions&amp;#63; Thanks.&lt;br /&gt;&amp;#160;&lt;br /&gt;Posted by&amp;#58; xamlguide on discussions&lt;br /&gt;</description><author>apack12</author><pubDate>Thu, 16 May 2013 10:32:02 GMT</pubDate><guid isPermaLink="false">Closed Issue: GuidGenerator generates same Guid if called fast [12557] 20130516103202A</guid></item><item><title>Closed Issue: GetKeyRangeSliceCommand doesn't support for empty Start and End Key [12796]</title><link>http://aquiles.codeplex.com/workitem/12796</link><description>To get all the entries in a columnfamily, cassandra expects the first startkey value to have StartKey.Length &amp;#61;&amp;#61; 0. Current code doesn&amp;#39;t allow this need something like the following&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;1. Change AquilesKeyRange.cs ValidateNullOrEmptyStartKey to something like&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;        private void ValidateNullOrEmptyStartKey&amp;#40;&amp;#41;        &lt;br /&gt;&amp;#9;&amp;#123;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#47;&amp;#47; StartKey length &amp;#61;&amp;#61; 0 means get the first available item            &lt;br /&gt;&amp;#9;&amp;#9;if &amp;#40;this.StartKey &amp;#61;&amp;#61; null&amp;#41;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;                &lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;throw new AquilesCommandParameterException&amp;#40;&amp;#34;StartKey must not be null.&amp;#34;&amp;#41;&amp;#59;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;        &lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;2. Also need to make an empty EndKey allowable - so something like&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;        private void ValidateNullOrEmptyEndKey&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;            &lt;br /&gt;&amp;#9;&amp;#9;&amp;#47;&amp;#47; EndKey can be null - means get as many as allowed by Count        &lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;3. Also need a type converter for IAquilesKeyTokenRange implementations - in ModelConverterHelper.cs around line 78 something like&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;            &amp;#47;&amp;#47;Aquiles IAquilesKeyTokenRange converter&lt;br /&gt;            converter &amp;#61; new AquilesTokenRangeConverter&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            converters.Add&amp;#40;typeof&amp;#40;AquilesTokenRange&amp;#41;, converter&amp;#41;&amp;#59;&lt;br /&gt;            converters.Add&amp;#40;typeof&amp;#40;AquilesKeyRange&amp;#41;, converter&amp;#41;&amp;#59;&lt;br /&gt;            converters.Add&amp;#40;typeof&amp;#40;KeyRange&amp;#41;, converter&amp;#41;&amp;#59; &lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;4. Plus an implementation of the converter - something like&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt; &lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Collections.Generic&amp;#59;&lt;br /&gt;using System.Linq&amp;#59;&lt;br /&gt;using System.Text&amp;#59;&lt;br /&gt;using Aquiles.Model&amp;#59;&lt;br /&gt;using Apache.Cassandra&amp;#59;&lt;br /&gt;&amp;#160;&lt;br /&gt;namespace Aquiles.Converter.Model.Impl&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; &amp;#60;summary&amp;#62;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; Converts from Aquiles.Model.IAquilesKeyTokenRange &amp;#40;Aquiles.Model.AquilesTokenRange&amp;#41; to Apache.Cassandra.KeyRange&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; &amp;#60;&amp;#47;summary&amp;#62;&lt;br /&gt;    class AquilesTokenRangeConverter &amp;#58; IThriftConverter&amp;#60;IAquilesKeyTokenRange, KeyRange&amp;#62;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#35;region IThriftConverter&amp;#60;IAquilesKeyTokenRange,KeyRange&amp;#62; Members&lt;br /&gt;&amp;#160;&lt;br /&gt;        public KeyRange Transform&amp;#40;IAquilesKeyTokenRange objectA&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;objectA is AquilesTokenRange&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                AquilesTokenRange tokenRange &amp;#61; &amp;#40;AquilesTokenRange&amp;#41;objectA&amp;#59;&lt;br /&gt;                return tokenRange.ToThrift&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#47;&amp;#47;KeyRange result &amp;#61; new KeyRange&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#123;&lt;br /&gt;                &amp;#47;&amp;#47;    Count &amp;#61; tokenRange.Count,&lt;br /&gt;                &amp;#47;&amp;#47;    Start_token &amp;#61; tokenRange.StartToken,&lt;br /&gt;                &amp;#47;&amp;#47;    End_token &amp;#61; tokenRange.EndToken&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            else if &amp;#40;objectA is AquilesKeyRange&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                AquilesKeyRange keyRange &amp;#61; &amp;#40;AquilesKeyRange&amp;#41;objectA&amp;#59;&lt;br /&gt;                return keyRange.ToThrift&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#47;&amp;#47;KeyRange result &amp;#61; new KeyRange&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#123;&lt;br /&gt;                &amp;#47;&amp;#47;    Count &amp;#61; keyRange.Count,&lt;br /&gt;                &amp;#47;&amp;#47;    Start_key &amp;#61; keyRange.StartKey,&lt;br /&gt;                &amp;#47;&amp;#47;    End_key &amp;#61; keyRange.EndKey&lt;br /&gt;                &amp;#47;&amp;#47;&amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            else&lt;br /&gt;                throw new ArgumentException&amp;#40;string.Format&amp;#40;&amp;#34;Don&amp;#39;t know how to convert &amp;#123;0&amp;#125;&amp;#34;, objectA&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;        public IAquilesKeyTokenRange Transform&amp;#40;KeyRange objectB&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;objectB.End_token &amp;#33;&amp;#61; null &amp;#124;&amp;#124; objectB.Start_token &amp;#33;&amp;#61; null&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return new AquilesTokenRange&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    StartToken &amp;#61; objectB.Start_token,&lt;br /&gt;                    EndToken &amp;#61; objectB.End_token,&lt;br /&gt;                    Count &amp;#61; objectB.Count&lt;br /&gt;                &amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            else&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return new AquilesKeyRange&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    StartKey &amp;#61; objectB.Start_key,&lt;br /&gt;                    EndKey &amp;#61; objectB.End_key,&lt;br /&gt;                    Count &amp;#61; objectB.Count&lt;br /&gt;                &amp;#125;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;        &amp;#35;endregion&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;found by&amp;#58; patrickthompson&lt;br /&gt;Discussion&amp;#58; http&amp;#58;&amp;#47;&amp;#47;aquiles.codeplex.com&amp;#47;Thread&amp;#47;View.aspx&amp;#63;ThreadId&amp;#61;240791&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Thu, 16 May 2013 10:32:02 GMT</pubDate><guid isPermaLink="false">Closed Issue: GetKeyRangeSliceCommand doesn't support for empty Start and End Key [12796] 20130516103202A</guid></item><item><title>Closed Issue: UnavailableException and TimedOutException is not meaning of connection broken [12869]</title><link>http://aquiles.codeplex.com/workitem/12869</link><description>By reading again the Thrift Documentation, it seems that the UnavailableException and TimedOutException doesn&amp;#39;t mean that the node you are connected is down or not healthy, so invaliding the connection and banning the endpoint is not a very clever idea.&lt;br /&gt;&amp;#160;&lt;br /&gt;I&amp;#39;m copying the part of the documention associated with it&amp;#58;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#42;UnavailableException&amp;#42;&lt;br /&gt;Not all the replicas required could be created and&amp;#47;or read.&lt;br /&gt;&amp;#42;TimedOutException&amp;#42;&lt;br /&gt;The node responsible for the write or read did not respond during the rpc interval specified in your configuration &amp;#40;default 10s&amp;#41;. This can happen if the request is too large, the node is oversaturated with requests, or the node is down but the failure detector has not yet realized it &amp;#40;usually this takes &amp;#60; 30s&amp;#41;.&lt;br /&gt;</description><author>javiercanillas</author><pubDate>Thu, 16 May 2013 10:32:01 GMT</pubDate><guid isPermaLink="false">Closed Issue: UnavailableException and TimedOutException is not meaning of connection broken [12869] 20130516103201A</guid></item><item><title>New Post: Socked Exception When Mutate</title><link>http://aquiles.codeplex.com/discussions/429739</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;We get a socket exception when mutate value:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond]
   System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) &amp;#43;6210712
   System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) &amp;#43;134

[IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.]
   System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) &amp;#43;300
   Thrift.Transport.TStreamTransport.Read(Byte[] buf, Int32 off, Int32 len) &amp;#43;141
   Thrift.Transport.TTransport.ReadAll(Byte[] buf, Int32 off, Int32 len) &amp;#43;90
   Thrift.Transport.TFramedTransport.ReadFrame() &amp;#43;88
   Thrift.Transport.TFramedTransport.Read(Byte[] buf, Int32 off, Int32 len) &amp;#43;143
   Thrift.Transport.TTransport.ReadAll(Byte[] buf, Int32 off, Int32 len) &amp;#43;90
   Thrift.Protocol.TBinaryProtocol.ReadAll(Byte[] buf, Int32 off, Int32 len) &amp;#43;73
   Thrift.Protocol.TBinaryProtocol.ReadI32() &amp;#43;53
   Thrift.Protocol.TBinaryProtocol.ReadMessageBegin() &amp;#43;79
   Apache.Cassandra.Client.recv_batch_mutate() &amp;#43;34
   Apache.Cassandra.Client.batch_mutate(Dictionary`2 mutation_map, ConsistencyLevel consistency_level) &amp;#43;24&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But query is fine.&lt;/p&gt;
&lt;p&gt;This is exception happened today, but in past month it worked fine.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Any idea?&lt;/p&gt;
&lt;/div&gt;</description><author>JamesYYang</author><pubDate>Wed, 16 Jan 2013 04:42:31 GMT</pubDate><guid isPermaLink="false">New Post: Socked Exception When Mutate 20130116044231A</guid></item><item><title>New Post: Anyway to reset TTL for a column </title><link>http://aquiles.codeplex.com/discussions/404035</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;You just need to overwrite(insert) new column with the same name and new TTL.&lt;/p&gt;
&lt;/div&gt;</description><author>paiwan</author><pubDate>Thu, 29 Nov 2012 16:21:11 GMT</pubDate><guid isPermaLink="false">New Post: Anyway to reset TTL for a column  20121129042111P</guid></item><item><title>New Post: Anyway to reset TTL for a column </title><link>http://aquiles.codeplex.com/discussions/404035</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi All&lt;/p&gt;
&lt;p&gt;Just wondering anyway to reset TTL for a column as it could work the same way as asp.net sliding expiration?&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;/div&gt;</description><author>dennisleng</author><pubDate>Wed, 21 Nov 2012 02:07:28 GMT</pubDate><guid isPermaLink="false">New Post: Anyway to reset TTL for a column  20121121020728A</guid></item><item><title>New Post: Exception 'Unable to read data from the transport connection:</title><link>http://aquiles.codeplex.com/discussions/401238</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I don't think I understand the DefaultClient.cs class. &amp;nbsp;There is a do-while loop in the execute method, that retries MaximumRetries times - but as far as I can see, MaximumRetries is always set to 0, which means that it will never try more than one node. &amp;nbsp;I though the idea was that if a node was down, it would try another one from the pool. &amp;nbsp;I am probably misunderstanding something, because also if an exception is not marked as "ShouldRetry" the executioncounter is reset to 0 - which means that it will start from 0 again? &amp;nbsp;What am I misunderstanding?&lt;/p&gt;&lt;/div&gt;</description><author>vegah</author><pubDate>Wed, 31 Oct 2012 07:55:53 GMT</pubDate><guid isPermaLink="false">New Post: Exception 'Unable to read data from the transport connection: 20121031075553A</guid></item><item><title>New Post: Exception 'Unable to read data from the transport connection:</title><link>http://aquiles.codeplex.com/discussions/401238</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I from time to time get this error when using the dev-webserver (included in vs) after a time of inactivity (hours, days). &amp;nbsp;It does not seem to be able to recover without restarting the dev webserver. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Isn't this also a case where Aquiles should retry the connection or switch node? &amp;nbsp;In DefaultCluster.cs I find a&amp;nbsp; &amp;quot;catch (ExecutionBlockException ex)&amp;quot;, but DefaultClient.buildException does not handle this exception. &amp;nbsp;Not that I think it would
 matter, because as I said it does not seem to be able to recover without a restart. &amp;nbsp;Any suggestions?&lt;/p&gt;
&lt;/div&gt;</description><author>vegah</author><pubDate>Tue, 30 Oct 2012 13:09:13 GMT</pubDate><guid isPermaLink="false">New Post: Exception 'Unable to read data from the transport connection: 20121030010913P</guid></item><item><title>New Post: CompositeType Support</title><link>http://aquiles.codeplex.com/discussions/353372</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Added a patch that adds support for composite columns through a helper class. &amp;nbsp;I have tested it, and it seems to work.&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><author>vegah</author><pubDate>Tue, 30 Oct 2012 12:57:17 GMT</pubDate><guid isPermaLink="false">New Post: CompositeType Support 20121030125717P</guid></item></channel></rss>