Vitaliy Filippov
4a2dcf7b6b
Update the license to VNPL 1.1
...
VNPL 1.1 is slightly reworded to make it clear that proprietary software
interacting with Vitastor and providing some kind of service to end users isn't
a "Proxy Program" if it's not specially designed to be used with Vitastor.
For example, Windows OS running in a virtual machine stored in a Vitastor
cluster clearly isn't.
2021-02-25 23:55:33 +03:00
Vitaliy Filippov
0471b09b9c
Add license notices to all source code files
2020-09-17 23:07:06 +03:00
Vitaliy Filippov
37b27c3025
Implement basic OSD status reporting to Consul
2020-04-14 14:52:06 +03:00
Vitaliy Filippov
b7ccd63104
Return version number from reads
2020-02-12 12:30:50 +03:00
Vitaliy Filippov
ec50957c41
WIP primary OSD read
2020-01-30 22:06:46 +03:00
Vitaliy Filippov
43f6cfeb73
Extract alignments to options
2020-01-16 00:54:25 +03:00
Vitaliy Filippov
4b05bde3a2
Block writes earlier than sync/stabilize would be blocked, too
2020-01-10 20:05:17 +03:00
Vitaliy Filippov
b3f2102f33
Add queue stall tracking
2020-01-10 01:23:46 +03:00
Vitaliy Filippov
a7e74670a5
Split blockstore implementation and interface header
2019-12-15 14:57:18 +03:00
Vitaliy Filippov
749ab6e2c6
Rename blockstore_operation to blockstore_op_t
2019-12-15 14:57:18 +03:00
Vitaliy Filippov
02a0eb49c2
Begin reply code
2019-12-14 20:51:49 +03:00
Vitaliy Filippov
1f7381e220
Do not use goto resume_0 due to some strange -O3 bug which leads to hangs (it seems it optimizes flush_queue.size() away)
2019-12-03 02:23:29 +03:00
Vitaliy Filippov
76caecf7c7
Inmemory metadata mode
2019-12-02 15:42:42 +03:00
Vitaliy Filippov
14b2f49f4d
FIXME
2019-12-01 16:43:21 +03:00
Vitaliy Filippov
76655929c4
Add readonly flag
2019-12-01 16:41:07 +03:00
Vitaliy Filippov
9260cd263a
Verify data crc32 when reading journal
2019-11-30 23:32:10 +03:00
Vitaliy Filippov
40781c67b2
Trim journal on start
2019-11-29 02:13:32 +03:00
Vitaliy Filippov
b6fff5a77e
Fix metadata area size calculation, print free space, wait for free space
...
FIXME: Now it crashes with -ENOSPC on linear overwrite
2019-11-28 20:23:27 +03:00
Vitaliy Filippov
9fa0d3325f
Support inmemory journal
2019-11-28 18:06:50 +03:00
Vitaliy Filippov
e1ac4dba23
Fix safe stop procedure
2019-11-28 02:27:17 +03:00
Vitaliy Filippov
cbf5173d1b
Allow to specify device paths in fio options
2019-11-28 00:50:52 +03:00
Vitaliy Filippov
35a6ed728d
Fix another stall due to bad unstable_writes tracking, do not try to write beyond the end of the journal
2019-11-28 00:28:08 +03:00
Vitaliy Filippov
e2b91968c5
Fix sync confirmations and some pipeline-stall bugs
2019-11-27 18:07:38 +03:00
Vitaliy Filippov
ff7469ee91
Make allocator a class
2019-11-27 00:50:57 +03:00
Vitaliy Filippov
b8e53f8c67
Fix op validation, fix journal sector usage tracking
...
Now it runs for a while with fio but then crashes with ENOSPC because
of an apparent bug in the allocator
2019-11-26 20:38:25 +03:00
Vitaliy Filippov
be3015169f
Safe stop procedure
2019-11-25 01:29:07 +03:00
Vitaliy Filippov
2b12428cb1
Debug OP_STABLE so the basic case passes without problem
2019-11-21 02:09:18 +03:00
Vitaliy Filippov
3bfa2f5f39
Fix io_uring submission, journal sector selection
2019-11-19 18:07:40 +03:00
Vitaliy Filippov
8c690c76ec
Wakeup ring loop
2019-11-18 14:08:11 +03:00
Vitaliy Filippov
5b8df6768b
Try to submit a test write operation
2019-11-18 02:36:53 +03:00
Vitaliy Filippov
debaf6c943
Print init messages
2019-11-18 02:09:34 +03:00
Vitaliy Filippov
eec1c35ea4
Begin to debug ... all of this stuff :)
2019-11-16 02:32:29 +03:00
Vitaliy Filippov
a4aaa3c7c7
First implementation of journal trimming
...
In theory it's possible to start testing blockstore at this point!
2019-11-15 16:12:55 +03:00
Vitaliy Filippov
1c6b9778a4
Handle all io_uring events using lambdas
2019-11-13 22:46:42 +03:00
Vitaliy Filippov
214da03735
Move flusher into a separate file
2019-11-13 17:46:05 +03:00
Vitaliy Filippov
bb55a7fbf4
Zero-fill new objects and write them to the main storage
2019-11-12 20:49:57 +03:00
Vitaliy Filippov
4afa95b0e3
FSM is a dreadful unreadable thing, reimplement using gotos
2019-11-12 18:16:41 +03:00
Vitaliy Filippov
e807d7433e
Add stop method stub
2019-11-11 21:22:28 +03:00
Vitaliy Filippov
46e96c5128
Remove duplicate journal buffer submission code
2019-11-11 18:38:57 +03:00
Vitaliy Filippov
890335bff6
Begin implementation of the STABLE operation
2019-11-10 14:37:45 +03:00
Vitaliy Filippov
64185f7a1f
Move enqueue_write to _write.cpp
2019-11-10 13:27:59 +03:00
Vitaliy Filippov
e5caffb6ac
Allow to read specific versions
2019-11-10 13:26:56 +03:00
Vitaliy Filippov
ae56fe1067
Finish sync algorithm in theory
2019-11-10 12:52:37 +03:00
Vitaliy Filippov
24f5d71595
Move handle_event code into _read.cpp, _write.cpp; move sync code into _sync.cpp
2019-11-10 02:27:27 +03:00
Vitaliy Filippov
8e634d5b74
Continue sync implementation
2019-11-09 02:16:44 +03:00
Vitaliy Filippov
7456f0f7e2
Remove duplicate code
2019-11-08 19:54:57 +03:00
Vitaliy Filippov
153de65ce7
Begin sync implementation
2019-11-08 19:54:45 +03:00
Vitaliy Filippov
90f081f398
Check for op->wait_for conditions
...
It's almost identical to just re-submit... so maybe it was pointless
2019-11-08 12:08:25 +03:00
Vitaliy Filippov
a5f2d8b85e
Ack writes
2019-11-08 02:31:07 +03:00
Vitaliy Filippov
40890aeec5
Rename dirty_queue to dirty_db and make it a single std::map
2019-11-08 00:20:10 +03:00