1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-12-15 12:09:09 +03:00
Commit Graph

19 Commits

Author SHA1 Message Date
Patrick LeBlanc
d0c457a068 Parameterized the journal size threshold to trigger a flush. 2019-07-05 14:20:39 -05:00
Patrick LeBlanc
62c853595f Changed the sync trigger to include outstanding journal size.
Right now it's hardcoded at 50MB for testing.  Will parameterize later.
2019-07-05 11:02:55 -05:00
Patrick LeBlanc
aa65090a61 Fixed another race. Also shortened the interval Sync creates new jobs.
In this one, if a read, then a delete happened on an object being flushed
by makeSpace(), it would leave the toBeDeleted struct with an invalid
list iterator.
2019-07-03 17:18:14 -05:00
Patrick LeBlanc
715d041a85 Fixed several bugs exposed by setting the cache size to an
unreasonably small value.  Had to make a compromise to avoid a deadlock
though.  read/write/append/truncate will now be able to exceed the cache size
limit temporarily.  The cache will be reconciled at the end of the respective
operation.

Ex, given a cache of 100MB, and a read() of 500MB, all 500MB
of data being read will stay in the cache until it is read, then
400MB of it will be evicted.  Same on the write side.
2019-06-28 13:20:31 -05:00
Ben Thompson
9351962942 Add sync forceFlush and modified unit_test to be in working state again. 2019-05-28 15:18:19 -05:00
Patrick LeBlanc
0cad8308f1 Untangled cache flushing behavior s.t. it should no longer deadlock.
Now, something that grabs the sync or cache locks should never block
while holding the lock.  Need to review the code to make sure of that.

Also made the recursive mutexes non-recursive again.
2019-05-24 13:02:09 -05:00
Patrick LeBlanc
aad393dd34 Fixed a bug in Sync where we were using an object through a
reference to a shared pointer.  A deref of the shared ptr could
trigger the dtor of the object while threads are waiting.  Fixed that
by properly copying the shared ptr.
2019-05-13 12:11:16 -05:00
Patrick LeBlanc
1ee3c760b1 Changed Sync s.t. it starts processing jobs every 10 seconds instead
of every time there's an event.  Big improvement in efficiency.
2019-04-25 12:07:30 -05:00
Patrick LeBlanc
0be099769b Cleaned up a kludge, and made the retry behavior requeue a job
rather than wait forever to it to work in the same thread.
2019-04-08 10:40:28 -05:00
Patrick LeBlanc
a813581567 Got it to build. Getting into to some header file madness, but moving on. 2019-03-27 17:44:50 -05:00
Patrick LeBlanc
4ff769ab24 Got a pretty decent unit test for Sync working. 2019-03-22 12:04:36 -05:00
Patrick LeBlanc
323fd18953 Fixed some stuff, got a basic unit test for sync to work. 2019-03-21 15:23:23 -05:00
Patrick LeBlanc
07b4bdd19c Got the synchronizer stuff to build. 2019-03-21 12:42:10 -05:00
Patrick LeBlanc
2990d320aa Checkpointing some unit test stuff, won't build yet. 2019-03-20 13:17:16 -05:00
Patrick LeBlanc
97d2844994 Made Sync take into account that object names may change
beteween when a job is created and when it is run.
2019-03-19 17:24:32 -05:00
Patrick LeBlanc
6366a54bbc Revamped/simplified the Sync impl. Won't build yet. 2019-03-18 14:49:25 -05:00
Patrick LeBlanc
931cb9fb54 First cut of synchronizer is done, won't build yet. 2019-03-15 14:08:19 -05:00
Patrick LeBlanc
9906ff9efb Check pointing some changes I made all over the place
working on Synchronizer.  Won't build yet.
2019-03-11 16:09:07 -05:00
Patrick LeBlanc
df6675db01 Checkpointing additions to Cache 2019-03-07 13:18:38 -06:00