These 19 commits are when the Protocol Buffers files have changed:
| Commit: | d2f5b0c | |
|---|---|---|
| Author: | Babatunde Micheal Okutubo | |
| Committer: | GitHub | |
[feat] - WriteRequest and ApplyMutation implementation for chunk server file service (#54) * implement write request and apply mutation * add definition for apply mutation grpc * fix checksum in grpc to use bytes * check sent data checksum * nit * ConcurrentRegisterAndAllocateChunkServers test
The documentation is generated from this commit.
| Commit: | e78f2e3 | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
Implement InitFileChunk, ReadFileChunk, and AdvanceFileChunkVersion (#48) * [feat] add chunk server impl class * [feat] add revoke lease logic * [docs] add logging comments throughout implementation * add chunk version setter/getter; add const for function param declaration * finish implementingn grant lease, as well as bug fixes * [fix] dynamically create grpc protocol clients, instead of creating ones at startup * [refactor] rename functions and hashmap code, with constructor behaviors * [fix] fixes typo * [refactor] improve logging * [feat] add destructor to chunk server impl * [chore] print all test outputs, detailed * make chunk server public, and clarify version mock functions * add chunk server impl test * minor refactor * [tests] add integration test for chunk server lease implementation * fix typo * fix typo * use strcat instead of + for string building * use file manager for get version * use config manager for initializing file manager database * use file manager for creatintg chunks * add disk db name into end2end config file generation library * style fixes * [feat] add initial server logic for InitFileChunk * add template for file service implementation test * implement file read handler * improve and document when to (or not to) prepare redo/undo logs * uncomment all the commented out code * make test default pass * implement advance file version * [docs] add easier to read commet on different conditional branches * fix typo * add init file chunk test * add test for file service impl * set new chunk version in advance reply * use new ports for the file impl test * add comments about placeholder vars * change status enums * fix typo
| Commit: | 140930e | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
[feat] Implement Chunk Server class, and lease RPC handler, with E2E test (#42) * [feat] add chunk server impl class * [feat] add revoke lease logic * [docs] add logging comments throughout implementation * add chunk version setter/getter; add const for function param declaration * finish implementingn grant lease, as well as bug fixes * [fix] dynamically create grpc protocol clients, instead of creating ones at startup * [refactor] rename functions and hashmap code, with constructor behaviors * [fix] fixes typo * [refactor] improve logging * [feat] add destructor to chunk server impl * [chore] print all test outputs, detailed * make chunk server public, and clarify version mock functions * add chunk server impl test * minor refactor * [tests] add integration test for chunk server lease implementation * fix typo
| Commit: | 2222ed4 | |
|---|---|---|
| Author: | xicheng87 | |
| Committer: | GitHub | |
Continue to implement MasterMetadataService to include chunk allocation, and add caching of server locations on client side (#41) * [feat] Start shaping up Client impl. Add a ClientImpl object, which serves as an impl object to manage units such as cache manager and to issue rpcs with master client and chunk server client * [feat] Add implementation of open funtion to create a file, and its server-side implementation using MetadataManager * [fix] address review feedback * [refactor] Merge version, primary_location into FileChunkMetadata; furthermore, add a repeated field named locations to FileChunkMetadata, as we need to send this information over the wire (using protobuf); although it was stored by ChunkServerManager internally, we ultimately need to send it as a reply to a OpenFileRequest, and this is why we need to add it back * [feat] shaping up the master_metadata_service_impl to allocate chunk when file is created; make clientImpl cache the file chunk metadata * [nit] minor improvement * [fix] revision per feedback Co-authored-by: Gan Tu <github@tugan.dev> Co-authored-by: Gan Tu <tugan@berkeley.edu>
| Commit: | 82e357f | |
|---|---|---|
| Author: | Babatunde Micheal Okutubo | |
| Committer: | GitHub | |
[feat] - File chunk manager (#40) * file chunk mgr * nit * nit
| Commit: | 337ad77 | |
|---|---|---|
| Author: | Babatunde Micheal Okutubo | |
| Committer: | GitHub | |
[feat] - Complete chunkserver manager and its services, and chunkserver control service for heartbeat (#37) * big commit: chunkserver complete implementation with its services * fix build and lil comment * some changes * more comment for priority lsit * todo comment
| Commit: | da9652c | |
|---|---|---|
| Author: | xicheng87 | |
| Committer: | GitHub | |
[feat] Add ClientImpl and use it to implement the client-side APIs. File creation with open() gets implemented. (#38) * [feat] Start shaping up Client impl. Add a ClientImpl object, which serves as an impl object to manage units such as cache manager and to issue rpcs with master client and chunk server client * [feat] Add implementation of open funtion to create a file, and its server-side implementation using MetadataManager * [fix] address review feedback Co-authored-by: Gan Tu <github@tugan.dev>
| Commit: | eca0204 | |
|---|---|---|
| Author: | xicheng87 | |
| Committer: | GitHub | |
Refactor ChunkServerServiceClient to two separate classes, one for the client side and one for the master side (#33) * [feat] Cleanup comments in client's header and add OpenFlag enum type * [feat] Add client cache manager which stores a local mapping form chunk handle to sever locations, and some other auxillary information * [fix] add more documentation and minor change in unit test * [refactor] Refactor helper function for testing into a tests/utils module * [refactor] Refactor ChunkServerServiceClient to two separate classes, one for the client side and one for the master side * [refactor] rename according to rename feedback, and add SendFileChunkRequest which sends file chunk data and revise WriteFileChunkRequest that instructs replicas to apply the data to disk * refactor out send data flow and write request flow (#34) Co-authored-by: Gan Tu <tugan@berkeley.edu>
| Commit: | 0a7022e | |
|---|---|---|
| Author: | xicheng87 | |
| Committer: | GitHub | |
[feat] Extend MetadataManager to include ChunkMetadata (#31) * [feat] Introduce thread_safe_flat_hash_map and use it for the internal resource management of LogManager * [feat] Use thread_safe_flat_hash_map for managing FileMetadata in MetadataManager * [feat] Add more stress test cases to exercise metadata manager; style fix of comment lines etc. * [fix] Move initialization of filename before the emplace function gets called. * Check in extension of Metadata Manager to manage chunk metadata (version, primary server location and chunk server locations), tests pending * [feat] Enahnce the stress test for concurrent chunk creation, added a set of reader threads that exercise GetFileChunk to read from FileMetadata; added first unit test for chunk metadata read and write * [feat] Revise AdvanceChunkVersion name, and revise semantics of SetPrimaryServerLocation, which appends to the locations if the primary location is not in the list, and add test cases for read / write chunk metadata * [doc] Add some additional comments clarifying design decision * [fix] Implement submaps ourselves to manage concurrent read / write to the shared lookup tables as there are issues when we use the parallel hashmap library but do not have explicit control over submaps * [fix] Refactor the management of submaps for parallel hashmap into a customerized class and encapsulate atomic operations in newly added methods * [fix] Purge out server locations from the FileChunkMetadata as it gets owned by the ChunkServerManager Co-authored-by: Gan Tu <tugan@berkeley.edu>
| Commit: | 49cf1b5 | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
Make chunk version a part of AdvanceFileChunkVersionRequest (#29)
| Commit: | bd6847e | |
|---|---|---|
| Author: | Babatunde Micheal Okutubo | |
| Committer: | GitHub | |
[feat] - Master chunk server manager service v1 (#28) Co-authored-by: Gan Tu <tugan@berkeley.edu>
| Commit: | 19fe034 | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
[fix] make enum's first type be throwable unknown type, as suggested by proto3 (#24) This is because the first enum type is indistinguishable from unnset or default value, and thus is not sent over the wire by serialization, nor in debug string
| Commit: | 8593f3f | |
|---|---|---|
| Author: | Gan Tu | |
[fix] fix typo: Requeast -> Request
| Commit: | ea51a0d | |
|---|---|---|
| Author: | xicheng87 | |
| Committer: | GitHub | |
[feature + refactor] Added MetadataManager and some refactoring (#21) Added MatadataManger which provides thread-safe interfaces to - Access reference to fileMetadata - Create fileMetadata - Create new file chunk - Delete a file (placeholder) - Assign new chunk handle
| Commit: | 603508e | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
[feat] chunk server gRPC protocol definitions (#20) More gRPC protocol definitions for chunk servers regarding lease grant, extension, revocation chunk creation, chunk version advancements (for writes) file read and write
| Commit: | 5469dac | |
|---|---|---|
| Author: | Babatunde Micheal Okutubo | |
| Committer: | GitHub | |
[feature]: Chunk server manager v1 (#15) * chunk server manager v1 * chunk server manager test * use protobuf for chunkserver and location * nit * format master build file * build file formatting * make travis run test
| Commit: | 35a2907 | |
|---|---|---|
| Author: | Gan Tu | |
[docs] fix typo to say we use UUID instead
| Commit: | 51b381b | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
[fix] simplify gRPC for create and open (#13) * [fix] rename Create gRPC request/reply proto to be consistent with gRPC naming * [feat] combine create and open gRPC
| Commit: | 2a421a9 | |
|---|---|---|
| Author: | Gan Tu | |
| Committer: | GitHub | |
[feat] add master metadata service gRPC proto definitions (#12) * [feat] add master metadata service gRPC proto definitions * [fix] update int32 to uint32