> > > 1. a post-commit error "database is locked"
> > > 2. new representations will not be added in the rep-cache.db
> > > 3. deduplication does not work for new data committed at this time
> > > 4. commits work with delays.

> > I look to hearing Denis's concerns with the sharding approach.
> 
>   In addition, if we ever need atomic operations on the entire
>   rep-cache, we will have to use ATTACH DATABASE statement [1] with the master
>   journal [2], which I think is not used anywhere now, and is not supported by
>   all journaling modes.
> 

Fair point.  Let's see the pros and cons:

- pro: fixes issues #1 through #4, and the "large commits starve the following
  commit" issue as well

- con: if someday we have a need for cross-shard atomic transactions, we'll
  have to either (1) forbid rep-cache.db shards from using WAL mode; or
  (2) figure out another way to solve whichever problem we would use atomic
  cross-shard transactions to solve if we had an unsharded rep-cache.db; or
  (3) revert to a monolithic rep-cache.db and figure out another way to solve
  the problems this thread is about.

> - If I'm not mistaken, this approach requires a format bump. So this does not
>   fix the problem for existing repositories. It is also necessary to perform
>   the division into shards in some form, which means that a fast in-place
>   upgrade also probably will not fix the problem.

An in-place upgrade would be straightforward.

> 

I've snipped most of your points as I already answered them upthread.  If
I didn't respond to some point which _hasn't_ already been addressed upthread,
just ask it again.

My concerns stand.

Daniel

Reply via email to