[ 
https://issues.apache.org/jira/browse/CASSANDRA-18183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Miklosovic updated CASSANDRA-18183:
------------------------------------------
    Description: 
I detected this when I was trying to put my build dir to ramdisk. I have plenty 
of RAM available on my workstation (64GB) and I was thinking about moving 
"build" dir to ramdisk so I could make it faster a little bit and also spare 
some write cycles to ssd. It can look like irrelevant improvement but I think 
that if devs are building the project repeatedly times and times again, this 
can easily add up.
{code:java}
mkdir /tmp/cassandra
# in /etc/fstab
tmpfs /tmp/cassandra tmpfs defaults,noatime,size=2048M,x-gvfs-show,mode=1777 0 0
# then sudo mount -a
# I have worktree setup so the build for each branch will end up in different 
dir:
# mkdir -p 
/tmp/cassandra/{trunk,cassandra-4.1,cassandra-4.0,cassandra-3.11,cassandra-3.0}
{code}
Then in build.properties for each respective branch:
{code:java}
ant.gen-doc.skip: true
build.dir: /tmp/cassandra/trunk/build
build.dir.lib: /tmp/cassandra/trunk/build/lib
{code}
The problem with this is that it fails on rat, because there is not "build.dir" 
property used, it is hardcoded to "build" but there is not anything to rat on 
so it will hang.

To have the very same experience, I am also creating a symlink 
 
{code}
ln -s /tmp/cassandra/trunk/build build
{code}

so "cd build / ls build" in the root of the repository will take me to ramdisk. 
The problem with this is that there is "build/" in .gitignore but not "build" 
(as file) so the repository is in dirty state. I suggest to add "build" to 
.gitignore as part of this PR as that is just an opportunistic fix really.

  was:
I detected this when I was trying to put my build dir to ramdisk. I have plenty 
of RAM available on my workstation (64GB) and I was thinking about moving 
"build" dir to ramdisk so I could make it faster a little bit and also spare 
some write cycles to ssd. It can look like irrelevant improvement but I think 
that if devs are building the project repeatedly times and times again, this 
can easily add up.
{code:java}
mkdir /tmp/cassandra
# in /etc/fstab
tmpfs /tmp/cassandra tmpfs defaults,noatime,size=2048M,x-gvfs-show,mode=1777 0 0
# then sudo mount -a
# I have worktree setup so the build for each branch will end up in different 
dir:
# mkdir -p 
/tmp/cassandra/{trunk,cassandra-4.1,cassandra-4.0,cassandra-3.11,cassandra-3.0}
{code}
Then in build.properties for each respective branch:
{code:java}
ant.gen-doc.skip: true
build.dir: /tmp/cassandra/trunk/build
build.dir.lib: /tmp/cassandra/trunk/build/lib
{code}
The problem with this is that it fails on rat, because there is not "build.dir" 
property used, it is hardcoded to "build" but there is not anything to rat on 
so it will hang.


> rat targets do not adhere to build.dir property
> -----------------------------------------------
>
>                 Key: CASSANDRA-18183
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18183
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Build
>            Reporter: Stefan Miklosovic
>            Assignee: Stefan Miklosovic
>            Priority: Normal
>             Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 4.x
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> I detected this when I was trying to put my build dir to ramdisk. I have 
> plenty of RAM available on my workstation (64GB) and I was thinking about 
> moving "build" dir to ramdisk so I could make it faster a little bit and also 
> spare some write cycles to ssd. It can look like irrelevant improvement but I 
> think that if devs are building the project repeatedly times and times again, 
> this can easily add up.
> {code:java}
> mkdir /tmp/cassandra
> # in /etc/fstab
> tmpfs /tmp/cassandra tmpfs defaults,noatime,size=2048M,x-gvfs-show,mode=1777 
> 0 0
> # then sudo mount -a
> # I have worktree setup so the build for each branch will end up in different 
> dir:
> # mkdir -p 
> /tmp/cassandra/{trunk,cassandra-4.1,cassandra-4.0,cassandra-3.11,cassandra-3.0}
> {code}
> Then in build.properties for each respective branch:
> {code:java}
> ant.gen-doc.skip: true
> build.dir: /tmp/cassandra/trunk/build
> build.dir.lib: /tmp/cassandra/trunk/build/lib
> {code}
> The problem with this is that it fails on rat, because there is not 
> "build.dir" property used, it is hardcoded to "build" but there is not 
> anything to rat on so it will hang.
> To have the very same experience, I am also creating a symlink 
>  
> {code}
> ln -s /tmp/cassandra/trunk/build build
> {code}
> so "cd build / ls build" in the root of the repository will take me to 
> ramdisk. The problem with this is that there is "build/" in .gitignore but 
> not "build" (as file) so the repository is in dirty state. I suggest to add 
> "build" to .gitignore as part of this PR as that is just an opportunistic fix 
> really.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to