cassandra long ordering is off for negative longs? or am I doing this wrong?
===

I have the following few values I see in cassandra(realize, I AM putting various stuff in on purpose to see what happens).  NOTE: All the 8 byte values were longs and the other few were some strings.  The sort order appears to be fine for positive longs and even for the UTF8 strings as well.  The negative longs are at the very end of the list however!!!!

    RowKey: 6d796f6e655f696e646578
    => (column=000000000000000a, value=, timestamp=1343228055671000)
    => (column=0000000000000014, value=, timestamp=1343228055671000)
    => (column=0000000000000028, value=, timestamp=1343228055671000)
    => (column=000000000000003c, value=, timestamp=1343228055671000)
    => (column=00000000000000c8, value=, timestamp=1343228055671000)
    => (column=0000000000000154, value=, timestamp=1343228055671000)
    => (column=00000000000001f4, value=, timestamp=1343228055671000)
    => (column=0000000000000226, value=, timestamp=1343228055671000)
    => (column=00000000000002bc, value=, timestamp=1343228055671000)
    => (column=000000746bb814ee, value=, timestamp=1343228055671000)
    => (column=30303030303030303030, value=, timestamp=1343228055671000)
    => (column=61, value=, timestamp=1343228055671000)
    => (column=617364667364, value=, timestamp=1343228055671000)
    => (column=6565656565, value=, timestamp=1343228055671000)
    => (column=657772776572657772657772, value=, timestamp=1343228055671000)
    => (column=fffffffffffffe0c, value=, timestamp=1343228055671000)
    => (column=ffffffffffffff38, value=, timestamp=1343228055671000)
    => (column=ffffffffffffffd8, value=, timestamp=1343228055671000)

Now, if I tell cassandra to assume type long, the same row appears like this missing a bunch of columns(I really don't know why cassandra removed the negative columns????)...

    RowKey: 6d796f6e655f696e646578
    => (column=10, value=, timestamp=1343228055671000)
    => (column=20, value=, timestamp=1343228055671000)
    => (column=40, value=, timestamp=1343228055671000)
    => (column=60, value=, timestamp=1343228055671000)
    => (column=200, value=, timestamp=1343228055671000)
    => (column=340, value=, timestamp=1343228055671000)
    => (column=500, value=, timestamp=1343228055671000)
    => (column=550, value=, timestamp=1343228055671000)
    => (column=700, value=, timestamp=1343228055671000)
    => (column=500023432430, value=, timestamp=1343228055671000)

Two questions:

1. Why is the negative longs now missing(all the other longs I see are correctly translated back)?

2. I understand that if there is only 8 bytes, you really need to store 2's complement, so the sort order is "going" to be wrong, so how do people typically deal with a column slice of -50 to +50 then?  Are they doing two slices, one at the begin and one at the end?

thanks,
Dean