That is awesomely helpful info. Thank you very much! Aseem
On Thu, Sep 8, 2011 at 12:55 AM, Chris Gioran < chris.gio...@neotechnology.com> wrote: > Hi Assem > > The logical log file is where all changes to be performed to the store > are written out before they are actually applied - also referred to as > the Write Ahead Log. The file that hosts this is bound to a specific > size above which a rotation happens: a new file is created to host the > WAL, all pending transactions are moved over, the store files are > flushed and the old file marked as unused. > Setting the configuration option "keep_logical_logs" to "false" > deletes the old log files instead of keeping them around when that > size limit is hit and a rotation is triggered. > > Hope that clear things up. > > cheers, > CG > > On Wed, Sep 7, 2011 at 8:58 PM, Aseem Kishore <aseem.kish...@gmail.com> > wrote: > > Thanks Johan! > > > > Configuring Neo4j with "keep_logical_logs=false" the logs will > >> automatically be deleted upon rotation. > > > > > > What does "upon rotation" mean here? > > > > Aseem > > > > On Wed, Sep 7, 2011 at 5:56 AM, Johan Svensson <jo...@neotechnology.com > >wrote: > > > >> Removing the log files ending with ".v<version number>" at runtime is > >> perfectly safe to do but will turn off the ability to do incremental > >> backups. You can however still perform live full backups. > >> > >> Configuring Neo4j with "keep_logical_logs=false" the logs will > >> automatically be deleted upon rotation. > >> > >> -Johan > >> > >> On Sat, Sep 3, 2011 at 1:49 AM, Aseem Kishore <aseem.kish...@gmail.com> > >> wrote: > >> > Thanks for the insights Johan! > >> > > >> > Regarding the existing disk space then, by far the bulk of it is from > the > >> > logs. Is there a way to prune or garbage collect them? Is simply > deleting > >> > the files safe? Should the db be off if I do that? Etc. > >> > > >> > Thanks much! > >> > > >> > Aseem > >> > > >> > On Tue, Aug 30, 2011 at 2:47 AM, Johan Svensson < > jo...@neotechnology.com > >> >wrote: > >> > > >> >> Hi Aseem, > >> >> > >> >> This is actually expected behavior when performing file copy of > >> >> running db and starting up with default configuration. If you remove > >> >> the files ending with .id in the db directory on the local snapshot > >> >> and start up setting "rebuild_idgenerators_fast=false" you should see > >> >> the accurate amount of nodes, relationships and properties. > >> >> > >> >> Regarding the amount of properties not matching this could be due to > a > >> >> non clean shutdown on the production system. We are planing on > >> >> improving this in the near future by allowing for more aggressive > >> >> reuse of ids for properties. This will specifically improve things > for > >> >> workloads that perform a lot of property updates. > >> >> > >> >> -Johan > >> >> > >> >> On Tue, Aug 30, 2011 at 10:05 AM, Aseem Kishore < > >> aseem.kish...@gmail.com> > >> >> wrote: > >> >> > Hey guys, > >> >> > > >> >> > We do offline backups of our db on a semi-regular basis (every few > >> days), > >> >> > where we (1) stop the running db, (2) copy its data directory and > (3) > >> >> > restart the db. > >> >> > > >> >> > A few times early on, we did running backups -- but not the proper > >> >> "online" > >> >> > way -- where we simply copied the data directory while the db was > >> still > >> >> > running. (We did this during times where we were confident no > requests > >> >> were > >> >> > hitting the db.) > >> >> > > >> >> > We noticed that every time we did the running backup, the number of > >> >> > properties the web admin reported -- and the space on disk of the > db > >> -- > >> >> > would jump up quite a bit. We stopped doing that recently. > >> >> > > >> >> > But even now, both these numbers have gotten quite a bit higher > than > >> we > >> >> > expect to, and strangely, they seem to differ highly between the > >> running > >> >> db > >> >> > and the copies. > >> >> > > >> >> > What could be causing all of this? > >> >> > > >> >> > Here are our current numbers: > >> >> > > >> >> > *Production* > >> >> > - 2,338 nodes > >> >> > - 4,473 rels > >> >> > - 114,231 props (higher than we would expect it to be, but not by > an > >> >> order > >> >> > of magnitude) > >> >> > - *1.39 GB!* <-- this is way unexpected, particularly since our db > >> used > >> >> to > >> >> > be in the ~10 KB ballpark, and we certainly haven't experienced > hockey > >> >> stick > >> >> > growth yet ;) The logical log only takes up 57 KB (0%) btw. > >> >> > > >> >> > > >> >> > *Local snapshot* > >> >> > - 2,338 nodes > >> >> > - 4,473 rels > >> >> > - *2,607,892 props!!!* <-- ??? > >> >> > - *1.37 GB!* <-- equally surprisingly high, but also interesting > that > >> >> it's > >> >> > less than the production db's size. 0 KB logical logs. > >> >> > > >> >> > > >> >> > I looked around the wiki and searched this mailing list but didn't > >> find > >> >> much > >> >> > clues here. But as requested on another thread, here's the output > of > >> `ls > >> >> -lh > >> >> > data/graph.db/`: > >> >> > > >> >> > total 1474520 > >> >> > -rw-r--r-- 1 aseemk staff 11B Aug 30 00:46 active_tx_log > >> >> > drwxr-xr-x 52 aseemk staff 1.7K Aug 30 00:46 index/ > >> >> > -rw-r--r-- 1 aseemk staff 343B Aug 30 00:46 index.db > >> >> > -rw-r--r-- 1 aseemk staff 854K Aug 30 00:46 messages.log > >> >> > -rw-r--r-- 1 aseemk staff 36B Aug 30 00:46 neostore > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 neostore.id > >> >> > -rw-r--r-- 1 aseemk staff 26K Aug 30 00:46 > neostore.nodestore.db > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> neostore.nodestore.db.id > >> >> > -rw-r--r-- 1 aseemk staff 62M Aug 30 00:46 > >> >> neostore.propertystore.db > >> >> > -rw-r--r-- 1 aseemk staff 133B Aug 30 00:46 > >> >> > neostore.propertystore.db.arrays > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.propertystore.db.arrays.id > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.propertystore.db.id > >> >> > -rw-r--r-- 1 aseemk staff 1.0K Aug 30 00:46 > >> >> > neostore.propertystore.db.index > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.propertystore.db.index.id > >> >> > -rw-r--r-- 1 aseemk staff 4.0K Aug 30 00:46 > >> >> > neostore.propertystore.db.index.keys > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.propertystore.db.index.keys.id > >> >> > -rw-r--r-- 1 aseemk staff 69M Aug 30 00:46 > >> >> > neostore.propertystore.db.strings > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.propertystore.db.strings.id > >> >> > -rw-r--r-- 1 aseemk staff 144K Aug 30 00:46 > >> >> > neostore.relationshipstore.db > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.relationshipstore.db.id > >> >> > -rw-r--r-- 1 aseemk staff 55B Aug 30 00:46 > >> >> > neostore.relationshiptypestore.db > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.relationshiptypestore.db.id > >> >> > -rw-r--r-- 1 aseemk staff 602B Aug 30 00:46 > >> >> > neostore.relationshiptypestore.db.names > >> >> > -rw-r--r-- 1 aseemk staff 9B Aug 30 00:46 > >> >> > neostore.relationshiptypestore.db.names.id > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.1 > >> >> > -rw-r--r-- 1 aseemk staff 4B Aug 30 00:46 > >> >> nioneo_logical.log.active > >> >> > -rw-r--r-- 1 aseemk staff 945K Aug 30 00:46 > nioneo_logical.log.v0 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.v1 > >> >> > -rw-r--r-- 1 aseemk staff 33K Aug 30 00:46 > >> nioneo_logical.log.v10 > >> >> > -rw-r--r-- 1 aseemk staff 11K Aug 30 00:46 > >> nioneo_logical.log.v11 > >> >> > -rw-r--r-- 1 aseemk staff 32K Aug 30 00:46 > >> nioneo_logical.log.v12 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > >> nioneo_logical.log.v13 > >> >> > -rw-r--r-- 1 aseemk staff 12M Aug 30 00:46 > >> nioneo_logical.log.v14 > >> >> > -rw-r--r-- 1 aseemk staff 1.4M Aug 30 00:46 > >> nioneo_logical.log.v15 > >> >> > -rw-r--r-- 1 aseemk staff 6.8M Aug 30 00:46 > >> nioneo_logical.log.v16 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v17 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v18 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v19 > >> >> > -rw-r--r-- 1 aseemk staff 1.3M Aug 30 00:46 > nioneo_logical.log.v2 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v20 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v21 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v22 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v23 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v24 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v25 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v26 > >> >> > -rw-r--r-- 1 aseemk staff 14M Aug 30 00:46 > >> nioneo_logical.log.v27 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v28 > >> >> > -rw-r--r-- 1 aseemk staff 7.8M Aug 30 00:46 > >> nioneo_logical.log.v29 > >> >> > -rw-r--r-- 1 aseemk staff 800K Aug 30 00:46 > nioneo_logical.log.v3 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v30 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v31 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v32 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v33 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v34 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v35 > >> >> > -rw-r--r-- 1 aseemk staff 4.5M Aug 30 00:46 > >> nioneo_logical.log.v36 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > >> nioneo_logical.log.v37 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v38 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v39 > >> >> > -rw-r--r-- 1 aseemk staff 67K Aug 30 00:46 > nioneo_logical.log.v4 > >> >> > -rw-r--r-- 1 aseemk staff 25M Aug 30 00:46 > >> nioneo_logical.log.v40 > >> >> > -rw-r--r-- 1 aseemk staff 16M Aug 30 00:46 > >> nioneo_logical.log.v41 > >> >> > -rw-r--r-- 1 aseemk staff 14M Aug 30 00:46 > >> nioneo_logical.log.v42 > >> >> > -rw-r--r-- 1 aseemk staff 1.0M Aug 30 00:46 > >> nioneo_logical.log.v43 > >> >> > -rw-r--r-- 1 aseemk staff 5.7M Aug 30 00:46 > >> nioneo_logical.log.v44 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.v5 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.v6 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.v7 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.v8 > >> >> > -rw-r--r-- 1 aseemk staff 16B Aug 30 00:46 > nioneo_logical.log.v9 > >> >> > -rw-r--r-- 1 aseemk staff 29K Aug 30 00:46 tm_tx_log.1 > >> >> > -rw-r--r-- 1 aseemk staff 0B Aug 30 00:46 tm_tx_log.2 > >> >> > > >> >> > > >> >> > Looking at these numbers, I suppose the logs do add up -- is there > a > >> way > >> >> to > >> >> > prune/garbage collect old logs? -- but I'm also surprised at the > size > >> of > >> >> > property stores. The latter depends on the number of properties > >> though, > >> >> > which I'm not sure is right either, even in production. (We would > see > >> the > >> >> > property count jump by a factor of 2-3 after each running backup.) > >> >> > > >> >> > Thanks in advance for any pointers! > >> >> > > >> >> > Aseem > >> _______________________________________________ > >> Neo4j mailing list > >> User@lists.neo4j.org > >> https://lists.neo4j.org/mailman/listinfo/user > >> > > _______________________________________________ > > Neo4j mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > > > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user