{"push_id":1303544277,"size":19,"distinct_size":19,"ref":"refs/heads/3.0-label-scan-for-index-update-queue","head":"45234b32d0ef729834b611a98eb5b303252e747f","before":"9e667d9f56f942ec7394e401bea5767214db8733","commits":[{"sha":"49fdc3f19085f0ceb74c0dc20ceadb6df989d298","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Uses real FS in StoreVersionCheckTest\n\nin an attempt to remove flakiness, since the ephemeral file system\nis known to be different in behaviour sometimes.","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/49fdc3f19085f0ceb74c0dc20ceadb6df989d298"},{"sha":"62fc2f65f7617fd89b8cb7e845ff82b2b970ac15","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Fixes an issue where log rotation would cut transaction in half\n\nThe rotation done in PhysicalLogFile only flushed the channel,\ni.e. bytes already written to it. It didn't tell the writer to\nempty its buffer into the channel first. This could sometimes\nresult in rotation happening in the middle of a transaction.\nAll the bytes would be there, just split across files and be\nmore difficult to read later on if not using proper log version\nbridging and would eventually cause problems when first part of\nsplit transaction would be pruned.\n\nThis change will have transactions be fully written in the log\nthey started being written to before rotation happens, without\nintroducing any performance penalty of appending, forcing\nor rotation.","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/62fc2f65f7617fd89b8cb7e845ff82b2b970ac15"},{"sha":"7407869a30e40c906a363e4d6600d58412118e47","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Simplifies recovery code for reading transactions\n\nessentially by using already existing means of reading transactions\nfrom multiple files with seemless bridging instead of inventing\nnew and different ways of reading log file per log file.\n\nThis change has a couple of benefits:\n\n- less code\n- recovery algorithm can be seen in one place (Recovery class)\n- ability to read transactions even if they would somehow cross\n  log file boundaries.\n\nThere was an issue where log rotation may happen in the middle of\nwriting a transaction. Recovery would report weird log entries\nbecause it read transactions from log files one by one in isolation\nand fail to start database. That issues didn't corrupt the log files\nand so starting such a database with this fix will have recovery\nable to read those log files correctly.","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/7407869a30e40c906a363e4d6600d58412118e47"},{"sha":"c6e6ce8d6831c6bb8c1070e22a9d3f1453e15b76","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Further simplifications of recovery code\n\nand some comment typos fixed","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/c6e6ce8d6831c6bb8c1070e22a9d3f1453e15b76"},{"sha":"5df3194bf82259bfed3e39f2143c90f4a2b14387","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"fixup! Simplifies recovery code for reading transactions","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/5df3194bf82259bfed3e39f2143c90f4a2b14387"},{"sha":"6426197e98af8733672861145b39bf621551dcfb","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Separated recovery visitor from DefaultRecoverySPI\n\nand puts more weight on getRecoveryVisitor() method by renaming to\nstartRecovery(). This way it makes more sense to add more responsibilities to it.","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/6426197e98af8733672861145b39bf621551dcfb"},{"sha":"45e4d96588949834e17ddac0966c97dbe1fc6359","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Implemented truncation of last log after recovery\n\nwhich was sitting as a TODO after previous change to recovery code","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/45e4d96588949834e17ddac0966c97dbe1fc6359"},{"sha":"5b41b7da79cb0286cf49f0c4e470f73ed52148ea","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Changed name from StressIT to IT so that it runs with full build","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/5b41b7da79cb0286cf49f0c4e470f73ed52148ea"},{"sha":"275acbf521295ff1d039cc098becce8209d6f8cf","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Deduplicated test code block","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/275acbf521295ff1d039cc098becce8209d6f8cf"},{"sha":"a2605cfe905a39508e53e43fd5f5eaf950fe92ef","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"More forgiving assertion in ResourcePoolTest\n\nsince the nature of this test isn't deterministic","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/a2605cfe905a39508e53e43fd5f5eaf950fe92ef"},{"sha":"e75db0a6da7940ba3c12469783916b1612fe3123","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Merge pull request #7923 from tinwelint/3.0-fix-flaky-storeversioncheck-test\n\nUses real FS in StoreVersionCheckTest","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/e75db0a6da7940ba3c12469783916b1612fe3123"},{"sha":"2812e38296bb2c5e3faf3a4e50ce6123a34a3e50","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Completes a previous change on InputEntityDecorators\n\nwhere everything should be Decorator, not Function there","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/2812e38296bb2c5e3faf3a4e50ce6123a34a3e50"},{"sha":"72ed0b56460e88eef81c9e6c179521e5577e4ea9","author":{"name":"Alex Averbuch","email":"8e9adf042d729a2f2b81824a539f8e0f88a2ffc5@gmail.com"},"message":"Merge pull request #7930 from tinwelint/3.0-input-decorator-fix\n\nCompletes a previous change on InputEntityDecorators","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/72ed0b56460e88eef81c9e6c179521e5577e4ea9"},{"sha":"a3a395f642fb6d03618c8559982a2fbc7dfadeb7","author":{"name":"Andres Taylor","email":"c6cbfe878b4ee67646e7630734db67f536518d54@neotechnology.com"},"message":"Handle equivalence of collections containing null\n\n The code was expecting all elements to be of the same base class, but `null` does\n not follow this rule.","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/a3a395f642fb6d03618c8559982a2fbc7dfadeb7"},{"sha":"66df41d1018f54ccd67d7d384e87abae0468bcdb","author":{"name":"Andres Taylor","email":"c6cbfe878b4ee67646e7630734db67f536518d54@neotechnology.com"},"message":"Merge pull request #7936 from systay/3.0-equivalence-bug\n\nHandle equivalence of collections containing null","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/66df41d1018f54ccd67d7d384e87abae0468bcdb"},{"sha":"e49f8e97f2ba0ba9564d8b0dc92cb55cfb97a815","author":{"name":"MishaDemianenko","email":"a30614c2fdaf98c7d73f4e3648811720a42bfc9f@neotechnology.com"},"message":"Merge pull request #7924 from tinwelint/3.0-picked-log-rotation-issue\n\nFixes an issue where log rotation would cut transaction in half","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/e49f8e97f2ba0ba9564d8b0dc92cb55cfb97a815"},{"sha":"249fbafc24acf2ec320de55594ec48d9e959d5d5","author":{"name":"Mattias Persson","email":"96e4113efc379fb8ae6068ec263bc1ff29b17f7f@neotechnology.com"},"message":"Supports querying multiple label ids AND/OR from LabelScanStoreReader\n(cherry picked from commit ff85bc5)","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/249fbafc24acf2ec320de55594ec48d9e959d5d5"},{"sha":"d81436fe8ff16bd61efef4a69bb72c5666e548e3","author":{"name":"Mikhaylo Demianenko","email":"a30614c2fdaf98c7d73f4e3648811720a42bfc9f@neotechnology.com"},"message":"Using labels scan store for index creation instead\n\nSwitch to label scan store to determine list of node ids for specified label for index population.\nIn cases when label is not used to mark significant amount of nodes this gives noticeable performance boost.\nFor cases when label scan store index does not exist yet - full node scan is used.\nCode cleanup.\n\nHandling of concurrent updates druing index population by queueing them till\nwe finish with nodes available from label scan store.\n\nIn case if we use label scan store as source of nodes it's possible to observe following situation:\n                           Update\n                           for Node8\n                             +\n+-----+           +-----+    |     +-----+\n|Node1+---------> |Node7+--------> |Node9|\n+-----+           +-----+          +-----+\n\nIn this case update for node 8 will come just after node 7 was processed and in case of sequential node scan should be visible on a next step.\nBut that's not the case when we use label scan store, since current index reader will not gonna see that update.\nTo be able to handle those cases and cases when we see some nodes from the part that we already bypass\nwe will queue all updates till the end of population and will replay them afterwords.\n\nSample index build using label scan store scan after population completion\nusing specialized sampler that will perform index commit and will reread all values from index,\nsince we can't rely on population data.","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/d81436fe8ff16bd61efef4a69bb72c5666e548e3"},{"sha":"45234b32d0ef729834b611a98eb5b303252e747f","author":{"name":"Mikhaylo Demianenko","email":"a30614c2fdaf98c7d73f4e3648811720a42bfc9f@neotechnology.com"},"message":"Fix failing tests","distinct":true,"url":"https://api.github.com/repos/MishaDemianenko/neo4j/commits/45234b32d0ef729834b611a98eb5b303252e747f"}]}
{"actor":{"display_login":"MishaDemianenko"}}