Simplified distributed block and file storage with strong consistency, like in Ceph
 
 
 
 
 
 
Go to file
Vitaliy Filippov de6919b02b Add option to disable multiple overwrites of the same journal sector
This makes sense for some SSDs like Intel D3-4510 because they don't
like overwrites of the same sector:

$ fio -direct=1 -rw=write -bs=4k -size=4k -loops=100000 -iodepth=1
  write: IOPS=3142, BW=12.3MiB/s (12.9MB/s)(97.9MiB/7977msec)

$ fio -direct=1 -rw=write -bs=4k -size=128k -loops=100000 -iodepth=1
  write: IOPS=20.8k, BW=81.4MiB/s (85.3MB/s)(543MiB/6675msec)
2020-09-13 00:37:39 +03:00
lp Add option to disable multiple overwrites of the same journal sector 2020-09-13 00:37:39 +03:00
Make-gen.pl Auto-generate C++ header dependencies 2020-06-01 00:25:25 +03:00
Makefile Check for unsuccessful memory allocations 2020-09-05 01:42:11 +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 Implement min/max inode filters in LIST operation 2020-09-02 14:42:40 +03:00
blockstore_flush.cpp "Lock" retried objects from other flushers when accounting for overruns 2020-09-06 02:19:36 +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 Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
blockstore_impl.h Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
blockstore_init.cpp Fix replicated pool bugs 2020-09-05 21:45:04 +03:00
blockstore_init.h Extract alignments to options 2020-01-16 00:54:25 +03:00
blockstore_journal.cpp Add option to disable multiple overwrites of the same journal sector 2020-09-13 00:37:39 +03:00
blockstore_journal.h Add option to disable multiple overwrites of the same journal sector 2020-09-13 00:37:39 +03:00
blockstore_open.cpp Add option to disable multiple overwrites of the same journal sector 2020-09-13 00:37:39 +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 Change object format in prints to %lx:%lx v%lu 2020-09-05 17:44:05 +03:00
blockstore_stable.cpp Change object format in prints to %lx:%lx v%lu 2020-09-05 17:44:05 +03:00
blockstore_sync.cpp Change object format in prints to %lx:%lx v%lu 2020-09-05 17:44:05 +03:00
blockstore_write.cpp Allow to use lazy sync with replicated pools 2020-09-06 12:08:44 +03:00
cluster_client.cpp Add up_wait_retry_interval to config and fix it so it actually works 2020-09-05 22:05:21 +03:00
cluster_client.h Add up_wait_retry_interval to config and fix it so it actually works 2020-09-05 22:05:21 +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 Fix replicated pool bugs 2020-09-05 21:45:04 +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 Add pool support to OSD, part 1 2020-09-04 17:04:17 +03:00
etcd_state_client.h Add pool support to OSD, part 1 2020-09-04 17:04:17 +03:00
fio_cluster.cpp Fix replicated pool bugs 2020-09-05 21:45:04 +03:00
fio_engine.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
fio_sec_osd.cpp Rename OSD_OP_SECONDARY_* to OSD_OP_SEC_* 2020-08-31 23:57:50 +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
malloc_or_die.h Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
messenger.cpp connecting=true was also forgotten 2020-09-11 19:51:17 +03:00
messenger.h Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
msgr_receive.cpp Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
msgr_send.cpp Add WRITE_STABLE to the secondary OSD for the upcoming replication support 2020-09-01 16:18:58 +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 Add WRITE_STABLE to the secondary OSD for the upcoming replication support 2020-09-01 16:18:58 +03:00
osd.h Allow to use lazy sync with replicated pools 2020-09-06 12:08:44 +03:00
osd_cluster.cpp Missed a bad PG key 2020-09-11 17:56:18 +03:00
osd_flush.cpp Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
osd_id.h Add pool support to OSD, part 1 2020-09-04 17:04:17 +03:00
osd_main.cpp Disable stdout/stderr buffering 2020-09-11 16:52:51 +03:00
osd_ops.cpp Add WRITE_STABLE to the secondary OSD for the upcoming replication support 2020-09-01 16:18:58 +03:00
osd_ops.h Implement min/max inode filters in LIST operation 2020-09-02 14:42:40 +03:00
osd_peering.cpp Fix replicated pool bugs 2020-09-05 21:45:04 +03:00
osd_peering_pg.cpp Fix replicated pool bugs 2020-09-05 21:45:04 +03:00
osd_peering_pg.h Add pool support to OSD, part 1 2020-09-04 17:04:17 +03:00
osd_peering_pg_test.cpp Check for unsuccessful memory allocations 2020-09-05 01:42:11 +03:00
osd_primary.cpp Allow to use lazy sync with replicated pools 2020-09-06 12:08:44 +03:00
osd_primary.h Allow to use lazy sync with replicated pools 2020-09-06 12:08:44 +03:00
osd_primary_subops.cpp Allow to use lazy sync with replicated pools 2020-09-06 12:08:44 +03:00
osd_rmw.cpp Check for unsuccessful memory allocations 2020-09-05 01:42:11 +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 Fix replicated pool bugs 2020-09-05 21:45:04 +03:00
osd_test.cpp Change object format in prints to %lx:%lx v%lu 2020-09-05 17:44:05 +03:00
pg_states.cpp Add replicated pool support to OSD logic 2020-09-05 01:42:11 +03:00
pg_states.h Add replicated pool support to OSD logic 2020-09-05 01:42:11 +03:00
qemu_driver.c Add pool setting to fio and qemu drivers 2020-09-05 17:44:00 +03:00
qemu_proxy.cpp Final name is Vitastor 2020-08-03 23:50:59 +03:00
qemu_proxy.h Add pool setting to fio and qemu drivers 2020-09-05 17:44:00 +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 Rename OSD_OP_SECONDARY_* to OSD_OP_SEC_* 2020-08-31 23:57:50 +03:00
stub_osd.cpp Add WRITE_STABLE to the secondary OSD for the upcoming replication support 2020-09-01 16:18:58 +03:00
stub_uring_osd.cpp Add WRITE_STABLE to the secondary OSD for the upcoming replication support 2020-09-01 16:18:58 +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