Commit Graph

181 Commits

Author SHA1 Message Date
Jonathan Ellis c0f5fb3bb3 refactor read path: first we make readColumnFamily accept a ReadCommand, and use that to clean out duplicate code in CassandraServer. Then we clean up the duplicate versions of the read methods in StorageService by making them ReadCommand-based, too. [not touching multiget code for now.]
patch by jbellis; reviewed by Eric Evans for #88

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766841 13f79535-47bb-0310-9956-ffa450edef68
2009-04-20 20:05:26 +00:00
Jonathan Ellis 657882579d rename ReadResponseMessage -> ReadResponse
patch by jbellis; reviewed by Eric Evans for #88

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766840 13f79535-47bb-0310-9956-ffa450edef68
2009-04-20 20:05:20 +00:00
Jonathan Ellis df95fb88dc clean up ReadCommand; it's basically a struct so use public final fields
patch by jbellis; reviewed by Eric Evans for #88

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766839 13f79535-47bb-0310-9956-ffa450edef68
2009-04-20 20:05:29 +00:00
Jonathan Ellis 8e72ac4f9f rename get_cf -> readColumnFamily; ReadMessage -> ReadCommand.
[Message message = ReadMessage.readMessage(readMessage) is just plain confusing]
patch by jbellis; reviewed by Eric Evans for #88

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766838 13f79535-47bb-0310-9956-ffa450edef68
2009-04-20 20:05:07 +00:00
Jonathan Ellis 234d0895ad fix row size "returned" via bufOut (currently ignored). patch by Jun Rao; reviewed by jbellis for #33
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766744 13f79535-47bb-0310-9956-ffa450edef68
2009-04-20 16:38:32 +00:00
Jonathan Ellis 6be087a80a fix SequenceFile to know about new int in CF serialization. patch by Jun Rao; reviewed by jbellis for #33
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766199 13f79535-47bb-0310-9956-ffa450edef68
2009-04-18 01:33:24 +00:00
Jonathan Ellis 0c0c6e5fda refactor Filter heirarchy, making hash generation easily customizable. Use Murmur
hash + combinatorics to generate hashes.

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766140 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:17:16 +00:00
Jonathan Ellis 674eaf5cf5 rename BloomFilter.fill -> add
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766139 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:17:11 +00:00
Jonathan Ellis 04344cbb03 replace JenkinsHash w/ MurmurHash. its hash distribution is just as good, and it's faster
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766138 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:17:05 +00:00
Jonathan Ellis 7f256c32cb r/m unused code, including entire CountingBloomFilter
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766137 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:17:10 +00:00
Jonathan Ellis 8eacd24443 change column_t value to binary from string. patch by johano; reviewed by jbellis for #29
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766136 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:08:49 +00:00
Jonathan Ellis 200d4937fa test and fix for CF clone bug during remove. patch by Jun Rao; reviewed by jbellis for #33
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766135 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:08:17 +00:00
Jonathan Ellis fa1f80f40d make GC_GRACE_IN_SECONDS customizable in storage.conf.
patch by jbellis; reviewed by Eric Evans for #33

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766134 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:08:10 +00:00
Jonathan Ellis 560dc2a10f omit tombstones from column_t and supercolumn_t returned to client.
patch by jbellis; reviewed by Eric Evans for #33

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766133 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:08:05 +00:00
Jonathan Ellis 3705cc4c77 preserve tombstones until a GC grace period has elapsed.
patch by jbellis; reviewed by Eric Evans for #33

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@766132 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 20:08:01 +00:00
Jonathan Ellis 2b0b61a7b0 waitForFlush -> forceBlockingFlush. ServerTest.cleanup now flushes and cleans out
all ColumnFamilyStores and commitlog, allowing remove tests to not step on each
others' toes (all tests pass now).

patch by jbellis; reviewed by Sandeep Tata for #85

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765831 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 01:48:58 +00:00
Jonathan Ellis 20dfd0682b use isSuper instead of DatabaseDescriptor.getColumnType.
patch by jbellis; reviewed by Sandeep Tata for #85

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765830 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 01:48:50 +00:00
Jonathan Ellis 1e15ccf5c9 refactor CFS constructor to not depend on DatabaseDescriptor.
patch by jbellis; reviewed by Sandeep Tata for #85

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765829 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 01:48:39 +00:00
Jonathan Ellis 1228ec0c67 add testRemoveColumnFamily, testRemoveSubColumn. (these do not pass yet b/c of
cleanup problems.)  patch by jbellis; reviewed by Sandeep Tata for #85

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765828 13f79535-47bb-0310-9956-ffa450edef68
2009-04-17 01:48:31 +00:00
Jonathan Ellis 3cf306a37f make forceFlush block until the flush action is queued on MemtableManager. That
way calling forceFlush; waitForFlush will be guaranteed that the action waitFF puts
on MtM will run after the flush completes, i.e., the wait will actually do what
it's supposed to.

patch by jbellis; reviewed by Eric Evans for #59

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765754 13f79535-47bb-0310-9956-ffa450edef68
2009-04-16 20:42:00 +00:00
Jonathan Ellis 4ed201b99f r/m libfb303 as a dependency. (this completes the process begun by Prashant earlier.) patch by Jun Rao; reviewed by jbellis for #86
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765703 13f79535-47bb-0310-9956-ffa450edef68
2009-04-16 17:47:25 +00:00
Jonathan Ellis 39de2d0d33 expose redone remove to thrift. patch by jbellis; reviewed by Jun Rao for #83
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765680 13f79535-47bb-0310-9956-ffa450edef68
2009-04-16 16:23:20 +00:00
Jonathan Ellis cb7cacfea7 generate supercolumn tombstone when a 2-tuple delete is passed to a super CF.
patch by jbellis; reviewed by Sandeep Tata for #84

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765451 13f79535-47bb-0310-9956-ffa450edef68
2009-04-16 02:09:24 +00:00
Jonathan Ellis 040bfd4c29 make remove test code use the same api that the thrift interface does. patch by
jbellis; reviewed by Sandeep Tata for #84

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765450 13f79535-47bb-0310-9956-ffa450edef68
2009-04-16 02:09:18 +00:00
Jonathan Ellis 2b4a0e4266 Move from ExecutorService per ColumnFamily to ES per Memtable. This allows us to
wait for the ES to quiesce completely before flushing, preventing the possibility
of ConcurrentModificationException when a get scheduled before the switch executes
concurrently with flush.  It also provides a simpler mental model (only one thread
touches memtable at a time, period) which is a valuable property.  Finally, it is
slightly more performant since it avoids hashing the CF name for each operation.

Patch by jbellis; reviewed by Todd Lipcon for #9

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765343 13f79535-47bb-0310-9956-ffa450edef68
2009-04-15 20:30:43 +00:00
Jonathan Ellis 6b2050c1fc Add MemtableSizeInMB and MemtableObjectCountInMillions to the default config. Uses a more conservative value for MemtableSizeInMB the default. Patch by Eric Evans; reviewed by jbellis for #51
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765269 13f79535-47bb-0310-9956-ffa450edef68
2009-04-15 16:56:11 +00:00
Jonathan Ellis 5e72feef0e upgrade to thrift svn r763981. for Java, this should be identical to thrift 0.1. patch by jbellis; reviewed by Eric Evans for #72
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765262 13f79535-47bb-0310-9956-ffa450edef68
2009-04-15 16:28:03 +00:00
Jonathan Ellis 4c76970c4a fix ColumnComparatorFactoryTest. patch by Jun Rao; reviewed by jbellis for #82
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765020 13f79535-47bb-0310-9956-ffa450edef68
2009-04-15 00:22:13 +00:00
Jonathan Ellis 49b45026bd RangeFilter that filters by column name so that min <= name <= max. patch by Jun Rao; reviewed by Todd Lipcon for #77
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764848 13f79535-47bb-0310-9956-ffa450edef68
2009-04-14 15:52:49 +00:00
Jonathan Ellis 137a28fc07 jmx resource names to reflect the move to apache
This is primarily a cosmetic change. If the Facebook folks have existing
tools which use these names, and they can not easily be updated, then
this changeset can safely be omitted.

patch by Eric Evans; reviewed by jbellis for #75

for your changes.

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764842 13f79535-47bb-0310-9956-ffa450edef68
2009-04-14 15:47:49 +00:00
Jonathan Ellis 31e3033afd an MBean attribute for displaying a flush counter
This changeset adds a new attribute to the ColumnFamilyStore MBean which
displays the number of times the memtable has been "switched". This
attribute (along with the newly added count and size attributes),
should prove useful in tuning thresholds.

patch by Eric Evans; reviewed by jbellis for #75

for your changes.

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764841 13f79535-47bb-0310-9956-ffa450edef68
2009-04-14 15:47:44 +00:00
Jonathan Ellis a332fad07d add instrumentation for memtable attributes
The current Memtable class implements an MBean interface, but it is not
wired up. Most likely, this is because it would become defunct after
the first flush when the memtable is switched out for a new one.

The solution is to instrument ColumnFamilyStore and expose the memtable
attributes from there.

patch by Eric Evans; reviewed by jbellis for #75

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764840 13f79535-47bb-0310-9956-ffa450edef68
2009-04-14 15:47:51 +00:00
Jonathan Ellis 732695503b fix compaction regression. patch by jbellis; reviewed by Todd Lipcon and Jun Rao
for #80.

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764679 13f79535-47bb-0310-9956-ffa450edef68
2009-04-14 05:12:44 +00:00
Jonathan Ellis a1ef3b5be5 add compaction test showing regression. patch by jbellis; reviewed by Todd Lipcon
and Jun Rao for #80.

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764678 13f79535-47bb-0310-9956-ffa450edef68
2009-04-14 05:12:42 +00:00
Jonathan Ellis 50c1987265 fix getCompactionBuckets -- something is broken in NonBlockingHashMap when removing and re-adding the same collection mid-iteration; it ends up with multiple references to that collection. going back to ConcurrentHashMap fixes the problem. (any additional overhead from CHM is negligible here.) patch by jbellis; reviewed by Eric Evans for #57
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@764004 13f79535-47bb-0310-9956-ffa450edef68
2009-04-10 19:08:27 +00:00
Jonathan Ellis a7d5c6506b Remove unused method CF.merge and add more tests to ColumnFamilyTest. patch by Sandeep Tata; review by jbellis for #69
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@763859 13f79535-47bb-0310-9956-ffa450edef68
2009-04-10 02:34:17 +00:00
Jonathan Ellis 768d2d1493 Clean up FileStruct API and fix key decoration bug in anticompaction. patch by jbellis; reviewed by Jun Rao for #67
Also fix calls to isKeyInRanges in anticompaction.

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@763820 13f79535-47bb-0310-9956-ffa450edef68
2009-04-09 21:40:49 +00:00
Jonathan Ellis db2fdd8740 sanity check configuration before starting. patch by jbellis; reviewed by Eric Evans for #6
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@763387 13f79535-47bb-0310-9956-ffa450edef68
2009-04-08 20:49:37 +00:00
Jonathan Ellis f0f5ec427c don't manually create commitlog directory; cassandra will do it automatically. also put commitlog under cassandra/ with other server artifacts. patch by jbellis; reviewed by Eric Evans for #6
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@763386 13f79535-47bb-0310-9956-ffa450edef68
2009-04-08 20:49:33 +00:00
Jonathan Ellis b3d4f4a93d add log4j.properties for testing; output is to build/test/logs/system.log. patch by jbellis; reviewed by Jun Rao for #64
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762913 13f79535-47bb-0310-9956-ffa450edef68
2009-04-07 19:17:54 +00:00
Jonathan Ellis 40fa7d4a66 consolidate partition behavior in IPartitioner, so creating a new partitioner should be only a matter of implementing that interface. all the external switch statements on PartitionerType have been folded into that.
SSTable is now the only part of the code that cares about the distinction between a 'raw' key and a 'decorated' key.  variables in that class have been named clientKey or decoratedKey to show which is which.  others don't care either because they only deal with decorated keys (SequenceFile, FileStruct) or only with client keys (everyone else).

patch by jbellis; reviewed by Jun Rao for #58

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762848 13f79535-47bb-0310-9956-ffa450edef68
2009-04-07 16:55:30 +00:00
Jonathan Ellis 21f4bd568b add sleep to ColumnFamilyStoreTest to workaround waitForFlush bug. see #59
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762547 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 22:43:50 +00:00
Jonathan Ellis 9e027cef72 enable line numbers in test stack traces. patch by johano; reviewed by jbellis for #60
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762508 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 21:23:11 +00:00
Jonathan Ellis 29f5255169 add cobertura support ('ant codecoverage -Dcobertura.dir=/path/to/cobertura'). patch by johano; reviewed by jbellis for #55
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762442 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 18:00:43 +00:00
Jonathan Ellis 85c9bda653 r/m redundant or unused code. patch by jbellis; reviewed by johano for #56
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762441 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 17:56:01 +00:00
Jonathan Ellis d1e78cbf84 replace .indexOf != -1 with .contains. patch by jbellis; reviewed by johano for #56
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762440 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 17:55:52 +00:00
Jonathan Ellis fc72d43058 merge #54
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762439 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 17:55:44 +00:00
Jonathan Ellis 9452cad277 combine overloads of SSTable.next; inline getData. patch by jbellis; reviewed by Jun Rau. see #52
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762383 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 15:10:38 +00:00
Jonathan Ellis e6b830c3be combine next / getData overloads. patch by jbellis; reviewed by Jun Rau. see #52
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762382 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 15:10:34 +00:00
Jonathan Ellis 1068ee7b0c merge common parts of next(timeRange) and next(columnNames). patch by jbellis; reviewed by Jun Rau. see #52
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@762381 13f79535-47bb-0310-9956-ffa450edef68
2009-04-06 15:10:30 +00:00