Hey all, I'm trying to write a puppet module to deploy the cassandra database automatically. I'm using puppet templates to provide the IP address to the listen_address parameter of the cassandra.yaml file like so:
listen_address: <%= ipaddress %> So far that part's working beautifully! However in cassandra there is the concept of the 'initial_token' which is based on another concept called 'partition type' which is used to dictate what data goes where in a cassandra cluster. Now in determining the 'inital_token' you generally use a mathematical formula which you can read some more about here if I've managed to pique anyone's curiosity: http://www.datastax.com/documentation/cassandra/1.2/cassandra/configuration/configGenTokens_c.html The type of data partition I'm using is called 'murmur3' and it uses this algorithm to determine a nodes' initial_token it uses to join a cassandra cluster. The murmur3 token generation process is described like this: Use this method for generating tokens when you are *not* using virtual nodes (vnodes) and using the Murmur3Partitioner<http://www.datastax.com/documentation/cassandra/1.2/cassandra/architecture/architecturePartitionerM3P_c.html#concept_ds_ns5_spf_fk> (default). This partitioner uses a maximum possible range of hash values from -2 63 to +2 63 -1. To calculate tokens for this partitioner: python -c 'print [str(((2**64 / number_of_tokens) * i) - 2**63) for i in range(number_of_tokens)]' For example, to generate tokens for 6 nodes: python -c 'print [str(((2**64 / 6) * i) - 2**63) for i in range(6)]' The command displays the token for each node: [ '-9223372036854775808', '-6148914691236517206', '-3074457345618258604', '-2' , '3074457345618258600', '6148914691236517202' ] What I'm struggling to do is to come up with a way to express this idea in puppet terms that I can use in a puppet template so that I can have the template automatically generate an answer to the initial_token question such that it will turn up the the cassandra.yaml file like so: intial_token: -9223372036854775808 I am definitely up for any suggestions anyone may have for this rather fascinating problem! Thanks Tim -- GPG me!! gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAOZy0enLe60PgmTut-2A6oXct_h1LWRvPidee4E0SA2HfkUH8g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
