Skip to content

Commit

Permalink
get rid of write path logging
Browse files Browse the repository at this point in the history
  • Loading branch information
Cliff Moon committed May 26, 2010
1 parent e442bea commit d4a5a8c
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 22 deletions.
16 changes: 8 additions & 8 deletions apps/luwak/src/luwak_io.erl
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ internal_put_range(Riak, File, Start, Data) ->
end.

write_blocks(_, _, _, Start, <<>>, _, Written) when is_list(Written) ->
error_logger:info_msg("A write_blocks(_, _, _, ~p, <<>>, _, ~p) ~n", [Start, Written]),
% error_logger:info_msg("A write_blocks(_, _, _, ~p, <<>>, _, ~p) ~n", [Start, Written]),
{ok, lists:reverse(Written)};
%% start aligned sub-block write
write_blocks(Riak, File, undefined, Start, Data, BlockSize, Written) when is_list(Written), byte_size(Data) < BlockSize ->
error_logger:info_msg("B write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [undefined, Start, Data, BlockSize, Written]),
% error_logger:info_msg("B write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [undefined, Start, Data, BlockSize, Written]),
DataSize = byte_size(Data),
case luwak_tree:block_at(Riak, File, Start) of
{ok, Block} ->
Expand All @@ -52,33 +52,33 @@ write_blocks(Riak, File, undefined, Start, Data, BlockSize, Written) when is_lis
end;
%% fully aligned write
write_blocks(Riak, File, undefined, Start, Data, BlockSize, Written) when is_list(Written) ->
error_logger:info_msg("C write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [undefined, Start, Data, BlockSize, Written]),
% error_logger:info_msg("C write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [undefined, Start, Data, BlockSize, Written]),
<<Slice:BlockSize/binary, Tail/binary>> = Data,
{ok, Block} = luwak_block:create(Riak, Slice),
write_blocks(Riak, File, undefined, Start+BlockSize, Tail, BlockSize, [{luwak_block:name(Block),BlockSize}|Written]);
%% we are doing a sub-block write
write_blocks(Riak, File, PartialStartBlock, Start, Data, BlockSize, Written) when is_list(Written), byte_size(Data) < BlockSize ->
error_logger:info_msg("D write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [PartialStartBlock, Start, Data, BlockSize, Written]),
% error_logger:info_msg("D write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [PartialStartBlock, Start, Data, BlockSize, Written]),
DataSize = byte_size(Data),
<<Head:Start/binary, _:DataSize/binary, Tail/binary>> = luwak_block:data(PartialStartBlock),
BlockData = <<Head/binary, Data/binary, Tail/binary>>,
{ok, Block} = luwak_block:create(Riak, BlockData),
{ok, lists:reverse([{luwak_block:name(Block),byte_size(BlockData)}|Written])};
%% we are starting with a sub-block write
write_blocks(Riak, File, PartialStartBlock, Start, Data, BlockSize, Written) when Start > BlockSize ->
error_logger:info_msg("E write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [PartialStartBlock, Start, Data, BlockSize, Written]),
% error_logger:info_msg("E write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [PartialStartBlock, Start, Data, BlockSize, Written]),
HeadSize = Start rem BlockSize,
MidSize = BlockSize - HeadSize,
error_logger:info_msg("headsize ~p midsize ~p~n", [HeadSize, MidSize]),
% error_logger:info_msg("headsize ~p midsize ~p~n", [HeadSize, MidSize]),
<<Head:HeadSize/binary,_/binary>> = luwak_block:data(PartialStartBlock),
<<Mid:MidSize/binary, Tail/binary>> = Data,
BlockData = <<Head/binary, Mid/binary>>,
{ok, Block} = luwak_block:create(Riak, BlockData),
write_blocks(Riak, File, undefined, Start+byte_size(BlockData), Tail, BlockSize, [{luwak_block:name(Block),byte_size(BlockData)}|Written]);
write_blocks(Riak, File, PartialStartBlock, Start, Data, BlockSize, Written) when is_list(Written) ->
error_logger:info_msg("F write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [PartialStartBlock, Start, Data, BlockSize, Written]),
% error_logger:info_msg("F write_blocks(Riak, File, ~p, ~p, ~p, ~p, ~p) ~n", [PartialStartBlock, Start, Data, BlockSize, Written]),
ChopDataSize = BlockSize - Start,
error_logger:info_msg("chopdatasize ~p~n", [ChopDataSize]),
% error_logger:info_msg("chopdatasize ~p~n", [ChopDataSize]),
<<ChopData:ChopDataSize/binary, Tail/binary>> = Data,
<<Head:Start/binary, _/binary>> = luwak_block:data(PartialStartBlock),
BlockData = <<Head/binary, ChopData/binary>>,
Expand Down
6 changes: 6 additions & 0 deletions apps/luwak/src/luwak_stream.erl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-module(luwak_stream).

% -export([put_stream/3, send_stream/2, stream_ping/1, close_stream/1,
% stream_status/2, get_stream/3, recv_stream/2]).
%
% put_range()
18 changes: 9 additions & 9 deletions apps/luwak/src/luwak_tree.erl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ visualize_tree(Riak, DataName = <<Prefix:8/binary, _/binary>>, DataNode) ->
io_lib:format("\"~s\" [shape=record,label=\"~s | ~s\",regular=1,style=filled,fillcolor=gray ] ;~n", [DataName,Prefix,Data]).

create_tree(Riak, Order, Children) when is_list(Children) ->
error_logger:info_msg("create_tree(Riak, ~p, ~p)~n", [Order, Children]),
% error_logger:info_msg("create_tree(Riak, ~p, ~p)~n", [Order, Children]),
if
length(Children) > Order ->
Written = list_into_nodes(Riak, Children, Order, 0),
Expand All @@ -71,11 +71,11 @@ create_tree(Riak, Order, Children) when is_list(Children) ->

%% updating any node happens in up to 5 parts, depending on the coverage of the write list
subtree_update(Riak, File, Order, InsertPos, TreePos, Parent = #n{}, Blocks) ->
error_logger:info_msg("subtree_update(Riak, File, ~p, ~p, ~p, ~p, ~p)~n", [Order, InsertPos, TreePos, Parent, truncate(Blocks)]),
% error_logger:info_msg("subtree_update(Riak, File, ~p, ~p, ~p, ~p, ~p)~n", [Order, InsertPos, TreePos, Parent, truncate(Blocks)]),
{NodeSplit, BlockSplit} = luwak_tree_utils:five_way_split(TreePos, Parent#n.children, InsertPos, Blocks),
error_logger:info_msg("NodeSplit ~p BlockSplit ~p~n", [NodeSplit, BlockSplit]),
% error_logger:info_msg("NodeSplit ~p BlockSplit ~p~n", [NodeSplit, BlockSplit]),
MidHeadStart = luwak_tree_utils:blocklist_length(NodeSplit#split.head) + TreePos,
error_logger:info_msg("midhead~n"),
% error_logger:info_msg("midhead~n"),
MidHeadReplacement = lists:map(fun({Name,Length}) ->
{ok, ChildNode} = get(Riak, Name),
{ok, ReplacementChild} = subtree_update(Riak, File, Order,
Expand All @@ -85,10 +85,10 @@ subtree_update(Riak, File, Order, InsertPos, TreePos, Parent = #n{}, Blocks) ->
{riak_object:key(ReplacementChild), luwak_tree_utils:blocklist_length(V#n.children)}
end, NodeSplit#split.midhead),
MiddleInsertStart = luwak_tree_utils:blocklist_length(BlockSplit#split.midhead) + MidHeadStart,
error_logger:info_msg("middle~n"),
% error_logger:info_msg("middle~n"),
MiddleReplacement = list_into_nodes(Riak, BlockSplit#split.middle, Order, MiddleInsertStart),
MidTailStart = luwak_tree_utils:blocklist_length(BlockSplit#split.middle) + MiddleInsertStart,
error_logger:info_msg("midtail~n"),
% error_logger:info_msg("midtail~n"),
MidTailReplacement = lists:map(fun({Name,Length}) ->
{ok, ChildNode} = get(Riak, Name),
{ok, ReplacementChild} = subtree_update(Riak, File, Order,
Expand All @@ -97,15 +97,15 @@ subtree_update(Riak, File, Order, InsertPos, TreePos, Parent = #n{}, Blocks) ->
V = riak_object:get_value(ReplacementChild),
{riak_object:key(ReplacementChild), luwak_tree_utils:blocklist_length(V#n.children)}
end, NodeSplit#split.midtail),
error_logger:info_msg("end~n"),
% error_logger:info_msg("end~n"),
create_tree(Riak, Order, NodeSplit#split.head ++
MidHeadReplacement ++
MiddleReplacement ++
MidTailReplacement ++
NodeSplit#split.tail).

list_into_nodes(Riak, Children, Order, StartingPos) ->
error_logger:info_msg("list_into_nodes(Riak, ~p, ~p, ~p)~n", [Children, Order, StartingPos]),
% error_logger:info_msg("list_into_nodes(Riak, ~p, ~p, ~p)~n", [Children, Order, StartingPos]),
map_sublist(fun(Sublist) ->
Length = luwak_tree_utils:blocklist_length(Sublist),
{ok, Obj} = create_node(Riak, Sublist),
Expand Down Expand Up @@ -165,7 +165,7 @@ map_sublist_1(Fun, N, [E|List], Sublist, Acc) ->
map_sublist_1(Fun, N, List, [E|Sublist], Acc).

create_node(Riak, Children) ->
error_logger:info_msg("create_node(Riak, ~p)~n", [Children]),
% error_logger:info_msg("create_node(Riak, ~p)~n", [Children]),
N = #n{created=now(),children=Children},
Name = skerl:hexhash(?HASH_LEN, term_to_binary(Children)),
Obj = riak_object:new(?N_BUCKET, Name, N),
Expand Down
10 changes: 5 additions & 5 deletions apps/luwak/src/luwak_tree_utils.erl
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ split_at_length([{Name,L}|Children], Length, AccLen, Acc) ->

five_way_split(TreePos, Nodes, InsertPos, Blocks) ->
Offset = InsertPos - TreePos,
error_logger:info_msg("offset ~p~n", [Offset]),
% error_logger:info_msg("offset ~p~n", [Offset]),
One = {NoOverlapHeadNode, TailNode1} = split_at_length(Nodes, Offset),
error_logger:info_msg("1: ~p~n", [One]),
% error_logger:info_msg("1: ~p~n", [One]),
NegativeOverlap = InsertPos - (TreePos + blocklist_length(NoOverlapHeadNode)),
error_logger:info_msg("neg overlap ~p~n", [NegativeOverlap]),
% error_logger:info_msg("neg overlap ~p~n", [NegativeOverlap]),
Two = {{OverlapHeadNode, TailNode2}, {OverlapHeadBlocks, TailBlocks1}} = shortest_subtree_split(TailNode1, Blocks, 0, NegativeOverlap),
error_logger:info_msg("2: ~p~n", [Two]),
% error_logger:info_msg("2: ~p~n", [Two]),
Three = {{MiddleNode, TailNode3}, {MiddleBlocks, TailBlocks2}} = longest_divisable_subtree(TailNode2, TailBlocks1),
error_logger:info_msg("3: ~p~n", [Three]),
% error_logger:info_msg("3: ~p~n", [Three]),
Four = {OverlapTailNode, NoOverlapTailNode} = case TailNode3 of
[V|T] when length(TailBlocks2) > 0 -> {[V], T};
_ -> {[], TailNode3}
Expand Down

0 comments on commit d4a5a8c

Please sign in to comment.