Dive Deep Memcached ~ SETコマンド実行時の動作 ~
Dive Deep Memcached ~ SETコマンド実行時の動作 ~
概要
最初の初期化
SETコマンドの挙動
詳細
最初の初期化
1 main at memcached.c
2 sanitycheck at memcached.c
2 settings_init at memcached.c
1 main at memcached.c
2 init_lru_maintainer at items.c
1 main at memcached.c
2 hash_init at hash.c
1 main at memcacached.c
2 logger_init at logger.c
3 start_logger_thread at logger.c
3 STATS_LOCK, STATS_UNLOCK at thread.c
2 stats_init at memcached.c
3 stats_prefix_init at stats.c
3 assoc_init at assoc.c
2 conn_init at memcached.c
2 slabs_init (limit=67108864, factor=1.25, prealloc=false, slab_sizes=0x0) at slabs.c:158
1 main at memcacached.c
3 setup_thread (me=0x6486f0) at thread.c:321
4 cq_init (cq=0x64fab0) at thread.c:196
4 cache_create (name=0x42b442 "suffix", bufsize=50, align=8, constructor=0x0, destructor=0x0) at cache.c:22
3 create_worker (func=0x41dddf <worker_libevent>, arg=0x6486f0) at thread.c:296
2 init_lru_crawler (arg=0x0) at crawler.c:686
2 start_assoc_maintenance_thread () at assoc.c:270
2 start_item_crawler_thread () at crawler.c:497
2 start_lru_maintainer_thread (arg=0x0) at items.c:1680
2 start_slab_maintenance_thread () at slabs.c:1311
2 clock_handler (fd=0, which=0, arg=0x0) at memcached.c:6321
3 assoc_start_expand (curr_items=0) at assoc.c:144
1 main at memcached.c
2 server_sockets (port=11211, transport=tcp_transport, portnumber_file=0x0) at memcached.c:6146
3 server_socket (interface=0x0, port=11211, transport=tcp_transport, portnumber_file=0x0, ssl_enabled=false) at memcached.c:5998
4 new_socket (ai=0x6520f0) at memcached.c:5936
3
4 conn_new (sfd=35, init_state=conn_listening, event_flags=18, read_buffer_size=1, transport=tcp_transport, base=0x646040, ssl=0x0) at memcached.c:547
1
2 uriencode_init () at util.c:16
SETコマンドの挙動
1 event_handler (fd=35, which=2, arg=0x6521e0) at memcached.c:5913
2 drive_machine (c=0x6521e0) at memcached.c:5500
3 dispatch_conn_new (sfd=37, init_state=conn_new_cmd, event_flags=18, read_buffer_size=2048, transport=tcp_transport
4 cqi_new () at thread.c:240
4 cq_push (cq=0x64f250, item=0x658270) at thread.c:225
1 event_handler
2 drive_machine
3 reset_cmd_handler (c=0x7ffff00109a0) at memcached.c:2766
4 conn_shrink (c=0x7ffff00109a0) at memcached.c:910
4 conn_set_state (c=0x7ffff00109a0, state=conn_waiting) at memcached.c:985
1 event_handler
2 drive_machine
3 update_event (c=0x7ffff00109a0, new_flags=18) at memcached.c:5295
1 event_handler
2 drive_machine
3 try_read_network (c=0x7ffff00109a0) at memcached.c:5231
4 tcp_read (c=0x7ffff00109a0, buf=0x7ffff0010bd0, count=2048) at memcached.c:162
2
3 try_read_command (c=0x7ffff00109a0) at memcached.c:5053
4
4 process_command (c=0x7ffff00109a0, command=0x7ffff0010bd0 "set test1 0 0 7") at memcached.c:4731
5 add_msghdr (c=0x7ffff00109a0) at memcached.c:329
5 tokenize_command (command=0x7ffff0010bd0 "set test1 0 0 7", tokens=0x7ffff6da8bd0, max_tokens=8) at memcached.c:3045
4
5 process_update_command (c=0x7ffff00109a0, tokens=0x7ffff6da8bd0, ntokens=6, comm=2, handle_cas=false) at memcached.c:4107
6 set_noreply_maybe (c=0x7ffff00109a0, tokens=0x7ffff6da8bd0, ntokens=6) at memcached.c:3102
5
6 realtime (exptime=0) at memcached.c:208
6 item_alloc (key=0x7ffff0010bd4 "test1", nkey=5, flags=0, exptime=0, nbytes=9) at thread.c:579
7 do_item_alloc (key=0x7ffff0010bd4 "test1", nkey=5, flags=0, exptime=0, nbytes=9) at items.c:260
8 item_make_header (nkey=6 '\006', flags=0, nbytes=9, suffix=0x7ffff6da8a70 "", nsuffix=0x7ffff6da8aa7 "") at items.c:171
8 slabs_clsid (size=71) at slabs.c:92
7
8 do_item_alloc (key=0x7ffff0010bd4 "test1", nkey=5, flags=0, exptime=0, nbytes=9) at items.c:272
9 slabs_alloc (size=71, id=1, total_bytes=0x7ffff6da8a28, flags=0) at slabs.c:658
10 do_slabs_alloc (size=71, id=1, total_bytes=0x7ffff6da8a28, flags=0) at slabs.c:337
11 do_slabs_newslab (id=1) at slabs.c:302
12 grow_slab_list (id=1) at slabs.c:270
12 memory_allocate (size=1048576) at slabs.c:611
12 split_slab_page_into_freelist (ptr=0x7ffff44a4010 "", id=1) at slabs.c:282
13 do_slabs_free (ptr=0x7ffff44a4010, size=0, id=1) at slabs.c:447
8
5
2
3 complete_nread (c=0x7ffff00109a0) at memcached.c:2785
4 complete_nread_ascii (c=0x7ffff00109a0) at memcached.c:1231
5 store_item (item=0x7ffff45a3f70, comm=2, c=0x7ffff00109a0) at thread.c:689
6 hash
7 getblock32 (i=-1, p=0x7ffff45a3fac) at murmur3_hash.c:50
7 rotl32 (x=787512756, r=15 '\017') at murmur3_hash.c:35
7 fmix32 (h=2252073768) at murmur3_hash.c:58
6 item_lock (hv=3155333867) at thread.c:104
6 item_unlock (hv=3155333867) at thread.c:120
6 do_store_item (it=0x7ffff45a3f70, comm=2, c=0x7ffff00109a0, hv=3155333867) at memcached.c:2897
7 do_item_get (key=0x7ffff45a3fa8 "test1", nkey=5, hv=3155333867, c=0x7ffff00109a0, do_update=false) at items.c:955
6
7 do_item_link (it=0x7ffff45a3f70, hv=3155333867) at items.c:474
8 get_cas_id () at items.c:112
8 assoc_insert (it=0x7ffff45a3f70, hv=3155333867) at assoc.c:160
8 item_link_q (it=0x7ffff45a3f70) at items.c:421
9 do_item_link_q (it=0x7ffff45a3f70) at items.c:397
8 item_stats_sizes_add (it=0x7ffff45a3f70) at items.c:907
6
4
5 out_string (c=0x7ffff00109a0, str=0x424f99 "STORED") at memcached.c:1171
5 item_remove (item=0x7ffff45a3f70) at thread.c:638
6 do_item_remove (it=0x7ffff45a3f70) at items.c:529
2
3 add_iov (c=0x7ffff00109a0, buf=0x7ffff00113e0, len=8) at memcached.c:1048
4 ensure_iov_space (c=0x7ffff00109a0) at memcached.c:1008
3 transmit (c=0x7ffff00109a0) at memcached.c:5361
4 tcp_sendmsg (c=0x7ffff00109a0, msg=0x7ffff0013e80, flags=0) at memcached.c:167
2
3 reset_cmd_handler (c=0x7ffff00109a0) at memcached.c:2766
2
事前準備
Memcached
cgdb
デバッグ
Last updated