Commit graph

23073 commits

Author SHA1 Message Date
https://www.google.com/accounts/o8/id?id=AItOawlc-3pdibcizrdz4WmZooECL0k6AvM1cWc
3fc8d834e8 Added a comment: S3 file/folder names 2015-02-19 22:22:26 +00:00
Joey Hess
90c918f181 devblog 2015-02-19 18:17:45 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmuT_R0AecWcfCFTN055N8rD_WwQkgo1PE
52daae54eb Added a comment: macosx 10.9.5 2015-02-19 20:18:05 +00:00
Joey Hess
d24cfd315e add news item for git-annex 5.20150219 2015-02-19 14:55:05 -04:00
Joey Hess
7751a0584a typo 2015-02-19 14:43:21 -04:00
Joey Hess
6726ce8116 fix intentional typo left in after debugging session, broke quvi support (last release is ok) 2015-02-19 14:31:04 -04:00
Joey Hess
8c915ccebc prep release 2015-02-19 14:16:19 -04:00
edward
b3778348f8 fix typo: datbase -> databae 2015-02-19 15:31:27 +00:00
edward
89b97bcdbc correct typo: datbase -> database 2015-02-19 15:30:15 +00:00
https://www.google.com/accounts/o8/id?id=AItOawmg0NqVniTETKYIWr6eyYRJnakNg0A6tRc
4e1a25f940 Added a comment 2015-02-19 11:54:14 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnbBRfl5F8gKRr1ko8Ai6FbEZStXXNF1S4
510a116627 Added a comment: "new files" group 2015-02-19 11:06:34 +00:00
anarcat
3546612a6a server-level daemon idea 2015-02-18 22:03:05 +00:00
Joey Hess
d33bc0e014 Merge branch 'master' of ssh://git-annex.branchable.com 2015-02-18 17:56:28 -04:00
Joey Hess
37a13e89a1 devbog 2015-02-18 17:55:37 -04:00
anarcat
ef82fab4bb Added a comment: thanks 2015-02-18 21:53:52 +00:00
Joey Hess
5a7bcb64cb Merge branch 'master' of ssh://git-annex.branchable.com 2015-02-18 17:50:18 -04:00
Joey Hess
19b78d3aa9 add gitlab-shell 2015-02-18 17:47:07 -04:00
Joey Hess
b541a5e38b WIP 2015-02-18 17:46:58 -04:00
Joey Hess
a01285ff33 more extensions needed by newer version of persistent 2015-02-18 17:30:07 -04:00
Joey Hess
80683871ee deal with rare SELECT ErrorBusy failures
I think they might be a sqlite bug. In discussions with sqlite devs.
2015-02-18 16:56:52 -04:00
Joey Hess
af254615b2 use WAL mode to ensure read from db always works, even when it's being written to
Also, moved the database to a subdir, as there are multiple files.

This seems to work well with concurrent fscks, although they still do
redundant work due to the commit granularity. Occasionally two writes will
conflict, and one is then deferred and happens later.

Except, with 3 concurrent fscks, I got failures:

git-annex: user error (SQLite3 returned ErrorBusy while attempting to perform prepare "SELECT \"fscked\".\"key\"\nFROM \"fscked\"\nWHERE \"fscked\".\"key\" = ?\n": database is locked)

Argh!!!
2015-02-18 15:54:24 -04:00
Joey Hess
823cc9b800 Merge branch 'master' into database 2015-02-18 14:12:34 -04:00
Joey Hess
17cb219231 more robust handling of deferred commits
Still not robust enough. I have 3 fscks running concurrently, and am
seeing:

("commit deferred",user error (SQLite3 returned ErrorBusy while attempting
to perform step.))

and

git-annex: user error (SQLite3 returned ErrorBusy while attempting to perform prepare "SELECT \"fscked\".\"key\"\nFROM \"fscked\"\nWHERE \"fscked\".\"key\" = ?\n": database is locked)
2015-02-18 14:11:27 -04:00
https://www.google.com/accounts/o8/id?id=AItOawlmLuHhscJsoAqb9q0N3LdtHum6LjY1LK4
76a946852d Added a comment 2015-02-18 12:39:17 +00:00
https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8
08cd37c710 Added a comment 2015-02-18 12:39:05 +00:00
https://www.google.com/accounts/o8/id?id=AItOawlmLuHhscJsoAqb9q0N3LdtHum6LjY1LK4
202f2d3a2e removed 2015-02-18 12:15:01 +00:00
https://www.google.com/accounts/o8/id?id=AItOawlmLuHhscJsoAqb9q0N3LdtHum6LjY1LK4
a3bda4dca0 Added a comment 2015-02-18 12:14:26 +00:00
https://www.google.com/accounts/o8/id?id=AItOawldTFGlKsKUyq6F6CJ22CNBnmYJ0LQbLUQ
64d172d6cc Added a comment 2015-02-18 06:58:59 +00:00
Joey Hess
ca4cd9f960 comment 2015-02-17 17:55:37 -04:00
Joey Hess
149d4bda61 comment 2015-02-17 17:53:08 -04:00
Joey Hess
5896944f3f comment 2015-02-17 17:51:29 -04:00
Joey Hess
6154cbf4aa comment 2015-02-17 17:49:39 -04:00
Joey Hess
318cc814b0 comment 2015-02-17 17:45:24 -04:00
Joey Hess
9f3785e8ee comment 2015-02-17 17:42:53 -04:00
Joey Hess
881bed8046 comment 2015-02-17 17:40:43 -04:00
Joey Hess
1f19bd941e wrapping 2015-02-17 17:38:40 -04:00
Joey Hess
d857e2104d wtf 2015-02-17 17:37:36 -04:00
Joey Hess
2bac643436 Merge branch 'master' of ssh://git-annex.branchable.com 2015-02-17 17:12:16 -04:00
Joey Hess
12048f5d17 devblog 2015-02-17 17:10:47 -04:00
Joey Hess
689a497b13 comment 2015-02-17 17:09:42 -04:00
Joey Hess
7fb2e4ec14 fix title 2015-02-17 17:09:35 -04:00
Joey Hess
39a82a76c1 close bug 2015-02-17 17:09:21 -04:00
Joey Hess
3414229354 fsck: Multiple incremental fscks of different repos (some remote) can now be in progress at the same time in the same repo without it getting confused about which files have been checked for which remotes. 2015-02-17 17:08:11 -04:00
Joey Hess
a3370ac459 allow for concurrent incremental fsck processes again (sorta)
Sqlite doesn't support multiple concurrent writers
at all. One of them will fail to write. It's not even possible to have two
processes building up separate transactions at the same time. Before using
sqlite, incremental fsck could work perfectly well with multiple fsck
processes running concurrently. I'd like to keep that working.

My partial solution, so far, is to make git-annex buffer writes, and every
so often send them all to sqlite at once, in a transaction. So most of the
time, nothing is writing to the database. (And if it gets unlucky and
a write fails due to a collision with another writer, it can just wait and
retry the write later.) This lets multiple processes write to the database
successfully.

But, for the purposes of concurrent, incremental fsck, it's not ideal.
Each process doesn't immediately learn of files that another process has
checked. So they'll tend to do redundant work.

Only way I can see to improve this is to use some other mechanism for
short-term IPC between the fsck processes. Not yet done.

----

Also, make addDb check if an item is in the database already, and not try
to re-add it. That fixes an intermittent crash with
"SQLite3 returned ErrorConstraint while attempting to perform step."

I am not 100% sure why; it only started happening when I moved write
buffering into the queue. It seemed to generally happen on the same file
each time, so could just be due to multiple files having the same key.
However, I doubt my sound repo has many duplicate keys, and I suspect
something else is going on.

----

Updated benchmark, with the 1000 item queue: 6m33.808s
2015-02-17 16:56:12 -04:00
Joey Hess
bd6e41f8e6 Merge branch 'master' into database
Conflicts:
	debian/changelog
2015-02-17 16:15:00 -04:00
195.234.136.80
d6f618366d poll vote (OpenStack SWIFT) 2015-02-17 17:59:25 +00:00
Joey Hess
afb3e3e472 avoid crash when starting fsck --incremental when one is already running
Turns out sqlite does not like having its database deleted out from
underneath it. It might suffice to empty the table, but I would rather
start each fsck over with a new database, so I added a lock file, and
running incremental fscks use a shared lock.

This leaves one concurrency bug left; running two concurrent fsck --more
will lead to: "SQLite3 returned ErrorBusy while attempting to perform step."
and one or both will fail. This is a concurrent writers problem.
2015-02-17 13:30:24 -04:00
Joey Hess
ea76d04e15 show error when sqlite crashes worker thread
Better than "blocked indefinitely in MVar"..
2015-02-17 13:03:57 -04:00
sairon
c6ff9385e6 Added a comment 2015-02-17 15:04:55 +00:00
https://www.google.com/accounts/o8/id?id=AItOawlmLuHhscJsoAqb9q0N3LdtHum6LjY1LK4
0f9c158222 removed 2015-02-17 14:44:58 +00:00