-C Update\sspecial\slogging\smessages\son\sthis\sbranch\sto\ssay\s"v=6"\sinstead\sof\s"v=5".
-D 2024-10-25T18:37:00.723
+C Add\sextra\slogging\sto\sanalyze\sCOMMIT\scommands.
+D 2024-10-30T18:24:33.020
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/util.c 5d1a0134cf4240648d1c6bb5cc8efaca0ea2b5d5c840985aec7e947271f04375
F src/vacuum.c 25e407a6dc8b288fa4295b3d92fa9ce9318503e84df53cdf403a50fccbc1ba31
F src/vdbe.c fea60cfe46d8839a08e4680d90a96898d542d3f6d7954e2e99cd92596f1a01f8
-F src/vdbe.h e0569d3f32eab55c97e0524f68548e83149dedd1278db69b74ba9e1aeb5c9cf8
+F src/vdbe.h 49fef91a8f19ef44e1f4a5819de9c344ea13f2363342ed9d82a20aee33e44b81
F src/vdbeInt.h 92b7eabbaadbe8127741cd96e7e39c4834c2bb0b75987d5f6251975f47233690
F src/vdbeapi.c 80235ac380e9467fec1cb0883354d841f2a771976e766995f7e0c77f845406df
-F src/vdbeaux.c 93d4374bbdb091a5ff348e7fe9a55dfec6e69087bffe7821d8474fdd62cc56bf
+F src/vdbeaux.c fc9738bf10a52c6271fbff6b5f1f2a7fb8daf23e8ef952c1efdf87611e04d4e0
F src/vdbeblob.c 255be187436da38b01f276c02e6a08103489bbe2a7c6c21537b7aecbe0e1f797
F src/vdbemem.c 831a244831eaa45335f9ae276b50a7a82ee10d8c46c2c72492d4eb8c98d94d89
F src/vdbesort.c d0a3c7056c081703c8b6d91ad60f17da5e062a5c64bf568ed0fa1b5f4cae311f
F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3
F src/vtab.c 5fb499d20494b7eecaadb7584634af9afcb374cb0524912b475fcb1712458a1b
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
-F src/wal.c c1109f1e9c86fa84b65ca6e38f8db7507985993e24d43224421212f5d817a953
+F src/wal.c b2bee7bbcdfbb4f9d4765c478a45c0801814123c20624f4f4f7453a7235794da
F src/wal.h 8c59ee7a835574396d7cbd04626d11fd849613e361a46e7e9519091ab03bdb29
F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014
F src/where.c c046dd58c3410f7b7528e1e6317cb876398557bad346d568ed8562321a7d002d
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P fcd68bebf27e10e4e49efad220c9f53b7a109696d8b41e24f88c02460197b93f
-R 55f19018b52b5dfe7531f40b0b39acb3
+P af4e778bd3bdf30cac3d9a6266f105a8cd71f947b8d71249ef74b8fdc0505dd7
+R 128557cbc094e3ab9c4d3b4c1019317e
U dan
-Z 34ac8be8f57c2f9a313183f66b283f0e
+Z 44c8796ec22b939c2d8fb7f81d4f2691
# Remove this line to create a well-formed Fossil manifest.
-af4e778bd3bdf30cac3d9a6266f105a8cd71f947b8d71249ef74b8fdc0505dd7
+7dbb43bd307b5e297e6b2deac4e1d73d8cd68e37d880a5ecf5a3918a53e99d9d
#define COMMIT_TIME_RELOCATE2COUNT 9
#define COMMIT_TIME_AFTER_FIXUNLOCKED 10
-#define COMMIT_TIME_AFTER_WALFRAMES 11
-#define COMMIT_TIME_BEFORE_PHASETWO 12
-#define COMMIT_TIME_AFTER_PHASETWO 13
+#define COMMIT_TIME_OSWRITE 11
+#define COMMIT_TIME_AFTER_WALFRAMES 12
-#define COMMIT_TIME_AFTER_VDBECOMMIT 14
-#define COMMIT_TIME_AFTER_HALT 15
-#define COMMIT_TIME_FINISH 16
+#define COMMIT_TIME_BEFORE_PHASETWO 13
+#define COMMIT_TIME_AFTER_PHASETWO 14
-#define COMMIT_TIME_N 17
+#define COMMIT_TIME_AFTER_VDBECOMMIT 15
+#define COMMIT_TIME_AFTER_HALT 16
+#define COMMIT_TIME_FINISH 17
+
+#define COMMIT_TIME_N 18
/* #define COMMIT_TIME_TIMEOUT (2*1000*1000) */
-#define COMMIT_TIME_TIMEOUT (10*1000) /* 10ms threshold */
+#define COMMIT_TIME_TIMEOUT (0*1000) /* 10ms threshold */
void sqlite3CommitTimeLog(u64*);
u64 sqlite3STimeNow();
for(ii=1; ii<COMMIT_TIME_N; ii++){
int iVal;
const char *zHash = "";
+ const char *zU = "";
if( ii==COMMIT_TIME_RELOCATE1COUNT
|| ii==COMMIT_TIME_RELOCATE2COUNT
|| ii==COMMIT_TIME_OTHERWRITERS
){
iVal = (int)aCommit[ii];
zHash = "#";
+ }else if( ii==COMMIT_TIME_OSWRITE ){
+ iVal = (int)aCommit[ii];
+ zU = "us";
}else{
iVal = (aCommit[ii]==0 ? 0 : (int)(aCommit[ii] - i1));
}
- zStr = sqlite3_mprintf("%z%s%s%d", zStr, (zStr?", ":""), zHash, iVal);
+ zStr = sqlite3_mprintf("%z%s%s%d%s", zStr, (zStr?", ":""),zHash,iVal,zU);
}
- sqlite3_log(SQLITE_WARNING, "slow commit (v=6): (%s)", zStr);
+ sqlite3_log(SQLITE_WARNING, "slow commit (v=7): (%s)", zStr);
sqlite3_free(zStr);
}
}
}
if( nByte<0 ){ nByte = sqlite3Strlen30(zSql); }
sqlite3_log(SQLITE_WARNING,
- "slow prepare (v=6): (%s) [%.*s]", zStr, nByte, zSql
+ "slow prepare (v=7): (%s) [%.*s]", zStr, nByte, zSql
);
sqlite3_free(zStr);
}
(aSchema[ii]==0 ? 0 : (int)(aSchema[ii] - i1))
);
}
- sqlite3_log(SQLITE_WARNING, "slow schema (v=6): (%s)", zStr);
+ sqlite3_log(SQLITE_WARNING, "slow schema (v=7): (%s)", zStr);
sqlite3_free(zStr);
}
}
sqlite3_int64 iOffset /* Start writing at this offset */
){
int rc;
+ u64 t;
if( iOffset<p->iSyncPoint && iOffset+iAmt>=p->iSyncPoint ){
int iFirstAmt = (int)(p->iSyncPoint - iOffset);
rc = sqlite3OsWrite(p->pFd, pContent, iFirstAmt, iOffset);
rc = sqlite3OsSync(p->pFd, WAL_SYNC_FLAGS(p->syncFlags));
if( iAmt==0 || rc ) return rc;
}
+ if( p->pWal->aCommitTime ){
+ t = sqlite3STimeNow();
+ }
rc = sqlite3OsWrite(p->pFd, pContent, iAmt, iOffset);
+ if( p->pWal->aCommitTime ){
+ p->pWal->aCommitTime[COMMIT_TIME_OSWRITE] += (sqlite3STimeNow() - t);
+ }
return rc;
}