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
416a80b099
Make blockstore object state a combination of type and workflow
2020-07-04 22:20:32 +03:00
Vitaliy Filippov
592bcd3699
Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!)
2020-06-26 18:25:43 +03:00
Vitaliy Filippov
0f43f6d3f6
Fix crashes, print some stats
...
Notably:
- fix the `delete op` inside lambda callback crash (it frees the lambda itself
which results in use-after-free with g++)
- fix stop_client() reenterability
- fix a bug in the blockstore layer which resulted in always returning version=0
for zero-length reads
- change error codes for blockstore_stabilize
2020-03-31 17:55:31 +03:00
Vitaliy Filippov
6982fe1255
Do not block reads by previous unfinished writes
2020-03-13 21:28:49 +03:00
Vitaliy Filippov
0e177c7a2a
Fix possible leak in blockstore_read
2020-02-21 19:38:43 +03:00
Vitaliy Filippov
b7ccd63104
Return version number from reads
2020-02-12 12:30:50 +03:00
Vitaliy Filippov
43f6cfeb73
Extract alignments to options
2020-01-16 00:54:25 +03:00
Vitaliy Filippov
36d8c8724f
Fix sparse reads using bitmap, fix journal replay (we could sometimes lose its end)
2020-01-12 23:38:33 +03:00
Vitaliy Filippov
cf819eb442
Implement sparse block bitmap to avoid zero-fill
2020-01-12 02:55:32 +03:00
Vitaliy Filippov
b3f2102f33
Add queue stall tracking
2020-01-10 01:23:46 +03:00
Vitaliy Filippov
4677ace4cc
Allow zero-length overwrites
2019-12-21 19:04:36 +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
aaea3e1f99
Fix read_fulfill, use vector
2019-12-03 12:09:30 +03:00
Vitaliy Filippov
a2ed38fb6b
Fix segfault
2019-12-03 02:27:25 +03:00
Vitaliy Filippov
9fa0d3325f
Support inmemory journal
2019-11-28 18:06:50 +03:00
Vitaliy Filippov
a7dc759f74
Compile fio engine
2019-11-26 01:50:26 +03:00
Vitaliy Filippov
50cf3667fa
Track unstable writes
2019-11-25 01:16:34 +03:00
Vitaliy Filippov
e40a71b2ce
Check result to be equal to iov_len
2019-11-18 02:09:34 +03:00
Vitaliy Filippov
c2de733e35
Copy io_uring_prep_* to my_uring_prep_* so they do not clear user_data
2019-11-17 21:39:30 +03:00
Vitaliy Filippov
c7d9dc027b
Remove extra states as they seem useless
2019-11-15 14:02:37 +03:00
Vitaliy Filippov
bc549553e4
Rename dirty_entry.size to len, remove some unneeded methods and fields, read metadata correctly
2019-11-14 01:13:07 +03:00
Vitaliy Filippov
1c6b9778a4
Handle all io_uring events using lambdas
2019-11-13 22:46:42 +03:00
Vitaliy Filippov
f892104aed
Begin journal flusher
2019-11-12 12:02:11 +03:00
Vitaliy Filippov
d2d8d6e7fb
Comments about stabilize operation, track unsynced_writes correctly
2019-11-11 02:53:19 +03:00
Vitaliy Filippov
ff57dd420e
Rename object_db to clean_db
2019-11-10 22:41:40 +03:00
Vitaliy Filippov
69581e6d0c
Send STABLE entry to the journal
2019-11-10 22:41:40 +03:00
Vitaliy Filippov
e5caffb6ac
Allow to read specific versions
2019-11-10 13:26:56 +03:00
Vitaliy Filippov
2d0334f9b9
Remove in_progress_ops
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
7456f0f7e2
Remove duplicate code
2019-11-08 19:54:57 +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
Vitaliy Filippov
5330461029
Move blockstore journal fields to journal_t, implement multiple write buffers for journal sectors
2019-11-07 23:42:24 +03:00
Vitaliy Filippov
84c62840bd
Begin write algorithm
2019-11-07 02:24:12 +03:00
Vitaliy Filippov
2f18a3d19e
Begin implementation of enqueue/dequeue
2019-11-06 19:27:48 +03:00
Vitaliy Filippov
3f5ad16748
Fix ringloop, implement first version of handle_event for reads
2019-11-05 23:06:06 +03:00
Vitaliy Filippov
82cf0a170e
Port everything to ring_loop
2019-11-05 02:43:21 +03:00
Vitaliy Filippov
351366d228
Add ring_loop
2019-11-05 02:12:04 +03:00
Vitaliy Filippov
c959948c82
Finish journal reader
2019-11-04 20:18:52 +03:00
Vitaliy Filippov
f4705d81d7
Split into multiple files, begin init_loop, adjust read
2019-11-03 02:30:11 +03:00