Simplified distributed block and file storage with strong consistency, like in Ceph
 
 
 
 
 
 
Go to file
Vitaliy Filippov a86788fe3b Support optimizing for the case when parity chunks occupy more space than data chunks
Mostly as an experiment because the problem solved by this commit
comes from Ceph's EC+compression implementation details and I'm not sure
if my implementation will be the same
2020-08-17 01:44:19 +03:00
lp Support optimizing for the case when parity chunks occupy more space than data chunks 2020-08-17 01:44:19 +03:00
Make-gen.pl Auto-generate C++ header dependencies 2020-06-01 00:25:25 +03:00
Makefile Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!) 2020-06-26 18:25:43 +03:00
allocator.cpp Fix linear overwrite, make metadata writes ordered, ignore older entries when recovering journal 2019-11-28 22:36:38 +03:00
allocator.h Fix metadata area size calculation, print free space, wait for free space 2019-11-28 20:23:27 +03:00
base64.cpp Fix PG loading - now it works, at least once 2020-04-17 02:33:44 +03:00
base64.h Add base64 implementation 2020-04-11 12:06:18 +03:00
blockstore.cpp Implement basic OSD status reporting to Consul 2020-04-14 14:52:06 +03:00
blockstore.h Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
blockstore_flush.cpp Make blockstore object state a combination of type and workflow 2020-07-04 22:20:32 +03:00
blockstore_flush.h Fix BS_OP_DELETE (the implementation was untested up to this point) 2020-06-02 14:26:01 +03:00
blockstore_impl.cpp Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
blockstore_impl.h Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
blockstore_init.cpp Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
blockstore_init.h Extract alignments to options 2020-01-16 00:54:25 +03:00
blockstore_journal.cpp Fix possible write stall 2020-06-01 16:18:23 +03:00
blockstore_journal.h Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
blockstore_open.cpp Several bug fixes 2020-05-24 01:51:35 +03:00
blockstore_read.cpp Make blockstore object state a combination of type and workflow 2020-07-04 22:20:32 +03:00
blockstore_rollback.cpp Remove duplicate code between blockstore_{rollback,stable} and blockstore_init 2020-06-02 20:37:00 +03:00
blockstore_stable.cpp Make blockstore object state a combination of type and workflow 2020-07-04 22:20:32 +03:00
blockstore_sync.cpp Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
blockstore_write.cpp Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
cluster_client.cpp Fix two more cluster client bugs 2020-06-27 02:13:35 +03:00
cluster_client.h Fix two more cluster client bugs 2020-06-27 02:13:35 +03:00
crc32c.c Continue fio engine 2019-11-26 00:03:09 +03:00
crc32c.h Add optimized crc32c 2019-11-25 02:30:06 +03:00
dump_journal.cpp Add WRITE_STABLE operation for future replication support 2020-07-05 01:48:02 +03:00
epoll_manager.cpp Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
epoll_manager.h Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
etcd_state_client.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
etcd_state_client.h Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
fio_cluster.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
fio_engine.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
fio_sec_osd.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
http_client.cpp Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!) 2020-06-26 18:25:43 +03:00
http_client.h Extract HTTP client functions from osd_t 2020-05-21 11:39:01 +03:00
lambda_size.cpp c++ lambda size test 2019-11-13 22:36:12 +03:00
messenger.cpp Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
messenger.h Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!) 2020-06-26 18:25:43 +03:00
msgr_receive.cpp Disconnect sockets when read returns zero 2020-06-24 01:32:19 +03:00
msgr_send.cpp Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!) 2020-06-26 18:25:43 +03:00
object_id.h Implement read-modify-write calculation and extract it into a separate file 2020-02-23 02:11:43 +03:00
osd.cpp Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
osd.h Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
osd_cluster.cpp Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
osd_flush.cpp Support iovecs for read operations 2020-06-19 19:47:05 +03:00
osd_id.h Implement read-modify-write calculation and extract it into a separate file 2020-02-23 02:11:43 +03:00
osd_main.cpp Implement PG state locking and PG moving in response to etcd events 2020-04-29 22:23:38 +03:00
osd_ops.h Allow to specify multiple etcd addresses 2020-05-25 16:30:05 +03:00
osd_peering.cpp Support iovecs for read operations 2020-06-19 19:47:05 +03:00
osd_peering_pg.cpp Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
osd_peering_pg.h Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
osd_peering_pg_test.cpp Implement PG state locking and PG moving in response to etcd events 2020-04-29 22:23:38 +03:00
osd_primary.cpp Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
osd_primary.h Split osd_primary.cpp 2020-05-03 11:04:20 +03:00
osd_primary_subops.cpp Implement PG epochs to prevent the "version split" 2020-07-04 00:55:27 +03:00
osd_rmw.cpp Rename reconstruct_stripe and calc_rmw_parity to indicate that they are only for XOR N+1 2020-06-30 10:40:43 +03:00
osd_rmw.h Rename reconstruct_stripe and calc_rmw_parity to indicate that they are only for XOR N+1 2020-06-30 10:40:43 +03:00
osd_rmw_test.cpp Rename reconstruct_stripe and calc_rmw_parity to indicate that they are only for XOR N+1 2020-06-30 10:40:43 +03:00
osd_secondary.cpp Support iovecs for read operations 2020-06-19 19:47:05 +03:00
osd_test.cpp Simplify handle_primary_subop() arguments 2020-06-02 18:44:23 +03:00
pg_states.cpp Extract "state-watching" etcd client into a separate file 2020-05-22 12:38:40 +03:00
pg_states.h Extract "state-watching" etcd client into a separate file 2020-05-22 12:38:40 +03:00
qemu_driver.c Final name is Vitastor 2020-08-03 23:50:59 +03:00
qemu_proxy.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
qemu_proxy.h Final name is Vitastor 2020-08-03 23:50:59 +03:00
ringloop.cpp Implement simple websocket client 2020-04-25 23:11:50 +03:00
ringloop.h Implement simple websocket client 2020-04-25 23:11:50 +03:00
rw_blocking.cpp Benchmark reads in stub_bench, too 2020-06-08 01:54:44 +03:00
rw_blocking.h Benchmark reads in stub_bench, too 2020-06-08 01:54:44 +03:00
stub_bench.cpp Benchmark reads in stub_bench, too 2020-06-08 01:54:44 +03:00
stub_osd.cpp Move uint8_t[] buffers into any_op_t/any_reply_t 2020-02-23 23:21:17 +03:00
stub_uring_osd.cpp Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
test.cpp Hash-based PG distribution experiments 2020-03-17 18:52:39 +03:00
test_allocator.cpp Fix allocator bug 2019-11-27 01:12:25 +03:00
test_blockstore.cpp Make [un]register_consumer operate on pointers, rename get_loop_again() to has_work() 2020-03-04 21:00:20 +03:00
test_pattern.h Make basic primary-write work 2020-02-25 02:55:58 +03:00
timerfd_interval.cpp Make [un]register_consumer operate on pointers, rename get_loop_again() to has_work() 2020-03-04 21:00:20 +03:00
timerfd_interval.h Add simple timer manager 2020-04-15 13:41:44 +03:00
timerfd_manager.cpp Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
timerfd_manager.h Only use EPOLLOUT while connecting 2020-06-23 20:18:31 +03:00
xor.h Stripe read reconstruction 2020-01-31 13:46:23 +03:00