I would like us to understand the write patterns of Sqlite. . That
write pattern happens first to the journal then to the database. I
found a lot of 4 byte writes.

What are these 4 byte writes and can the be avoided? I would also like
data on the write patterns for a 1k,2k,128k, and 256k writes to a
database. Is there some flags we can set in Sqlite to less these
writes?

below is the write log of 3.5.9
[pid  3452] lseek(54, 0, SEEK_SET)      = 0
[pid  3452] write(54, "??\5?
?c?\0\0\0\0iܷ?\0\0\4?\0\0\2\0\0\0\10\0ttac"..., 512) = 512
[pid  3452] lseek(54, 512, SEEK_SET)    = 512
[pid  3452] write(54, "\0\0\0\7", 4)    = 4
[pid  3452] lseek(54, 516, SEEK_SET)    = 516
[pid  3452] write(54,
"\n\0\0\0\22\6K\0\7\227\7q\7E\6?\7?\6?\7?\6?\7?\7$\6K\6"..., 1024) =
1024
[pid  3452] lseek(54, 2564, SEEK_SET)   = 2564
[pid  3452] write(54, "iܸ?", 4)        = 4
[pid  3452] lseek(54, 2568, SEEK_SET)   = 2568
[pid  3452] write(54, "\0\0\0\6", 4)    = 4
[pid  3452] lseek(54, 2572, SEEK_SET)   = 2572
[pid  3452] write(54,
"\r\7\212\0\22\4C\2\7?\7r\0070\6?\6?\6\234\6l\7`\6Q\4?\7"..., 1024) =
1024
[pid  3452] lseek(54, 4620, SEEK_SET)   = 4620
[pid  3452] write(54, "iܹ=", 4)        = 4
[pid  3452] lseek(54, 4624, SEEK_SET)   = 4624
[pid  3452] write(54, "\0\0\0\1", 4)    = 4
[pid  3452] lseek(54, 4628, SEEK_SET)   = 4628
[pid  3452] write(54, "SQLite format 3\0\10\0\1\1\0@
\0\0\6\r\0\0\0\0"..., 1024) = 1024
[pid  3452] lseek(54, 6676, SEEK_SET)   = 6676
[pid  3452] write(54, "iܷ?", 4)        = 4
[pid  3452] close(55)                   = 0
[pid  3452] lseek(54, 8, SEEK_SET)      = 8
[pid  3452] write(54, "\0\0\0\3", 4)    = 4
[pid  3452] lseek(29, 0, SEEK_SET)      = 0
[pid  3452] write(29, "SQLite format 3\0\10\0\1\1\0@
\0\0\6\16\0\0\0\0"..., 1024) = 1024
[pid  3452] lseek(29, 10240, SEEK_SET)  = 10240
[pid  3452] write(29,
"\r\7\212\0\22\4C\2\7?\7r\0070\6?\6?\6\234\6l\7`\6Q\4?\7"..., 1024) =
1024
[pid  3452] lseek(29, 12288, SEEK_SET)  = 12288
[pid  3452] write(29,
"\n\0\0\0\22\6K\0\7\227\7q\7E\6?\7?\6?\7?\6?\7?\7$\6K\6"..., 1024) =
1024
[pid  3452] close(54)                   = 0
[pid  3452] lseek(29, 24, SEEK_SET)     = 24

for 3.6:
[pid   211] 
open("/data/data/com.google.android.providers.gmail/databases/[EMAIL 
PROTECTED]",
O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE|O_NOFOLLOW, 0644) = 55
[pid   211] open("/data/data/com.google.android.providers.gmail/databases",
O_RDONLY|O_LARGEFILE) = 56
[pid   211] lseek(55, 0, SEEK_SET)      = 0
[pid   211] write(55, "ÙÕ\5ù
¡c×\0\0\0\0\221FßÈ\0\0\2~\0\0\2\0\0\0\4\0\0\0\0\0"..., 512) = 512
[pid   211] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 58
[pid   211] close(58)                   = 0
[pid   211] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 58
[pid   211] close(58)                   = 0
[pid   211] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 58
[pid   211] close(58)                   = 0
[pid   211] writev(3, [{"\3", 1}, {"gmail-ls\0", 9}, {"Starting
purging messages. Oldes"..., 78}], 3) = 88
[pid   211] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 58
[pid   211] writev(3, [{"\3", 1}, {"gmail-ls\0", 9}, {"Finished
purging messages \0", 27}], 3) = 37
[pid   211] close(58)                   = 0
[pid   211] close(56)                   = 0
[pid   211] close(55)                   = 0
[pid   211] lseek(39, 24, SEEK_SET)     = 24
[pid   211] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   211] lseek(39, 24, SEEK_SET)     = 24
[pid   211] close(55)                   = 0
[pid   211] writev(3, [{"\3", 1}, {"gmail-ls\0", 9}, {"considering
sending notification"..., 102}], 3) = 112
[pid   211] lseek(39, 24, SEEK_SET)     = 24
[pid   211] 
open("/data/data/com.google.android.providers.gmail/databases/[EMAIL 
PROTECTED]",
O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE|O_NOFOLLOW, 0644) = 55
[pid   211] open("/data/data/com.google.android.providers.gmail/databases",
O_RDONLY|O_LARGEFILE) = 56
[pid   211] lseek(55, 0, SEEK_SET)      = 0
[pid   211] write(55, "ÙÕ\5ù
¡c×\0\0\0\0É\25á?\0\0\2~\0\0\2\0\0\0\4\0\0\0\0\0"..., 512) = 512
[pid   211] lseek(55, 512, SEEK_SET)    = 512
[pid   211] write(55, "\0\0\0\17", 4)   = 4
[pid   211] lseek(55, 516, SEEK_SET)    = 516
[pid   211] write(55,
"\n\0\0\0\2\3Å\0\3â\3Å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] lseek(55, 1540, SEEK_SET)   = 1540
[pid   211] write(55, "É\25á?", 4)      = 4
[pid   211] lseek(55, 1544, SEEK_SET)   = 1544
[pid   211] write(55, "\0\0\0\16", 4)   = 4
[pid   211] lseek(55, 1548, SEEK_SET)   = 1548
[pid   211] write(55,
"\r\0\0\0\2\3¾\0\3à\3¾\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] lseek(55, 2572, SEEK_SET)   = 2572
[pid   211] write(55, "É\25á?", 4)      = 4
[pid   211] lseek(55, 2576, SEEK_SET)   = 2576
[pid   211] write(55, "\0\0\0\1", 4)    = 4
[pid   211] lseek(55, 2580, SEEK_SET)   = 2580
[pid   211] write(55, "SQLite format 3\0\4\0\1\1\0@
\0\0\34t\0\0\0\0"..., 1024) = 1024
[pid   211] lseek(55, 3604, SEEK_SET)   = 3604
[pid   211] write(55, "É\25á?", 4)      = 4
[pid   211] close(56)                   = 0
[pid   211] lseek(55, 8, SEEK_SET)      = 8
[pid   211] write(55, "\0\0\0\3", 4)    = 4
[pid   211] lseek(39, 0, SEEK_SET)      = 0
[pid   211] write(39, "SQLite format 3\0\4\0\1\1\0@
\0\0\34u\0\0\0\0"..., 1024) = 1024
[pid   211] lseek(39, 13312, SEEK_SET)  = 13312
[pid   211] write(39,
"\r\0\0\0\2\3¾\0\3¾\3à\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] lseek(39, 14336, SEEK_SET)  = 14336
[pid   211] write(39,
"\n\0\0\0\2\3Å\0\3â\3Å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] close(55)                   = 0
[pid   211] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   211] lseek(39, 24, SEEK_SET)     = 24
[pid   211] close(55)                   = 0
[pid   211] writev(3, [{"\3", 1}, {"gmail-ls\0", 9}, {"considering
sending notification"..., 107}], 3) = 117
[pid   211] lseek(39, 24, SEEK_SET)     = 24
[pid   211] 
open("/data/data/com.google.android.providers.gmail/databases/[EMAIL 
PROTECTED]",
O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE|O_NOFOLLOW, 0644) = 55
[pid   211] open("/data/data/com.google.android.providers.gmail/databases",
O_RDONLY|O_LARGEFILE) = 56
[pid   211] lseek(55, 0, SEEK_SET)      = 0
[pid   211] write(55, "ÙÕ\5ù
¡c×\0\0\0\0\210\213é\r\0\0\2~\0\0\2\0\0\0\4\0\0\0"..., 512) = 512
[pid   211] lseek(55, 512, SEEK_SET)    = 512
[pid   211] write(55, "\0\0\0\17", 4)   = 4
[pid   211] lseek(55, 516, SEEK_SET)    = 516
[pid   211] write(55,
"\n\0\0\0\2\3Å\0\3â\3Å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] lseek(55, 1540, SEEK_SET)   = 1540
[pid   211] write(55, "\210\213é\r", 4) = 4
[pid   211] lseek(55, 1544, SEEK_SET)   = 1544
[pid   211] write(55, "\0\0\0\16", 4)   = 4
[pid   211] lseek(55, 1548, SEEK_SET)   = 1548
[pid   211] write(55,
"\r\0\0\0\2\3¾\0\3¾\3à\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] lseek(55, 2572, SEEK_SET)   = 2572
[pid   211] write(55, "\210\213é\r", 4) = 4
[pid   211] lseek(55, 2576, SEEK_SET)   = 2576
[pid   211] write(55, "\0\0\0\1", 4)    = 4
[pid   211] lseek(55, 2580, SEEK_SET)   = 2580
[pid   211] write(55, "SQLite format 3\0\4\0\1\1\0@
\0\0\34u\0\0\0\0"..., 1024) = 1024
[pid   211] lseek(55, 3604, SEEK_SET)   = 3604
[pid   211] write(55, "\210\213é\r", 4) = 4
[pid   211] close(56)                   = 0
[pid   211] lseek(55, 8, SEEK_SET)      = 8
[pid   211] write(55, "\0\0\0\3", 4)    = 4
[pid   211] lseek(39, 0, SEEK_SET)      = 0
[pid   211] write(39, "SQLite format 3\0\4\0\1\1\0@
\0\0\34v\0\0\0\0"..., 1024) = 1024
[pid   211] lseek(39, 13312, SEEK_SET)  = 13312
[pid   211] write(39,
"\r\0\0\0\2\3¾\0\3à\3¾\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] lseek(39, 14336, SEEK_SET)  = 14336
[pid   211] write(39,
"\n\0\0\0\2\3Å\0\3â\3Å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) =
1024
[pid   211] close(55)                   = 0
[pid   211] open("/proc/199/stat", O_RDONLY|O_LARGEFILE) = 55
[pid   211] writev(5, [{"·\n\0\0", 4},
{"\3\4\2\10\0\0\0gmail-ls\1\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0"..., 41}],
2) = 45
[pid   203] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 56
[pid   203] lseek(46, 24, SEEK_SET)     = 24
[pid   203] close(56)                   = 0
[pid   204] lseek(46, 24, SEEK_SET)     = 24
[pid   218] lseek(46, 24, SEEK_SET)     = 24
[pid   218] lseek(46, 24, SEEK_SET)     = 24
[pid   219] lseek(46, 24, SEEK_SET)     = 24
[pid   200] writev(5, [{"\"N\0\0", 4}, {"\3", 1},
{"\2\0\0`\10\0\0\0À\3\0", 11}], 3) = 16
[pid   199] writev(5, [{"µ\n\0\0", 4}, {"\2\2\0\0\0bg\n", 8}], 2) = 12
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 56
[pid   199] close(56)                   = 0
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 56
[pid   199] close(56)                   = 0
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 56
[pid   199] close(56)                   = 0
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 56
[pid   199] close(56)                   = 0
[pid   199] writev(3, [{"\3", 1}, {"dalvikvm\0", 9}, {"GC freed 1141
objects / 59648 by"..., 46}], 3) = 56
[pid   199] writev(5, [{"!N\0\0", 4}, {"\3", 1},
{"\4\1é\224\nsppag\1\'hL9\210\203G\202\1\204·G \10\202FÈ"..., 37}], 3)
= 42
[pid   200] close(55)                   = 0
[pid   203] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   203] lseek(46, 24, SEEK_SET)     = 24
[pid   203] close(55)                   = 0
[pid   204] lseek(46, 24, SEEK_SET)     = 24
[pid   200] writev(5, [{"\"N\0\0", 4}, {"\3", 1},
{"\2\0\0\200\10\0\0\0À\3\0", 11}], 3) = 16
[pid   218] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   218] lseek(46, 24, SEEK_SET)     = 24
[pid   218] close(55)                   = 0
[pid   219] lseek(46, 24, SEEK_SET)     = 24
[pid   218] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   218] lseek(46, 24, SEEK_SET)     = 24
[pid   218] close(55)                   = 0
[pid   219] lseek(46, 24, SEEK_SET)     = 24
[pid   199] writev(5, [{"µ\n\0\0", 4}, {"\2\2\0\0\0bg\n", 8}], 2) = 12
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   199] close(55)                   = 0
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   199] close(55)                   = 0
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   199] close(55)                   = 0
[pid   199] open("/dev/ashmem", O_RDWR|O_LARGEFILE) = 55
[pid   199] close(55)                   = 0
[pid   199] writev(3, [{"\3", 1}, {"dalvikvm\0", 9}, {"GC freed 303
objects / 23536 byt"..., 45}], 3) = 55
[pid   199] writev(5, [{"!N\0\0", 4}, {"\3", 1},
{"\4\1\\\24\vsppag\1\'XL8\210\203/\201\1\204·G \10\202FÈ"..., 37}], 3)
= 42
[pid   200] writev(5, [{"\"N\0\0", 4}, {"\3", 1},
{"\2\0\0\220\10\0\0\0À\3\0", 11}], 3) = 16

both has a lot 4 bytes write.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to