Hi Blair-- Thanks for digging into the code. I did indeed experiment with longer timeouts and the result was that trying to obtain the lock hung for whatever amount of time I set the timeout for. I am not an expert on Astyanax and haven't debugged my use of that recipe yet; I don't even know if I've configured it correctly. Perhaps you have some guidance?
(Funny you mention your own migration framework--Mutagen is the second one I've done for Cassandra. The first one, a plugin for Mokol, also had schema rollbacks and some other features, but was only command-line.) On Thu, May 16, 2013 at 11:06 PM, Blair Zajac <bl...@orcaware.com> wrote: > On 5/16/13 10:22 PM, Todd Fast wrote: > >> Mutagen Cassandra is a framework providing schema versioning and >> mutation for Apache Cassandra. It is similar to Flyway for SQL databases. >> >> https://github.com/toddfast/**mutagen-cassandra<https://github.com/toddfast/mutagen-cassandra> >> >> Mutagen is a lightweight framework for applying versioned changes (known >> as mutations) to a resource, in this case a Cassandra schema. Mutagen >> takes into account the resource's existing state and only applies >> changes that haven't yet been applied. >> > > Hi Todd, > > Looking at your code and you have the ColumnPrefixDistributedRowLock > commented out. Could it be that the mutation is taking longer than a > second to run? Are they only happening during testing simultaneous > updates? Maybe they aren't being cleaned up? > > Funny timing, I'm working on porting Scala Migrations [1] to Cassandra and > have a working implementation. It's not as fancy as Scala Migrations (it > doesn't scan a package for migration subclasses and it currently doesn't do > rollbacks) but it gets the basics done. Hoping to release code in the near > future. > > Differences from Mutagen: > > 1) Mutations are written only in Scala. > 2) Since its a new project, it uses a Java Driver session instead of a > Astyanax connection since I only intend to use CQL3 tables. > > Blair > > [1] > http://code.google.com/p/**scala-migrations/<http://code.google.com/p/scala-migrations/> >