Qfs client: do not attempt to queue empty read request, in order to fix close() status code where protocol worker effectively had no requests to process.
Qfs client: better logging of file table entries transitions to facilitate debugging.
Qfs access java: make all public methods of input and output channels synchronized. Fix potential spurious close() invocations from finalize() in the case where kfs_close raised exception in channel close method, and the file descriptor did not get invalidated / reset. Reset the channel file descriptor before invoking kfs_close. With the file descriptor numbers re-use not resetting file descriptor could potentially cause close of the valid file descriptor. Ensure that finalize methods do not invoke synchronized methods.
QFS Java components: (a) Java access JAR source path changed, JAR renamed to qfs-access-<ver>.jar, (b) Hadoop QFS plugin is now built and tested in QFS codebase, (c) Maven2 is used to build java components (instead of Apache Ant); it also pulls hadoop dependencies. Minor modifications to build version detection script.
Java access: fix typo
release version
update README.md
logging: set info level versions in server binaries
logging: Reverting log level to DEBUG in MsgLogger. To get version information for 'Release' builds, one could use src/cc/common/buildversgit.sh -g <binary>
Build scripts: minor code cleanup. Remove redundant sub shell execution, do not use bash/ksh extensions, add quotes around variables where appropriate.
Reed Solomon library: restore accidentally overwritten original Makefile. Correct performance test message.
Top level Makefile: always execute javabuild.sh clean to emit a message if maven isn't available.
Meta server: fix failure status propagation from chunk server allocation response to the meta server chunk allocation op.
Chunk server: fix available chunks re-queue logic by adding missing chunk size assignment.
Chunk server, meta server, and web ui: implement chunk directories io counters. Aggregate chunk directories counters on the meta server. Make chunk directories counters available via GET_CHUNK_SERVER_DIRS_COUNTERS RPC. Store sample history for these counters in the web ui. Add form/page to display selected chunk server directory counters.
Common code: optimize "Properties" class implementation by using StringBufT class to store (mostly short) key value pairs, in order to reduce indirection / pointer de-referencing, and therefore reduce cpu d-ram cache / tlb misses. Add method to load properties directly from in-memory buffer. Move optimized io buffer write code into kfsio/IOBufferWriter.h. Invoke HandleUnknownField() method of request object in request parser in the case where the key isn't present in the request parser's fields table. Use this method to implement chunk directory counters and set chunk server properties RPCs.
Meta server: rework chunk server counters response assembly logic. Use the fact that the counter name sets are normally identical for all chunk servers and chunk directories to output the values directly into the io buffer, do another pass if this assumption doesn't hold true. Get rid of the intermediate counter response assembly table. Make the code generic to create both both chunk server counters and chunk directory counters responses.
Chunk server: allocate input stream buffer as part of meta server and remote sync state machines objects to reduce number of memory allocations in rpc processing path.
Test script: eliminate spurious error message in the case when kfs java build was not performed.
Merge branch 'master' of github.com:/quantcast/qfs
Meta server: add log message to track chunk allocation failures in endurance test.
Endurance test: propagate max chunk server op retry count to fanout and sort master tests.
RS library: change the rs test parameters to reduce the test time. Run one test with 6 16k data blocks, then another with 64 (max) 64 byte data blocks.
Meta server: fix old readdirplus format support by adding missing colon to File-count and Dir-count response fields.