Date: Fri, 28 Mar 2014 14:41:22 -0700 From: Freddie Cash <fjwcash@gmail.com> To: Dmitry Morozovsky <marck@rinet.ru> Cc: "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org> Subject: Re: zfs l2arc warmup Message-ID: <CAOjFWZ5F7O%2Bje9w=agwLTu0Jm2-PfzjasEBYQEqD%2B%2B5LvTE_FQ@mail.gmail.com> In-Reply-To: <alpine.BSF.2.00.1403290116550.60856@woozle.rinet.ru> References: <CAFfb-hpi20062%2BHCrSVhey1hVk9TAcOZAWgHSAP93RSov3sx4A@mail.gmail.com> <CALfReydi_29L5tVe1P-aiFnm_0T4JJt72Z1zKouuj8cjHLKhnw@mail.gmail.com> <CAFfb-hpZos5-d3xo8snU1aVER5u=dSFRx-B-oqjFRTkT83w0Kg@mail.gmail.com> <20140328005911.GA30665@neutralgood.org> <CAFfb-hr=wR6nxqL%2B4tn-y2eQEw4n_g7rZoK9rRLnm_Ldcm1TZQ@mail.gmail.com> <alpine.BSF.2.00.1403290032070.60856@woozle.rinet.ru> <CAOjFWZ7h5080%2BzEvSfzxgENwP%2BPXEXKPXdEDHAtbx5RAxxWT0g@mail.gmail.com> <alpine.BSF.2.00.1403290116550.60856@woozle.rinet.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Mar 28, 2014 at 2:19 PM, Dmitry Morozovsky <marck@rinet.ru> wrote: > On Fri, 28 Mar 2014, Freddie Cash wrote: > > [snip most again] > > > Around ZFSv14-ish, the ability to import a pool with a missing ZIL was > > added. > > > > Remember the flow of data in ZFS: > > async write request --> TXG --> disk > > sync write request --> ZIL > > \--> TXG --> disk > > > > All sync writes are written to the pool as part of a normal async TXG > after > > its written sync to the ZIL. And the ZIL is only ever read during pool > > import. > > On the other side, doesn't it put the risk on sync-dependent, like > database, > systems? > > I'm thinking not about losing the transaction, but possibly putting your > filesystem in the middle of (database PoV) transaction, hence render your > DB > inconsistent? > > Quick googling seems to be uncertain about it... > =E2=80=8BThat I don't know. Again, I'm not a ZFS code guru; just a very happy/active ZFS user and reader of stuff online. :) You're thinking of the small window where: - database writes transaction to disk - zfs writes =E2=80=8Bthe data to the ZIL on the log vdev - zfs returns "data is written to disk" to the DB - zfs queues up the write to the pool - the log device dies - the pool is forcibly exported/server loses power Such that the DB considers the transaction complete and the data safely written to disk, but it's actually only written to the ZIL on the separate log device (which no longer exists) and is not stored in the pool yet. Yeah, that could be a problem. A very unlikely event, although not entirely impossible. =E2=80=8BI would think it would be up to the database to be able to roll-ba= ck a database to prior to the corrupted transaction. If the DB has a log or journal or whatever, then it could be used to roll-back, no? It's still considered best practice to use mirror log device. It's just no longer required, nor does a dead log lead to a completely dead pool.=E2=80= =8B --=20 Freddie Cash fjwcash@gmail.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOjFWZ5F7O%2Bje9w=agwLTu0Jm2-PfzjasEBYQEqD%2B%2B5LvTE_FQ>