20455c7 | Arunachalam Thirupathi | 11 May 2015, 21:45:23 UTC | Releasing Voldemort 1.9.13 | 11 May 2015, 21:45:23 UTC |
b4674b5 | Arunachalam Thirupathi | 11 May 2015, 21:09:02 UTC | Suppress obsoleteVersionException on logs During the refactoring of the server buffers, all errors from the stroage engine are logged. Previous code does not log any errors on writes. I looked at the exception stack and could not see other errors that need to be suppressed. Verified that ProtocolBuffer does not log any error, so only Voldemort Native request handler is affected. | 11 May 2015, 21:09:02 UTC |
1c8e0d4 | ARUNACHALAM THIRUPATHI | 07 August 2014, 07:50:57 UTC | NIO style connect Problems : 1) Connect blocks the selector. This causes other operations (read/write ) queued on the selector to incur additional latency or timeout. This is worse when you have data centers that are far away. 2) ProtocolNegotiation request is done after the connection establishment which blocks the selector in the same manner. 3) If Exceptions are encountered while getting connections from the queue they are ignored. Solutions : The connection creation is async. Create method is modified to createAsync and it takes in the pool object. for NIO the createAsync triggers an async operation which checks in the connection when it is ready. For Blocking connections the createAsync blocks, creates the connection and checks in the connection to the pool before returning. As the connection creation is async now, exceptions are remembered (for 5 seconds ) in the pool. When some thread asks for a connection and if the exceptions are remembered they will get an exception. There is no ordering in the way connections are handed out, one thread can request a connection and before it could wait, other thread could steal this connection. This is avoided to a certain extent by instead of doing one blocking wait, the thread splits the blocking wait in 2 half and creates connection if required. This should not be a problem in the real world as when you reach steady state ( create required number of connections) this can't happen. Upgrade the source compatibility from java 5 to 6. Most of the code is written with the assumption of Java 6, I don't believe you can run this code on Java 5. So the impact should be minimal, but if it goes in Client V2 branch, it will get benefit of additional testing. | 06 May 2015, 22:06:42 UTC |
5c03ea6 | Bhavani Sudha Saktheeswaran | 01 May 2015, 22:21:44 UTC | Releasing Voldemort 1.9.12 | 01 May 2015, 22:27:47 UTC |
706a1f3 | Bhavani Sudha Saktheeswaran | 01 May 2015, 01:54:19 UTC | Add more tests and fix buffer size of GZIP Streams | 01 May 2015, 21:09:59 UTC |
495a234 | ARUNACHALAM THIRUPATHI | 30 April 2015, 18:18:37 UTC | Merge pull request #256 from FelixGV/disable_ant_build Fully disabled the Ant build in favor of the Gradle one. Though the docs task is not yet ported to gradle, we can always fetch the build.xml from an older trunk and generate the docs. Given the amount of confusion it causes, I will merge this change in. | 30 April 2015, 18:18:37 UTC |
d310bf2 | Felix GV | 30 April 2015, 18:11:43 UTC | Fully disabled the Ant build in favor of the Gradle one. | 30 April 2015, 18:11:43 UTC |
8addbf7 | Arunachalam Thirupathi | 30 April 2015, 17:44:09 UTC | Fix the Readme to use Gradle Remove the ant and fix the readme to use Gradle. | 30 April 2015, 17:44:09 UTC |
c01f26e | Arunachalam Thirupathi | 27 April 2015, 21:42:36 UTC | Rebalance unit tests fail intermittently There are 2 issues. 1) Put is asynchronous, so there needs to be wait time before the put is verified on all the nodes. 2) Repeated puts need to generate different vector clocks. | 27 April 2015, 22:01:41 UTC |
9af4da4 | Xu Ha | 24 April 2015, 06:58:42 UTC | turn on reset-quota by default for rebalance-controller-cli | 25 April 2015, 01:22:27 UTC |
a831610 | Xu Ha | 24 April 2015, 06:50:54 UTC | split quota-resetting logic to QuotaResetter class and add unit test | 25 April 2015, 01:22:27 UTC |
8e39e55 | Xu Ha | 21 April 2015, 23:36:21 UTC | add reset-quota logic in RebalanceControllerCLI | 25 April 2015, 01:22:27 UTC |
a103fca | Bhavani Sudha Saktheeswaran | 24 April 2015, 00:43:21 UTC | Releasing Voldemort 1.9.11 | 24 April 2015, 00:43:21 UTC |
2ec72c4 | Bhavani Sudha Saktheeswaran | 15 April 2015, 01:00:16 UTC | Adding compression to RO path - first pass commit VoldemortConfig - Added a new config for compression codec. Default value for this property is GZIP. This is used by the AdminServiceRequestHandler to respond to the VoldemortBuildAndPushJob on what codec is supported. VAdminProto - Added a new Request Type for getting the suported compression codecs from RO Voldemort Server AdminServiceRequestHandler - New method to handle the above request type. AdminClient - Provides a method - getSupportedROStorageCompressionCodecs, that supports the above request type.. VoldemortBuildAndPushJob - inside run(), immediately after check cluster equalities, an admin request is issued to the VoldemortServer (specified by the property "push.node") to fetch the RO Compression Codec supported by the Server. - If any of the supported CODEC match the COMPRESSION_CODEC, then compression specific properties are set. Else no compression is enabled. AbstractHadoopJob - This is where the RO compression specific properties are set in Jobconf inside the createJobConf() Method HadoopStoreWriter and HadoopStoreWriterPerBucket - Adding dummy test only constructors - Creating index and value file streams based on compression settings - Got rid of some unused variables - minor movement of code HDFSFetcher - Changed copyFileWithCheckSum() to check if the files are ending with ".gz" and create a GZPIInputStream based on that. - GZPIInputStream (if compression is enabled) wraps the orifinal FSDataInputStream Tests for HadoopStoreWriter and HadoopStoreWriterPerBucket - These ar parameterized tests - takes in a boolean to either save keys or not - Run two tests - compressed and uncompressed - have tighter assumptions and use the test specific constructors in the corresponding classes | 23 April 2015, 23:14:37 UTC |
9de1042 | Siddharth Singh | 20 April 2015, 23:55:36 UTC | Fix mode option in cluster fork lift | 21 April 2015, 22:39:15 UTC |
9e21ccb | Xu Ha | 17 April 2015, 18:32:40 UTC | create admin api for quota operations 1. Get quota by node id 2. Set quota by node id 3. Rebalance quota 4. Unit test for the new admin apis | 20 April 2015, 21:26:50 UTC |
b83e3e7 | Xu Ha | 17 April 2015, 01:38:23 UTC | add metadata key for quota.enforcement.enabled | 20 April 2015, 21:26:50 UTC |
c8e583e | Arunachalam Thirupathi | 16 April 2015, 01:10:50 UTC | Releasing Voldemort 1.9.10 | 16 April 2015, 01:10:50 UTC |
32e2e0b | ARUNACHALAM THIRUPATHI | 30 March 2015, 05:44:38 UTC | Client buffer cleanup and isCompleteResponse 1) Client isCompleteResponse for Get and GetAll allocates the entire key and value. Discards them immediately. Now the byte array is not de-serialized and the validity is verified by advancing the pointers. 2) Put request size is calculated and the buffer is grown to the required size to avoid double allocation. | 16 April 2015, 00:00:40 UTC |
3f425ef | ARUNACHALAM THIRUPATHI | 26 March 2015, 15:06:26 UTC | Vector clock deserializer from Input Stream Avoid double allocating the value size for puts which can be potentially few kilobytes. Vector clock has a deserializer from InputStream and it is used to avoid the double allocation on the hot path. | 16 April 2015, 00:00:40 UTC |
94be1a5 | Arunachalam Thirupathi | 25 March 2015, 21:04:40 UTC | ShareBuffer Refactoring Refactored the Shared Buffer code to eliminate the separate read and write buffers. Now a common buffer is used and the code is refactored into its own classes. running the unit test. | 16 April 2015, 00:00:40 UTC |
b3becf3 | Arunachalam Thirupathi | 23 March 2015, 18:43:01 UTC | Separate Client and Admin Request Handler Separated both Admin and Client Request Handler. Currently the client port will answer admin requests and the admin port will answer client requests. You can bootstrap from one of these ports and client after bootstrapping sends the queries to the correct ports. This is dangerous as most of the security implementations of voldemort relies on blocking the admin port via firewall and an attacker can change the voldemort source code to send the admin requests to client port. My intention for the fix was to make sure that the client answers only client requests. This will help me to make the client request handler share the read and write buffer without touching the admin request handler. Though it can be done for both client and admin, admin requests are too few and there are too many places to touch. So will fix only the client request handler. The AdminClient expects both the client and admin request handler. The admin client does some get remote metadata calls which uses the voldemort native v1 requests on admin port. So leaving the admin request handler unchanged, just moved some code so that client request handlers are isolated. | 16 April 2015, 00:00:40 UTC |
4a87d69 | ARUNACHALAM THIRUPATHI | 24 August 2014, 19:58:38 UTC | client sharing read/write buffer Client either writes/reads from socket, never does them together. So the buffer can be shared which will bring down the memory requirement for the client by half. But the client has to watch for 2 things 1) On Write the buffer expands as necessary. So the buffer needs to be reinitialized if it grows. 2) On Read, if the buffer can't accomodate it grows as necessary, this case also needs to be handled. This works as expected and the unit tests are passing. Will put it through VPL to measure the efficiency of the fixes. Created a new class to hold the Buffer reference. This helps to share the buffer between input and output streams easily. Previously you have to watch out for places where one buffer moves away from the other and need to call an explicit method to update it. Also moved many buffer growing and resetting logic to a common code, so it is more readable and understandable. Should I rename the ByteBufferContainer to MutableByteBuffer this fits the MutableInt pattern nicely where a single int can be shared by multiple classes and updating one is visible to others. | 16 April 2015, 00:00:40 UTC |
298bdc1 | Arunachalam Thirupathi | 13 April 2015, 22:01:53 UTC | Increase the heap size for Tests Increase the heap size for Tests to 8GB ZoneShrinkage tests fails time to time with errors, as it runs out of heap. | 13 April 2015, 22:01:53 UTC |
d546a02 | Felix GV | 10 April 2015, 18:34:22 UTC | Releasing Voldemort 1.9.9 | 10 April 2015, 18:34:22 UTC |
ca08a06 | Greg Banks | 09 April 2015, 21:15:01 UTC | Merge pull request #251 from voldemort/revert-223-master Revert "Steps towards automating cluster zone expansion" | 09 April 2015, 21:15:01 UTC |
d2190fb | Greg Banks | 09 April 2015, 21:14:16 UTC | Revert "Steps towards automating cluster zone expansion" | 09 April 2015, 21:14:16 UTC |
a754f35 | Greg Banks | 09 April 2015, 21:12:19 UTC | Merge pull request #223 from gnb/master Steps towards automating cluster zone expansion | 09 April 2015, 21:12:19 UTC |
46df86e | singhsiddharth | 08 April 2015, 23:08:25 UTC | Merge pull request #250 from gnb/roswap2 Improve error messages in ROReplicationHelperCLI | 08 April 2015, 23:08:25 UTC |
0361984 | Greg Banks | 08 April 2015, 21:21:33 UTC | Improve error messages in ROReplicationHelperCLI Split up one "Unqualified store" error message into three with three separate checks, so that the person who runs this code can actually tell which of those conditions went wrong. | 08 April 2015, 21:22:48 UTC |
db6de76 | Arunachalam Thirupathi | 07 April 2015, 21:00:38 UTC | Refactor the HDFS fetcher 1) Move some code into a method 2) Allocate the buffer per fetch instead of per file. Tested by fetching 2 directories on HDFS and verified the output. | 07 April 2015, 21:52:46 UTC |
9b417b6 | Arunachalam Thirupathi | 07 April 2015, 21:41:45 UTC | Incorrectly pushed the logging change to master I had an log info to see where the queries are being sent. This was stashed but not sure how it went to the master. Reverting the change. | 07 April 2015, 21:41:45 UTC |
f144780 | Arunachalam Thirupathi | 06 April 2015, 22:11:56 UTC | Metadata queries are not sent to same zone Metadata queries for system stores are sent to lowest number node in the cluster instead of the zone. Added a hack to the local pref strategy if the client zone is set, use the zone local routing. The code is very complicated (unnecesarily) did not clean it up as I dont want to run it for all the scenarios and wanted to make a safe fix. | 06 April 2015, 22:11:56 UTC |
874bef9 | Arunachalam Thirupathi | 06 April 2015, 19:27:13 UTC | RouteToAllStrategy routes to node 0..n RouteToAllStrategy tries the node always in a fixed order. This creates too much metadata queries on the node 0. For zoned cluster, the node with lowest id gets bombarded with too many connections and get queries. Create a shuffled node, when the cluster is initialized and use this in the routing strategy. The random seed is used at the initialization to make it random every time the cluster is re-initialized. | 06 April 2015, 19:27:13 UTC |
d004dd8 | Arunachalam Thirupathi | 31 March 2015, 16:10:11 UTC | Added more tests for the ClientRequestFormat Added more tests to validate isCompleteResponse for the clientRequestFormat. Noticed that protocolBuffers will break if the server sends in less than 4 bytes of data. | 31 March 2015, 16:10:11 UTC |
224ce69 | Arunachalam Thirupathi | 27 March 2015, 00:06:18 UTC | Test cases for client request response 1) Validates the request response. 2) Added more validation for missing version timestamps and other issues 3) Added backward compatibility tests. | 31 March 2015, 15:41:44 UTC |
f1f4853 | singhsiddharth | 30 March 2015, 20:55:07 UTC | Merge pull request #246 from gnb/hdfs-fetcher HdfsFetcher fixes | 30 March 2015, 20:55:07 UTC |
cff89fc | Greg Banks | 30 March 2015, 19:56:04 UTC | Add a destination dir arg to HdfsFetcher main | 30 March 2015, 20:01:23 UTC |
0b576cd | Greg Banks | 28 March 2015, 02:08:20 UTC | Allow HdfsFetcher to fetch individual files but only from the main(), not when fetch() is invoked by the server. | 30 March 2015, 19:59:33 UTC |
3a1f460 | Felix GV | 27 March 2015, 22:04:47 UTC | BnP improvement: - Removed a bunch of redundant constructors that made code unreadble. - Added a min.number.of.records config (defaults to 1) to prevent pushing empty stores. - Improved error handling and reporting in BnP's run function. | 27 March 2015, 22:04:47 UTC |
258a7c0 | Xu Ha | 25 March 2015, 00:15:28 UTC | add local option for ReadOnlyReplicationHelperCLI | 26 March 2015, 01:08:40 UTC |
e55cf79 | Bhavani Sudha Saktheeswaran | 24 March 2015, 06:05:38 UTC | Merge pull request #244 from bhasudha/playing_around_with_rocksdb Rocksdb StorageEngine support for Voldemort | 24 March 2015, 06:05:38 UTC |
ad87133 | Bhavani Sudha Saktheeswaran | 22 March 2015, 19:46:47 UTC | Incorporating code review feedbacks - Adding optional read lock for get API - Config change for RocksDb default data directory - minor log fixes | 22 March 2015, 19:46:47 UTC |
e3e2bf7 | Arunachalam Thirupathi | 14 March 2015, 00:23:38 UTC | Warn on add/delete store in SetMetadata command 1) Currently if you add or delete a store using set metadata the cluster will be in an inconsistent state. Added warning to the server side log if this happens 2) ReplaceNodeCLI does not work correctly if you start the node with empty stores xml. Fixed that. Now it accepts empty stores.xml or the same stores.xml as the other nodes. 3) get stores.xml returns different order different times. Made the ordering constant sorted by the storeName. 4) vadmin.sh meta check stores.xml verify if the store exists and it is queriable on the node. | 22 March 2015, 19:23:53 UTC |
de59607 | Arunachalam Thirupathi | 14 March 2015, 00:23:38 UTC | Warn on add/delete store in SetMetadata command 1) Currently if you add or delete a store using set metadata the cluster will be in an inconsistent state. Added warning to the server side log if this happens 2) ReplaceNodeCLI does not work correctly if you start the node with empty stores xml. Fixed that. Now it accepts empty stores.xml or the same stores.xml as the other nodes. 3) get stores.xml returns different order different times. Made the ordering constant sorted by the storeName. 4) vadmin.sh meta check stores.xml verify if the store exists and it is queriable on the node. | 18 March 2015, 19:51:42 UTC |
4758860 | Bhavani Sudha Saktheeswaran | 18 March 2015, 05:09:21 UTC | Deleting recently added test store | 18 March 2015, 05:09:21 UTC |
4cba78e | Bhavani Sudha Saktheeswaran | 10 March 2015, 01:51:29 UTC | Using rocksdbjni jar from maven | 18 March 2015, 04:57:44 UTC |
2c17d1d | Arunachalam Thirupathi | 09 March 2015, 17:14:45 UTC | New test store New test store with long key and string value. | 18 March 2015, 04:28:46 UTC |
ab005b9 | bhasudha | 17 August 2014, 11:23:00 UTC | Add logging messages | 18 March 2015, 04:28:46 UTC |
fad1e28 | bhasudha | 17 August 2014, 09:53:04 UTC | Adding Parameterized StorageEngineTest for Rocksdb In this commit; * RocksdbStorageEngineTest that extends AbstractStorageEngineTest * Some fixes to the RocksdbStorageEngine * Adding support for getVersions(ByteArray key) | 18 March 2015, 04:28:46 UTC |
c5a63e1 | bhasudha | 17 August 2014, 01:25:34 UTC | Modifying the unit test to be a parameterized test * Now unit test tests both RocksdbStorageEngine and PartitionPrefixedRocksDbStorageEngine * Fixed getALL unit test. | 18 March 2015, 04:28:46 UTC |
25ff98c | bhasudha | 17 August 2014, 00:50:14 UTC | Adding test case for getall | 18 March 2015, 04:28:46 UTC |
5c2f931 | Bhavani Sudha Saktheeswaran | 16 August 2014, 00:23:26 UTC | Adding more unit test cases | 18 March 2015, 04:28:46 UTC |
478d8a4 | Bhavani Sudha Saktheeswaran | 08 August 2014, 20:25:28 UTC | Adding new rocksdbjni jar and librocksdbjni.so | 18 March 2015, 04:28:45 UTC |
547bd4e | Bhavani Sudha Saktheeswaran | 06 August 2014, 08:04:45 UTC | Missed to add the PartitionPrefixedRocksDbStorageEngine class in the previous commit. Adding now. | 18 March 2015, 04:28:41 UTC |
a223c7d | Bhavani Sudha Saktheeswaran | 06 August 2014, 08:01:13 UTC | Adding basic functional implementation for PartitionPrefixedRocksdbStorageEngine This is similar to PartitionPrefixedBdbStorageEngine. TODO: May need to refactor both storage engines later | 18 March 2015, 04:28:41 UTC |
8023068 | Bhavani Sudha Saktheeswaran | 05 August 2014, 07:38:48 UTC | Adding first cut implementations for: * multiVersionPut * Iterators for keys and entries Also adding stubs for other BATCH APIs which can be implemented later based on performance. | 18 March 2015, 04:28:41 UTC |
7f577e3 | Bhavani Sudha Saktheeswaran | 20 July 2014, 23:43:18 UTC | Adding basic get after put test to test RocksDB APIs * My tests fail with "java.lang.UnsatisfiedLinkError: no rocksdbjni in java.library.path" . Need to fix this later. | 18 March 2015, 04:28:41 UTC |
ea60a8d | Xu Ha | 20 July 2014, 03:53:39 UTC | Adding first implementation for delete API | 18 March 2015, 04:28:41 UTC |
fda545e | Bhavani Sudha Saktheeswaran | 19 July 2014, 23:46:14 UTC | Adding first impmenetations for getall and put APIs Also added common locking mechanism to be used for write operations | 18 March 2015, 04:28:41 UTC |
751d9f7 | Felix GV | 18 July 2014, 23:00:02 UTC | Changed rdb.data.dir to rocksdb.data.dir As suggested by Vinoth Added the RocksDB Storage Config in VoldemortConfig's default list. Added RocksDB's library loading in RocksDbStorageConfiguration Fails for me at runtime because of missing dependencies... will need to be revisited. | 18 March 2015, 04:28:41 UTC |
b7856c7 | Bhavani Sudha Saktheeswaran | 19 July 2014, 19:03:51 UTC | Adding v1 implementation for get API May need to change/add more later | 18 March 2015, 04:28:41 UTC |
2c0707e | Felix GV | 18 July 2014, 22:37:23 UTC | Added basic functionality in RocksDbStorageConfiguration... untested yet. | 18 March 2015, 04:28:40 UTC |
0bb0e88 | Felix GV | 18 July 2014, 20:19:19 UTC | Added some more RDB code.. | 18 March 2015, 04:28:40 UTC |
c7d3547 | Felix GV | 18 July 2014, 18:42:59 UTC | Added the rocksdbjni.jar to private-lib and created two empty implementations of necessary interfaces... | 18 March 2015, 04:28:40 UTC |
19a09dc | Felix GV | 17 March 2015, 23:51:10 UTC | Releasing Voldemort 1.9.8 | 17 March 2015, 23:51:10 UTC |
41ea5ba | Felix GV | 14 March 2015, 02:52:31 UTC | Dependency clean up: - Removed tusk, RestHadoopFetcher and related classes and tests. - Now fetching libthrift, catalina-ant and tehuti from Maven. | 17 March 2015, 21:54:41 UTC |
6a9ea78 | Felix GV | 13 March 2015, 22:51:39 UTC | Further BnP cleanups: - Removed Azkaban dependency as much as possible. - Standardized on using voldemort.utils.Props as much as possible. - Deleted VoldemortMultiStoreBuildAndPushJob which is not actively used and suffering from code rot. - Added Content-Length header support in BnP HttpHook. - Added more utility functions to voldemort.utils.Props - Safeguards in BnP HttpHook's concurrent code. - Removed System.exit calls from BnP. | 17 March 2015, 21:54:41 UTC |
e8e6fb3 | Arunachalam Thirupathi | 11 March 2015, 07:31:24 UTC | Rebalance log Logged the rebalance related messages which will be important in troubleshooting if the expansion fails. | 14 March 2015, 00:26:50 UTC |
66b62ef | Arunachalam Thirupathi | 11 March 2015, 07:12:24 UTC | Print the summary of the stores.xml change When you use the new vadmin.sh meta set stores.xml it will print a summary of all the changes you made to the stores. It will categorize them to the following changes 1) Warn if New stores are being added 2) Warn if Stores are being removed 3) Unchnaged stores For the modified stores, it will add them to atleast one category 1) Replication factor changed 2) Schema changed 3) All other changes This will help you identify the changes to the stores.xml before you update it. The vadmin.sh meta check stores.xml will do a sample key fetch against the store and report if there is an issue. | 14 March 2015, 00:26:43 UTC |
5695e9d | Arunachalam Thirupathi | 11 March 2015, 07:07:54 UTC | Ignore the config data directory in tar When you run the local test server and if you try tar , unknowingly you are packing all the data files which takes a long amount of time. So ignoring the data directory in the config folder. Sometimes eclipse messes up and drops .gradle and others in the bin directory, so ignoring them in the archive as well. | 11 March 2015, 19:20:25 UTC |
6128689 | Xu Ha | 06 March 2015, 19:40:22 UTC | fix zone id for vadmin tool restore-from-replica command | 06 March 2015, 19:40:22 UTC |
394c8d1 | Xu Ha | 04 March 2015, 23:00:00 UTC | Releasing Voldemort 1.9.7 | 04 March 2015, 23:00:00 UTC |
e3e9aee | Xu Ha | 03 March 2015, 23:35:29 UTC | add unit test for slop streaming in host-swap scenario | 04 March 2015, 01:44:43 UTC |
61c7182 | Xu Ha | 28 February 2015, 00:04:02 UTC | refresh cached cluster object in admin connection verifier for slop pusher jobs | 28 February 2015, 00:50:14 UTC |
07f4d71 | Xu Ha | 26 February 2015, 22:07:28 UTC | remove mex-connection constraint | 27 February 2015, 01:29:28 UTC |
0e4fefb | Xu Ha | 26 February 2015, 19:23:54 UTC | cache admin client in admin connection verifier to eliminate threads and connections | 27 February 2015, 01:29:28 UTC |
be84e5a | Xu Ha | 26 February 2015, 18:13:06 UTC | make vadmin --zone optional for restore-from-replica command | 26 February 2015, 20:05:45 UTC |
9ce0828 | Arunachalam Thirupathi | 18 February 2015, 17:55:19 UTC | Nio client thread names for multiple factories If a Voldemort client creates multiple factories ( either for isolation or for talking to multiple clusters) the thread names are difficult to track in logs and stack dumps. Now the thread names will contain the factory identifiers in the names. Servers does not pass in Stats object, so the servers hosting this client will continue to be the same. | 24 February 2015, 00:30:34 UTC |
8562e78 | Bhavani Sudha Saktheeswaran | 12 February 2015, 22:31:24 UTC | minor fix to Client Shell | 19 February 2015, 18:33:23 UTC |
017ea62 | Felix GV | 19 February 2015, 02:01:19 UTC | Many Build and Push improvements: - Set umask for recursive HDFS permissions. - Added some retry logic for an HDFS operation in the HadoopStoreBuilder. - Added BnP Abstract and Http Hook classes for common use cases. - Improved logging and debuggability. - Removed Azkaban dependency from AvroStoreBuilderMapper. - Deleted the deprecated VoldemortBatchIndexJob. | 19 February 2015, 02:05:04 UTC |
cf0f0c5 | ARUNACHALAM THIRUPATHI | 17 February 2015, 18:17:02 UTC | Merge pull request #239 from voldemort/topush2 Minor log message fixes | 17 February 2015, 18:17:02 UTC |
5c717f2 | Greg Banks | 12 February 2015, 19:50:08 UTC | Fix English typo in VoldemortBuildAndPushJob | 17 February 2015, 18:00:04 UTC |
6c8b7df | Greg Banks | 12 February 2015, 19:48:44 UTC | Fix English typo in ClientRequestExecutorFactory | 17 February 2015, 17:57:24 UTC |
272cf2c | Arunachalam Thirupathi | 14 February 2015, 01:59:29 UTC | Selector and Admin threads have same name In voldemort selector and admin threads have same name and it is difficult to debug in thread dumps and follow them in the logs. Renamed the threads to use the serviceName, which makes it easier to understand and follow. | 14 February 2015, 02:08:59 UTC |
e41339f | Felix GV | 03 February 2015, 23:21:42 UTC | Releasing Voldemort 1.9.6 | 03 February 2015, 23:21:42 UTC |
13e984a | Felix GV | 03 February 2015, 03:15:35 UTC | Many Build And Push improvements: - Upgraded Azkaban dependency to 2.5.0, and fetch from Maven Central. Removed Azkaban from private-lib. - Upgraded Jackson dependency to 1.9.13. - Fixed BnP hooks default config (other it failed when unspecified). - Rethrow exceptions caught in BnP's run function to maintain previous behavior. - Sanity checks and better error reporting of avro configs. - Cleaned up duplicate references of UndefinedPropertyException. | 03 February 2015, 18:56:38 UTC |
6cac0af | Xu Ha | 30 January 2015, 00:52:51 UTC | Add string definition for bnp job property keys | 02 February 2015, 22:07:19 UTC |
2efc0b2 | Arunachalam Thirupathi | 31 January 2015, 01:08:33 UTC | Test fixes 1) Sometimes starting the voldemort server fails with the error ObsoleteVersion Exception. This is an override only used by the tests, so it is safe to modify it. 2) On Java 8, ConsistencyFetcher test fails as the set has a different ordering, probably because of the hashCode implementation difference. In this method ordering is not important so I modified the test to ignore the ordering. | 31 January 2015, 01:10:42 UTC |
1a9e8df | Arunachalam Thirupathi | 31 January 2015, 01:07:24 UTC | Avoid extra allocation on AvroGenericVersioned The buffer is unnecessarily copied into a new Array which uses extra memory. Used a different API which takes in buffer, offset and length. This is what the previous call we used internally calls into. | 31 January 2015, 01:10:42 UTC |
e90b885 | Felix GV | 24 January 2015, 02:45:03 UTC | Added support for custom hooks in the VoldemortBuildAndPushJob. Heartbeat hooks run in a daemon thread. | 28 January 2015, 00:29:15 UTC |
4a7b365 | Felix GV | 23 January 2015, 21:45:10 UTC | Better IntelliJ IDEA support in the gradle build. | 23 January 2015, 21:45:10 UTC |
8bfd182 | Arunachalam Thirupathi | 22 January 2015, 19:56:41 UTC | Read after truncate crashes the JVM If you truncate a read-only store and send read operations get/getall for one of the existent keys it crashes the JVM with SegFault. Some of the data is cached in java collections and it tries to access the memory mapped file which has been closed by the truncate. This causes the JVM to crash. Now the java collections are cleared and the code tries to handle this gracefully. But this is not an ideal code more of a workaround. Fixed spewing of log messages to the standard output, as they are already captured in the log4j loggers. Added unit test for the read after truncate scenario. | 22 January 2015, 19:56:41 UTC |
8e54d87 | Arunachalam Thirupathi | 21 January 2015, 00:24:53 UTC | Retry on bind exceptions Retry 3 times on bind exceptions before giving up. Most of the tests fail with intermittent bind exceptions. | 21 January 2015, 00:24:53 UTC |
851625f | Arunachalam Thirupathi | 17 January 2015, 02:55:24 UTC | ync the metadata version on all nodes Sync the metadata version on all nodes by computing the super set of version clock and the timestamp for all the stores. The vector clocks on the nodes have diverged so much because of the bugs, this option just computes the super set and fixes it. | 17 January 2015, 02:55:24 UTC |
fdbad13 | Arunachalam Thirupathi | 12 January 2015, 23:34:27 UTC | Release voldemort 1.9.5 Releasing voldemort version 1.9.5 | 12 January 2015, 23:34:27 UTC |
bfd1ec7 | ARUNACHALAM THIRUPATHI | 09 January 2015, 16:34:14 UTC | Version clock increments on each restart Voldemort verion clock increments on each restart and hence rejects future updates. Increment the clock only when necessary. Ideally if the version value already exists, the function should return early, but not sure when cluster.xml, stores.xml and for each stores a key was introduced. And what happens if the keys were not there. So found a safe middle ground to increment the version when the key is not there. | 10 January 2015, 00:22:29 UTC |
8387603 | Arunachalam Thirupathi | 09 January 2015, 22:41:19 UTC | Cluster state equals and node names Cluster.equals returns true when the outline of the cluster is equal and when the node names are different. But this is not what we want in most cases. Let us say that you have a non-zoned cluster, on 2 different data centers. They are going to have the same node ids, same partitions but they are not equal. Even within the same data center if one cluster.xml has node 1 as A and other cluster.xml has node 1 as B, they are different but currently returns true. So modified the node equivalence to verify the equality. | 09 January 2015, 22:41:19 UTC |
fd71c8c | Arunachalam Thirupathi | 09 January 2015, 22:40:49 UTC | ReplaceNodeCLI enhancements and tests 1) Made ReplaceNodeCLI unit testing friendly, removed System.exits with throw Exception and quitting in the main method instead of each methods. 2) Added post condition checks to the ReplaceNodeCLI to verify for consistent stores.xml and cluster.xml. Added the testing for ReplaceNode 1) Check if a node can be swapped when it is down 2) Check if a node can be swapped when it is up 3) Check if you can move a hard disk and replace a node down While doing the tests, there are many client threads simulating the traffic to make sure that they dont see any exceptions. | 09 January 2015, 22:40:49 UTC |
a033aba | Arunachalam Thirupathi | 07 January 2015, 21:28:24 UTC | Enhance meta check to pinpoint different properties Enhance the meta check tool to pinpoint properties that are different. On stats cluster there are many properties and it is hard to see which one is different. So the tool analyzes the property level details and dumps them out. | 08 January 2015, 00:13:03 UTC |